I note that there are a lot of “which game engine should I pick” articles out in the wild. For picking an engine (or finding that you should build your own), those are pretty useful.
However, there is an aspect that’s usually overlooked – and that is the lifetime of the engine you’re using. In short:
- An open source engine is simpler to adopt 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 fairly 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 safe 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.
- 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 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 inside out.
The game we’re working on has been in development for over 5 years now, which might seem as an aberration. But unforeseen delays can and do happen.
So when you pick your engine, also keep this in mind:
- Your engine is 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 gamedev 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 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. 3 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.
P.S. And anyone who tells you that you can just “pick a new engine” if the old one fails does not take into account the time you wasted, or the potentially demoralizing effort on the team. D.S.