In my last post I stated that Unreal Engine 4 was the choice of tech for our new project. In this post I go into some detail about that choice, exposing some personal biases and the rational behind picking Unreal over other available options.
For a long time I have been a devotee of building and using in-house technology. There are a lot of good things to be said about developing your own tech, its true that the tools you use shape the final product and that settling on one of only a few choices inevitably produces very similar feeling games. Custom technology breeds innovation and promotes interesting new ways to do things, as well as making you a better engineer along the way.
That being said, developing technology is a massive time sink. A time sink that needs to be carefully considered within the scope of any project. What do you get for your time? What value does it bring? can you even afford it in the first place. Lets face it, unless your on the cutting edge making games is a solved problem. Pushing millions of pixels, interactive physics, high fidelity sound, you can do all that in a browser these days! As high quality game engines become more and more accessible, even when working with little to no budget, a world of new options has opened up for small developers. Given the ready availability of battle tested, quality technology why invest time in developing yet another new renderer? surly that time would be better spent creating interesting and original content, simply letting some other tech pump those pixels to screen.
Sure, nearly all developers pride themselves on original custom code bases, and yes building tech it great fun, but really there’s no getting away from the simple fact that content is king. All the clever tech in the world isn’t going to do you any good without content to fuel it. A game is an experience empowered by its technology but defined by its content.
Of course none of this is new and really shouldn’t be a surprise to anyone. I’m late to the party here but we all have our biases and mine leans towards tech development, thats my strength and thus everything looks like a nail waiting for just the right fully customised hammer blow.
It’s time to try something new.
With the hard choice to move away from in house tech made, its time to evaluate the options before me. There are a great many open source engine projects like cocos2d, LÖVE or irrlicht with fantastic and energetic communities, but ultimately I wanted the most bang for my buck and that meant picking one of the so-called Triple-A engines. After a bit more investigation I settled on Unreal. Other options like Unity didn’t offer source level access and the business model around Lumberyard seemed largely unproven.
Of course its not just the capability of an engine thats important, by picking an existing technology you’re also opting into its community as well. With discovery being a major problem for indie projects having an established community to build a presence within can be a major boon (and some engine tutorials probably wouldn’t hurt either). Epic have done a great job creating a strong following around Unreal with regular streaming events, examples, news, updates and guidance, even going so far as to offer development grants to projects that qualify. This vibrant, ready made community was a major plus in favour of picking Unreal.
The Sunk Cost Fallacy
Very few things are ever completely free and the obvious cost of moving to something new lies in having to leave behind whats been created so far. The so called “Sunk Cost Fallacy” states that new decisions are tainted by the emotional investments you accumulate, and the more you invest in something the harder it becomes to abandon it. This is certainly true for me, I like to try and get the most return on my efforts when building something and abandoning code thats consumed years of effort just feels wrong, despite any logical argument to the contrary.
So, to be totally happy with this choice I needed to find a way to recoup some of the effort already invested. Luckily, I’m a big fan of procedural content generation and our existing tech lends itself well to producing procedural content creation tools. Effort invested in content generation yields immediate and obvious value, and by judiciously reusing the existing tech I’m also silencing any doubts I may have about the choice to move on and try something new. PCG is something I find very interesting and I plan on creating many more posts on the subject.
So Far, So Unproven
Of course this is all just opinion and guesses, only time and the success (or otherwise) of our project will tell if the choice to switch away from home grown tech is a good one or not. Indeed, I nearly didn’t publish this for fear that it might be taken as advice, the internet has more than enough unproven advice already. However, writing things down really helps clarify the thought processes that go into a decision like this and being able to look over this in the coming months may be interesting, if only to see how far things have moved forward.
That having been said, this choice feels right, adopting Unreal and working with its community is certainly interesting, even invigorating and with carful discipline the old code base wont be rendered entirely redundant either. As the project progresses I’ll be posting updates on how things are playing out, experiences and thoughts on working in Unreal and more details about the game itself.