Its been a while since the last time I made a game with Flash, and somehow I want to do it again for fun. But, I’m really overwhelmed by the choice of game engines! There are a lot, and almost all of them are accessible. Now you can develop & publish games with Unreal Engine for free. Its something hard to imagine a decade ago. How the industry has changed.
Perhaps the first thing that comes to your mind when talking about the game engine is Unity. Yeah, I think it’s the most popular one for a general-purpose game engine. From simple casual to triple-A quality. It’s so mainstream, especially in mobile games.
Since Unity is extremely popular with a huge userbase, you can easily get articles, tutorials, discussion forums, demos, assets, as well as great integration with other tools, etc etc.
So why I’m not going to just use Unity?
Because it might not always be optimal in certain usage cases. for example (in my case):
- Too complex for my needs. Sure, it’s powerful, but for a simple game, it’s kinda overkill. It takes a learning curve to learn the unity way to do things. They are also evolving fast, eg: recently transitioning to new architecture called DOTS, which is more sophisticated but also confusing for a beginner.
- Not the best in 2D. While 3D is great, 2D tooling is much improved, but there are other engines that do 2D simpler and leaner.
- Big build file size.
- Splash screen in the free version. I’m absolutely OK with the splash screen. However, for some people, Unity games with splash screens have a bad reputation for low-quality games. I hope this is not a trend.
- C#, I’m just not too familiar with it
- Performance on low-end devices
- Web build is not working well in mobile device
So I decided to do small research to find a better engine that suits my next game. The emphasis would be:
- 2D Hyper casual Games
- performant engine, with the smallest build size as possible,
- scripting language that simpler & easier to use.
- html5 as the main platform and android second.
- I also appreciate the ability to build apk with a single click, without involving compilation or native mobile tooling.
- free. Open source is preferred. So, there is no upfront cost and flexible to donate/contribute to the development.
- Support Metal, in case, need to release on Apple platform.
Soo after some initial research My top candidates are: Godot, Defold, Cocos Creator and Solar2D.
Godot
This engine Getting so popular lately. it’s like an open-source version of unity. I often read that it does 2D better than Unity. Godot is purely open source, with most permissive licensing.
Main language is GDScript (python-like) but also support C#, C++, etc. Different languages have different maturity and performance. Most of them are community efforts.
Feature-rich, support both 2D & 3D. Editors also nice, small, and fast. Lots of battery included. Has built-in animation/bone, tile editor, etc. It is also extensible.
Documentation is good. There are also lot of Articles and YouTube tutorials.
Build size APK is around 7.1-11.8MB (modules can be stripped when compiling). For html5, the smallest (compressed) is around 2.9MB.
I only have very limited experience, but the performance seems just acceptable. Probably it’s not the primary focus on the current phase.
GDScript, the official language, is not python and people say it’s not performant. C# support looks nice but will make build size even larger.
It’s very actively developed, and its future looks bright because of its popularity.
Defold
Defold is a Lua-based game engine with a Visual Editor. Just got “open outsourced” this year, which makes it even more attractive.
It was part of King (Company behind super popular Candy Crush Saga), but now is independent under the Defold Foundation.
Features appear limited, but highly polished and pay attention to high performance/ low engine overhead. build size is impressive. html5 build as low as around 800kb (gzipped). apk size ~1.7mb.
The documentation is good. It requires us to follow the defold way to do things (like message passing between objects).
For maturity, Kings use it on some of their own popular games (Candy Crush Saga uses a different engine, though). So Defold kinda battle-tested on that scale.
Regarding to support, It has small but active & responsive community.
Cocos Creator
I have tried Cocos Creator and have a good impression so far. I just don’t know why it’s so hard to find articles/resources about this engine. Maybe it’s only popular in China. It’s from the maker of the popular Cocos2d-x engine, but with Visual IDE ala Unity and uses javascript. I’m familiar with this language (It Support Typescript as well), so it’s a plus for me. The editor/IDE is Electron-based, with no official Linux support.
The build size for HTML is the best. only ~155kb gzipped since it uses native js. Very ideal for Facebook instant games or chat app’s embedded games. The smallest apk I can get is around 6mb. 11MB if include both armv7 & arm64bit lib. Note that It produces a real native app on mobile. Not just hybrid apps like Apache Cordova.
However, to build a native version, you need to set up all the native tooling stack and compile it. So, it’s not an instant one-click process.
The IDE doesn’t try to do everything. It doesn’t even have a code editor built-in. It rather integrates well with an external code editor like VS Code and popular 3rd party 2D tools like tiled and dragonbones/spine.
In China & Southeast Asia, it’s popular and used by big publishers like Tencent, so it looks battle-tested on that scale.
For the community, it has a forum and Discord, Look small, but active enough. I just wish it had more English tutorials
Also, its semi-open-source. The editor part is proprietary, while the engine is open source and based on fork of Cocos2D-X. It is not meant to be used without the IDE, however.
Honorable Mentions
Corona SDK/Solar 2D
Solar2D is an open-source fork of Corona SDK. Which unfortunately was out of business this year, it was nothing to do with the COVID pandemic, but glad they changed the name. When it was still commercial, the splash screen was mandatory for the free version and was said like “Corona, powered by Corona Labs”, Just Imagine your player reaction when seeing it in 2020.
So they go open source, and the lead developer is continuing to develop it with community funding & support.
It still a great & battle-tested engine that easy to use with really great documentation. I got a good impression with it, particularly if you prefer a simple code-only workflow (with no visual editor).
Solar2D Uses Lua. build size is fine, I forgot, probably around 6MB APK for both armv7 and 64bit. I did a simple game with it. No problem with performance, even in low-end devices.
Community is small but nice. They have forum and Discord.
The cons, although html5 build is supported, it’s still beta, so there are gotchas. The Vulkan/Metal version is also not ready, but I think it still works in progress.
Some people also find the absence of a visual editor is a disadvantage.
Note that there are also several good Lua engines like Solar2D. Like Gideros and Love2D. They are all open source and could be comparable to Solar2D. I just feel Solar2D is more polished with better documentation.
JS-based Game Engine (Pixi, Phaser, etc)
They work best for html5, but for the mobile version, you have to wrap it as a hybrid app like Cordova. So I don’t think it suits my requirements.
I know there are a lot of great other game engines out there. But the above are my top choices so far.
I need to eliminate them, maybe to the top 2 final candidates.
Update: My 2 topmost candidates are now Godot and Defold, read the article here.