Defold game engine - What's the catch?

Distributing games on the web in addition to native apps is a crucial part of my business plan. The way I have chosen to go about this until now is to develop HTML5 games to build the native apps.

Although this pipeline allows me to keep a single code base for all distributions of my games (and keep a low overhead for the web build), it is somewhat cumbersome.

I recently came across free netflix King’s game engine, Defold. With its claimed low overhead for HTML5 builds and generally meeting most of my criteria for a game engine, it sort of seems too good to be true. What is the catch? I would love some input and experiences tech news
using Defold. How does it compare to other 2D engines? One of my fears is that the community is too small, is this the case?

4 Likes

Only real issue is that it’s not as lean as other HTML5 engines so you’re going to have at least ~1mb download in just the runtime where as other tools it might be ~100kb or hand coded for your exact game even less.

For most PC users that’s not a problem. It’s really only an issue when you want to do instant games where you really do want it instant and no progress bar at all. But with Internet speeds getting faster and faster it’s really not so much an issue. Maybe it’s an issue if you are targeting remote users whose bandwidth is precious but that might not be profitable.

Other issues may be that super old mobile devices don’t run the engine well but we’re talking ancient. Most modern devices will be fine.

There are a couple of unique things for HTML5 builds that I’ve found annoying and found fixes for so if you do find an issue ask and there’s probably already a solution.

The community is absolutely not too small. Look for yourself most threads get answered quickly. Also many of the kinds of crucial community assets like screen management have already been built and are freely available. I don’t think any community resource costs money, it’s all given free by the community here.

9 Likes

Having published more than 10 Facebook Instant Games, here’s my take on HTML5/Native game engines.

There are three approaches to deal with this problem:

  1. “Native engine” with Emscripten: e.g. Defold, Unity (incl. Project Tiny)
  2. “JavaScript engine” with webview (cordova) on native platforms
  3. “JavaScript engine” with native bridge: e.g. Cocos Creator (not Cocos2dx)

All approaches have pros and cons. If HTML 5 is important to you, then Unity is probably not for you right now. Project Tiny is not ready for prime time yet (and you cannot run existing Unity code)

I will go through all the engine that I have used:

Defold (Cat. 1)

Pro:

  • An editor (which is rare for a free engine)
  • HTML 5 overhead is acceptable (normally Emscripten powered engine has a bigger overhead. Defold manages to make it quite reasonable)
  • Very good developer tools

Con:

  • Some small annoyances in HTML 5 build, as Pkeod mentioned :slight_smile:
  • Interpolate with JavaScript is less straightforward (e.g. Instant Game SDK are bridged via C++)

Phaser (Cat. 2)

Pro:

  • JavaScript first, with decent TypeScript support
  • Relatively low overhead, and you can easily control the overhead
  • Using JavaScript SDK is a breeze

Con:

  • Native “build” is essentially a webview (cordova), which does not provide a downgraded experience on native platform
  • No editor. It’s more like a lib/framework than an engine

Cocos Creator (Cat. 3)

Pro:

  • The engine is JavaScript first, with good TypeScript support. You can easily use Web technologies (like HTML/DOM) but they won’t work on native platforms (they do provide a flag for you to check platforms)
  • Relatively low overhead and you only need to include the component that you actually use (it is as easy as ticking the checkbox)
  • An API that is almost identical to Unity’s, which means that it’s easier to get help from the big Unity talent pool
  • An editor which is very similar to Unity’s

Con:

  • HTML 5 is their focus and native platforms needs more work. There are some small annoyances on native build. But at least the native runs on cocos2dx, not webview.
  • Community is big but mainly in Chinese. If you don’t read Chinese, then it’s hard to find solutions to lots of issues. (Since I live in Finland, I spend a lot of time translating the forum posts in Chinese to my Finnish friends)
10 Likes

Any of them made with Defold, by chance? :slight_smile:

1 Like

Unfortunately not any more. Since I have decided to make a common UI framework for FB Instant integration, which uses DOM (HTML/CSS/JS). So I have to retire my old game done with Defold because FB asks several changes to the integration and I don’t want to update all the games in their respective engines. Now I all my games use JS-first engine, e.g. https://fb.gg/play/playswing

2 Likes