I note that there are many “which game engine should I pick” articles out in the wild. Those are pretty useful for picking an engine (or finding that you should build your own).
However, an aspect is usually overlooked – and that is the lifetime of the engine you’re using. In short:
- An open-source engine is simpler to adapt and develop your own “in-house version” of – as long as you have the savvy to evolve it (and it’s allowed by the license).
- Commercial engines will keep getting updates as long as they’re making money. Financially successful engines will keep getting updates. (Unreal and Unity seem like pretty safe bets in this regard)
- Open source engines can get abandoned, especially if some new “more popular” engine appears for the same niche.
- Open source projects with more contributions are safer than projects with few. But the number of people using an engine, on the other hand, does not indicate how secure an alternative it is.
In our case, betting on the then well-established Cocos2D-ObjC turned out to be a mistake. A few things happened:
- Apportable had been financing Cocos2D, and they pulled out. Android compatibility went out the window with that.
- The maintainers left.
- The initial new maintainer was not interested in supporting the tools (SpriteBuilder), which then got deprecated.
- New versions of iPad and iPhone appeared that would need the reworking of the whole way image resources were handled by the tool and the engine.
- SpriteBuilder stopped compiling on newer versions of OS X.
Fortunately for us, I had already begun customizing the engine somewhat, so it was not completely difficult to patch bugs and start rewriting the engine from the inside out.
The game we’re working on has been developing for over five years now, which might seem like an aberration. But unforeseen delays can and do happen.
So when you pick your engine, also keep this in mind:
- Your engine is the core technology for your game. If dev halts on the engine and you don’t have the source or you don’t have the skills to update it, then your game will sooner or later be unplayable.
- Given (1), keep in mind that game dev can take years to complete, and the odds that the engine is abandoned – or has a lot of breaking changes – will increase with time. However, in a short project where you don’t care if it’s only playable for a short time, then you don’t need to care so much about the engine’s future.
- If possible, own your core technology.
- On the other hand, if you don’t know how to build an engine, you are bound to make lots of mistakes. Three must be balanced by the time cost – which varies depending on your experience. If you have little experience – use an engine.
- If you build your own thing: remember that you also need a toolchain (editors etc.) – this also takes time and effort.