Writing Your Own vs. Using a Third-Party Game Engine

When starting a new game, one of the most immediate questions that arises is whether to painstakingly write your own game engine or simply license someone else’s. Most independent developers, usually being programmers first and foremost, almost automatically choose to write their own, just because it’s fun.

Until recently, this has been a prudent financial and business decision, as well – most of the major engines had prohibitive licensing costs for small game studios, or didn’t run on all required platforms. However, with Epic announcing a new, much more lucrative royalty threshold of $50,000 US initial earnings for their Unreal engine, the question of game engine choice becomes significantly more difficult.

On the one hand, $99 gets you state-of-the-art, professionally developed and maintained engine that can run on most of today’s popular platforms, including iPhones and iPads, and all you need to do is add your assets and build your levels, and maybe write some scripts. On the other hand, you’re tying yourself to a proprietary development tool where you have no control over the code in case something needs to be optimized for your particular game or a critical bug is discovered. You also give up the joy of writing your own engine, although this should be irrelevant strictly from the business point of view.

So in the end, which is the better choice overall? There doesn’t appear to be a single answer for all cases – it really depends on each particular situation. We, however, started writing our own engine long before these generous licensing terms were available, and will continue to adapt it to each title we release. If, however, we have a new idea that requires a massive, fully-optimized pure 3D engine, Epic’s Unreal offering will be difficult to turn down.

This entry was posted in Thoughts. Bookmark the permalink.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>