Defold game engine - What's the catch?


#1

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 with Phaser and use cocoon 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 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 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?

https://appsync.biz/speed-test/ https://appsync.biz/scrabble-word-finder/


#2

Not sure if there is one. Perhaps it would be that some design principles of Defold are slightly different. Defold does not encourage object oriented programming (although it doesn’t prevent it). You communicate via message passing for loosely coupled systems. You hand over work to the engine and write reactive code that runs on callbacks or messages instead of polling for state changes.

I believe Defold has a pretty good feature set for 2D games with a pretty clean and easy to understand API. There’s sprites, flipbook animations, tween animations, spine objects, tilemaps, simple Box2D shape collisions (no joints yet), particle effects and gui components. The performance is good enough for almost any kind of game and you have full access to the rendering pipeline. It’s currently Open GL ES 2.0 but we’re working on Vulkan+Metal support.

The community is small but pretty active. All of us in the team hang here on the forum and on Slack and we have several very helpful external users that answers your questions quickly.

I’d also like to highlight our manuals, tutorials and examples that usually get a lot of praise.


#3

According to OOP inventor

I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages… OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. – [Alan Kay]

I would say that Defold is the most true OOP game engine I know, and message passing concept is the catch for me personally. It allows to build highly flexible systems without tightly coupling between objects. But of course this true OOP is not the same what many can find in Java or C++ books :wink:


#4

Ah! The creators of Defold (Ragnar and Christian) would be proud! Ragnar often referred to this interpretation of OOP when talking about message passing, but since OOP is so tightly coupled to classes, inheritance, interfaces and all the rest of the stuff it hardly makes sense to discuss OOP in the way Alan Kay describes it.


#5

And from King’s perspective, there is no catch—really. As stated in the FAQ to the question why it’s free:

“This may seem out of the ordinary, that a commercial game company releases its core technology for free, but here’s how we see it: the more people who use Defold, the better the engine will be. By releasing Defold to the community, _everyone_​ can help making Defold better, by creating tutorials, by finding bugs, improving the documentation, and much more. And since King uses Defold internally, every day—the better the engine gets, the happier our internal developers will be.”


#6

Well I would like to state that Defold is the best 2d engine out there. I have, over time, used a variety of game engines, from the old adobe flash to big titles like unity and ue4, but never has there been any engine that matches Defold, both in flexibility and performance. What other engines do in a very complicated way, Defold lays it out bare and simple for you. So, I would say that Defold is the best 2D engine, and a engine worth using.

And for this part, I think that even though it’s small, it’s the best community. No other community which I have seen, has the kind of support that Defold community offers. I have been using Defold for almost six months and I have never seen a question go unsolved, and that’s the best part. Also, as @britzl says, the Engine team is very helpful too, with other user. So, in these six months, I have literally begun to love :heart_eyes: Defold


#7

Defold’s web builds will be significantly larger/slower-to-load than a native javascript framework like Phaser, but on the other hand you also may get better size and performance with Defold’s mobile builds compared to Cocoon. If your games are pretty large anyway, the longer load time on web may not be noticeable, but for smaller things it will be.


#8

In general I agree with you, it’s hard to compete with native JS frameworks, but we are making some changes that will reduce the difference. We recently upgraded to a newer version of Emscripten and we’ve seen smaller binaries as a result and tomorrow we’re also releasing Webassembly support which means shorter start-up time.


#9

The thing about HTML5 builds that bothers me still is the size of the engine. I was trying to CDN every version for a while but gave up when Native Extensions came out for HTML5 because the NEs bundle the NE code with the engine runtime code. If officially hosted Defold versions were automatically generated and linked to as an option when bundling that could help with the situation as Defold games get popular, but NE code would need to be in their own .js modules too.

To deal with this on a game portal which uses Defold and every game made with Defold I have a single copy of the engine which acts as a boot loader for every other game. So updating all games is updating just a single set of files and the engine is only downloaded once. All of the individual game files are downloaded as needed. It works really well in testing but has not gone live to production yet.


#10

Hi!

I am not an experienced programmer and have very little experience with other game engines. I can however say this:

  1. The community is small but very active. As you can see, in 16 hours, you have got quite a few responses to your thread. The slack channel is active every day, and if you say something interesting and/or have a question, someone will always get back to you. Personally i think the quality of conversation here is absolutely fantastic and much prefer it to some of the larger communities i have been part of.

  2. although i shouldn’t use this as an example, as i know it is not something very common, some of the defold staff took a lot of time to implement a feature i requested (the ability to control android apps via external keyboards connected via USB-OTG) into the engine. They did this very quickly after i told them about my deadline, and shared the new version of the editor with me before it was made public because i needed it urgently. Over the last couple of years, I have seen defold implement various features after their request and in general they respond well to these requests. I am eternally grateful for this change as it allowed me to get a project started which is actually making me a decent amount of money now, alongside my real job.

  3. The editor has never, ever, ever, given me any serious problems (and i have made it do a lot of weird, weird things). It is a very well designed editor and is very stable. That is very welcome compared with some of the other editors i worked with in the past. That is just… a weight of my head. I learned it very quickly

In terms of the HTML build overhead and these details, there are many people much more qualified that can help you with that kind of thing. but considering your needs seem to exactly match with what defold offers, it’s definitely worth a try


#11

It brings tears to my eyes!