Updated: Aug 22, 2019
We're mere hours from launch now, so I thought I'd take the time to reflect on the Alien Cow Farm project as a whole, and record some of the larger points so that both you readers and I can learn from them.
I'll start with a reminder of the ultimate goal: release the game on Steam. Well, check. I was told by many of the places I've applied for jobs that all of my experience at Drexel and through co-ops would pale in comparison to having a single "shipped game" available on Steam or one of the other less well-known online stores. I think that mentality mostly has to do with showing that you can see a project through to the very end, although really the only thing ACF has going for it that the other finished games available on this very website don't is a bunch of legal paperwork. I started my own company, ZWOLYA GAMES, to release this game...ultimately, that's really cool, but I wanted to be a designer, not a businessman.
Which cleverly segues into what I want to talk about next. As a solo project, I alone was completely responsible for everything; full creative control, yes, but also unilateral decision-making. A backing team would have been as much help as a sounding board as they would have creating the art assets, materials, and audio for me. Yes, I learned the blender program from scratch, and I can mostly understand shader code now, but I'm sure the game could have had a more polished final look, and certainly would have been finished sooner, if I had help from real artists.
Most of the biggest problems I faced had to do with the external assets I used. This is ironic because I gambled that purchasing from the Unity store would save me the time and effort of writing my own, inferior version of something that already existed. For the audio plugins, that worked pretty well, and Rewired was a godsend as always...my big issues were with A* and Nested Prefabs. The latter does what it claims to, but the problem is how much it slowed the project down the larger it got; since it has to check through and apply all the prefabs any time one changes, I was waiting upwards of ten minutes for a single change to take by the end here. I'm hoping that the native Unity implementation of this service (which absolutely should have been included from first launch, but only became available in a later version than I used for this project) will work out better for my next endeavor. A*, as I've said before, does lots of really cool things, but seems to start to fall apart when you try to use them in tandem. A big, complex package like that is best treated as a black box, so if you need to go inside to try and solve a problem...good luck. The dev's support is so-so, and a lot of the time I had the feeling that I just had a setting wrong somewhere, because I was only trying to accomplish the same things that worked so beautifully in the example videos. This was a source of major frustration for most of the project, but I still believe that I would have been far worse off trying to do my own pathfinding.
Just a few more very specific notes: Glimmer Ridge was the last map I made, as the most complicated one. That was a mistake, because the multi-level design broke many, many things throughout the rest of the game. It was very late in production at that time, and hard to recover from something like that. It's only natural to want to get simple functionality working first before adding more complex stuff, but usually I'm smart enough to at least know where I'll be going eventually, and plan ahead for edge cases and the like. I didn't in this case, so I had to change some very fundamental things like how players moved and interacted with the environment through gravity, rigidbodies, and collisions. Another quirk that I discovered when I started the testing process in earnest was that the drone ability is basically useless. I used it much less than any of the others, and even its intended sentry functionality doesn't do much thanks to its single hit point. Making the thing invincible probably would have helped, or better yet, ditching it for an infinitely-more-useful speed boost power, but again, by the time I found this, changing everything from the tutorial to the UI everywhere, then rebalancing to boot, would have been a nightmare.
And finally, the thing that almost sunk me here at the very end (and delayed release) was my build getting denied by Steam because it wouldn't run on Mac. I tried (really hard) to get it tested on that platform, but no one I contacted was willing or able to help. The fix ended up being trivial, but I've circled back around to the first issue I mentioned: making games on your own is hard, and in addition to everything I mentioned above, having a dependable team would have certainly mitigated finding problems too late. And I'm sure it wouldn't hurt with promotion and outreach, either.
Go play Alien Cow Farm on Steam now; it'll be available by the time you read this.