Defold Screen Manager

Hi all,

Defold Screen Mananger (dscreen) provides a game state management system in a Defold game engine project. I have always had problems with the existing screen managers in the Asset Portal causing flickering black frames when loading and unloading screens. I understand why this happens, but it’s not something easily fixable. I was also looking through the implementation of a few of the existing screen managers and found that they all seem to be implemented very similarly.

I decided to create a screen manager that avoids the flicker problem and is implemented in my own style. It is quite minimalistic at the moment, and the code is simple and consolidated. I will continue to update it with new features as I need them (or as they’re requested).

Happy Defolding!


Yeah, I tried to create a GUI that has a black cover on, that is faded away after a moment, but the flicker in the beginning is visible regardless (and imagine all GUI are covered, so whenever I want to change something I need to move that node so I can see the rest :confused:), so it’s one of my biggest problems too! I decided to leave it for now, but as you made such asset, I will now check it out!

Thank you so much! :heart:

1 Like

This is definitely something that can be solved in Monarch as well. I don’t recall exactly why I did it that way though. If you open an issue in the Monarch repo I’d be happy to check it out.

1 Like

Thank you @britzl!

(Don’t mind the hero/camera change in the beginning (I am setting go position to the start position of the level and camera follows it))

1 Like

Thanks for this @klaytonkowalski !

Trying to figure out whether to use this or Monarch. I’ve read through the docs and can’t see anything about transitions (e.g. fade out/in). Any plans to implement something like this, or is it more of a case that the user ought to handle it themselves? If the latter, how would you go about it?

No plans for transitions. As funny as it sounds, I recommend you use Monarch. Defold’s collect proxy system is infinitely more complex than simply “msg.load” and “msg.unload.” I thought about adding some features to this, however I don’t think I’ll be maintaining it at all. Defold not allowing you to manually catch system messages (i.e. load, unload, init, disable, etc.) along with other issues really damages the simplicity of screen management.

I saw that britzl is working on eliminating the black flicker problem in Monarch under the “dev-flicker” branch, which was why I wasn’t using it to begin with. Now that it’s being improved, I would recommend Monarch over anything else.


There ya go! Thanks for your thoughts :slightly_smiling_face:

1 Like