My experience with Defold so far

Hello,

I found out about Defold a while ago but couldn’t spend too much time on it, especially since this is only for personal use, I am making a small WarioWare-like game as a birthday gift :).

My experience so far is amazing! The editor is good looking and really easy to use. I took around 1 week to get used to it and learn everything I needed for my game. Having a builtin tutorial system with in-editor links using README files is really helping.

Coming from a AAA games development, I wanted to tell you that this so pleasant working with Defold and iteration feels so fast!

The experience is very good overall but I found some little weird things here and there:

  • First, I was surprised that the engine is free but you have to login with a Google account, can you share why you chose Google over a Defold account? Also, you have to login with a Github account to report a bug.
  • The game object with components and game object collection system is very versatile but there are some inconsistencies between the game object and collection view: why can’t you scale a sprite while you can scale a whole object within a collection? Scaling a collision also gives unexpected results: the collision was not the same in the editor view and in game (in editor: the collision shapes’ position seem to scale, but their size does not while nothing happens in game).
  • The web-like user interface feels very modern and reactive but there are a few inconsistencies sometimes, for example I would expect the id of a component to appear first in the properties all the time, like in a sprite component, but in the script component, the path appears before.
  • Hot reloading is working well but sometimes the game crashes where I would expect hot reloading to simply fail: I was writing a fragment shader and was not using one of the uniform anymore. I would prefer an error and keeping the previous shader rather than exiting the game. Also sometimes hot reloading simply does not work: changing a material’s fragment shader reloads the shader, not the material.

I may sound very critical by I really appreciate that an engine like Defold can be shared for free.

Thanks a lot!

PS: I might share my game after translating it into english.

10 Likes

Yay, we’re happy to hear that you are enjoying yourself!

This was the reason the original creators of Defold decided to start working on Defold in the first place!

For us it was a pretty quick and easy to solution to link the user account and any dashboard hosted projects as well as the forum signin to the Google oauth solution. We are currently revising the whole signup process and you can expect to see a change here in just a few months.

Yes, the bug reports go straight into GitHub issues and as such require a GitHub account. We haven’t heard any complaints about this so far though.

I can’t recall the reason behind this, but the general rule is that game objects are cheap and easy to create and manipulate so there’s very little cost in scaling them.

Yes, we’re going to fix this soon. We’ve started to bring in physics related issues in every sprint now. This sprint it’s rub-time configurable gravity and joints. Next may very well be physics scaling.

Could you please elaborate? I’m not sure I understand what you mean.

Hmm, yeah, not sure if we can catch this and gracefully fall back to the old shader. @sven?

Again, @sven?

We value your feedback. Thank you so much for taking the time to share your thoughts and impressions! Keep on creating!

2 Likes

I am also worried by this. I had to scale my whole game object to scale the sprite, then if it contains a collisionObject it’s also scaled and can bring problems.

Documentation recommends to work with scaled down sprites (50%) to support high definition displays: Would be nice, not only scaling the sprite component, but also the sprite animation from the atlas, what I mean is that I set a scale there on the source image and any object in the game that use it will get an scaled sprite.

It is quite difficult to make your own account system. You have to REST APIs, Database management and all that complex stuff, pay for database space online and so on. A very simple way to implement this is to use the premade Google login API with google accounts, and integrate it into your site’s framework.

1 Like

Sorry I wasn’t clear, I was talking about the user interface:
This is the properties for a sprite component:
image
While this is a script component:
image
It looks like an inconsistency to me. Apparently the path is always the first field for components created via “Added Component File”.

2 Likes

I thought we had fixed this, but maybe we missed some corner case? What platform were you developing on? How can I repro it?

I experimented the issue on 2 different windows 10 machines. I can make a small project to reproduce it when I have time.

3 Likes