Like love2d but with gui system?


#1

hello all. i’m from godot engine, but they have a flickering issue with tilemaps
so i went to love2d, and it was amazing. however, their imgui addon doesn’t work
and they have no official ui stuff. i’m trying to find another game engine that has godot like ui system.

richtextlabel, scrollcontainer (very important!), vbox, hbox, labels, textureprogress, progressbar, colorpicker, toolbutton, optionbutton, dialogmenu, etc.

i also learned a bit of lua with love2d, not bad lol very fun. however, if you read my comments and posts on their forum (as girng), i tried but just not what i need. it’s great, but just personally, i need somethgin like godot’s ui system along side great performance for 2d

can defold do this for me? ty in advance.


#2

Defold does not ship with any readymade GUI components. We do supply basic elements that you can use to build components with, but you may want to check out a GUI library on our asset portal. For instance, Gooey.


#3

Thanks for the response Sicher!

Just out of curiosity is there a reason for this? I think having a proper UI system integrated within the engine is extremely beneficial!

For example, I was searching the forums here for “chatroom”, and found a user asking on how to create one. The problem that I’ve noticed over the years is game devs don’t necessarily want to spend their time creating a bunch of UI stuff, they want to spend time creating immersive gameplay, skills, fine tuning character animations, work on server-side stuff, etc. That’s why Godot is so appealing. And honestly, I became pretty sad when I found out about Love2D because they do have a tiled map plugin and it renders maps perfectly. Performance / font rendering / api is fantastic and there is no black tile flickering issue like in Godot. It’s just not possible to port a game over when 80% of Godot’s UI stuff needs to be written by one person. The classes are mostly listed here. As you can see, it would take quite a bit of time :stuck_out_tongue_winking_eye:

The only other appealing engine for me that compares in the context of UI tools would be Unity. In my honest opinion, I think love2d and defold (although, haven’t really tested it yet), are missing out on a relatively large aspiring game developer market that want great performance, nice/simple editor, easy scripting language, and a well rounded UI system.

However, with all that said, I’ll install DeFold and give it a whirl for sure! 4:51 am here, so i’ll be playing around with it later today :sweat_smile:.


#4

Our philosophy is that the engine should provide basic building blocks that solves common core problems that game devs face. The GUI system we have is pretty powerful, but it does not contain ready made widgets since each game has specific needs as to what types of widgets it needs, the look and feel etc etc.

But we do have an active community and there are libraries that you can use and modify to fit your needs.


#5

Wow, this editor and engine seems amazing so far. Instant scene previews. Even faster than Godot’s and Love2D. At first, I thought the editor was packaged in Electron. Oh boy I was very wrong. :stuck_out_tongue:

Now that I think of it. The UI Widgets we get with the editor are freaking amazing. It’s got to be possible to somehow use those in-game, right?


#6

No, that is not possible. The editor is running on Java using JavaFX. The engine is a lean C++ runtime drawing graphics through Open GL. Two totally different things.


#7

I see. Yeah, just figured i’d ask cause Godot is like that, but yeah totally different. Man, that would be awesome though haha.

I’ll post new questions if I run into anything. Thanks for the warm welcome. Very nice and knowledgeable community.


#8

Please do! We hope you enjoy Defold.


#9

Gooey (created by me) is a GUI widget system built on top of the Defold GUI scenes. It’s still not super advanced but it allows for a couple of different basic GUI components and fairly easy skinning to fit the theme of your game.

See separate RichText lib: https://www.defold.com/community/projects/100192/

Gooey supports scrolling lists of list items. I’ve added a ticket for scrollcontainer for arbitrary content: https://github.com/britzl/gooey/issues/21

What’s this?

This is the basic GUI text node. Built-in node type for GUIs.

What’s this?

Is this really something you want ready made? Progressbars can look in a thousand different ways.

See: https://github.com/britzl/gooey/issues/3

What’s this?

Gooey has support for Radiobuttons. Same thing?

A menu in a dialog? I think that’s easier to create on your own?


#10

Instead of saying “what’s this” to all the classes I listed, you should look at the classes link in my above post that shows what each of them do. Or better yet, install Godot and test them out yourself.

A menu in a dialog? I think that’s easier to create on your own?

Sorry, but did you not read any of my posts in this thread?


#11

To be fair, I overlooked the link myself - even after going back to look for it… twice.
Linking something like the classes are listed here would be more obvious.


#12

My post quite literally said

The classes are mostly listed here

Which links to that direct link. That imo is pretty clear.

The point I’m referring to is my post above in the second paragraph. It’s clear he did not read that if he’s asking me a rhetorical question “that’s easier to create on your own?” when I addressed that in my post above.

And do you think I’m going to reply to every single quote and explain what each class does and how it’s extremely beneficial towards UI development with games, when my previous points in my post were not even taken into consideration? Not likely.


#13

I was talking about the link format being a single word. It’s easy to overlook. That’s all.


#14

This lacks a lot of features (and essentially useless) because it cannot act like a chat system. You cannot create item linking, right click certain tags inside the RTL to open a context menu (invite pty, block, etc), no scrollbar support, and no UI interactivity.

Arranges child controls vertically or horizontally, and rearranges the controls automatically when their minimum size changes.

This is extremely helpful for creating character stats pages, or vertical/horizontal information like option menu lists

Agreed. It’s great.

Yes. From my experience, game devs don’t want to spend their time fiddling around with creating their own native UIs. Please see my post here.


#15

For most games, you don’t need very complicated components such as list boxes etc.

And, when you do, different programmers like different behaviours. We simply opt out of that whole part since we don’t want to tie us down to one single implementation.

Instead we encourage users to build and share libraries that they created, since it might help someone else next time.

Right now, it’s very unlikely that the engine itself will get such advanced gui widgets. We’re soon making our reworked roadmap public, which will contain several areas we think need attention next.


#16

If you need particular widget I think it’s only fair to ask that you describe what that widget does so we here on the forum can help you assess how to achieve that with Defold. Linking to a repo with the source code of Godot’s widgets is not really helpful.


#17

If you need a chat built on a rich text label I believe you could use @britzl’s library as a starting point and add the functionality you need.


#18

Actually I think that is a lot depending on where you are coming from and what kind of dev/company you are.
There is a lot of value in being in total control of your own system depending on the game that you are creating. A lot of companies are even creating their own game engine just to be in control of (and being able to extend) it in all the directions that their game specifically need. Bringing this down to Defold, I believe the “small building block” philosophy is perfect for our company as I have seen way too many gui systems that gets locked into certain restrictions.

Take a button for example. Either you make it extremely dynamic (bloated) with lots of features, or you are just restricted on someone else design:
Is it a gui node, is it a spine model, a spine node with text-nodes in it? is the textnode actually a spine itself with bones where I attach the textnode? does it have sound linked to it? does it play sound on down press? up press as well? can I control the anim in behaviour? what about 9-slicing? maybe only 3-slice? what about layout towards other components? is it activated on press or release? can I tie a nice animation to the disabling of a button? what about dynamic emojis on the button? etc etc… … thats just the first scratch on the surface for the buttons.

Instead of using a third party library we have created our own gui system with our own game(s) in mind.
This applies on ALL the parts of Defold.

Now I totally understand that all devs are not in that situation or even doesn’t have these requirements. One just adjust to what the built-in system brings. At least Defold gives you the choice of using one of the shared libraries or create your own. Not many engines give you both choices


#19

I think you can find your answers by taking a glimpse at the demo of Gooey and even some basic Chat. For progress bar, check out XP. So, it’s not that hard to find the proper modifiable asset without stucking with a less changeable and suitable for a game widget. In public examples by @britzl you can find many needed things, like menu, level selector, gamepad GUI and many, many more. Community of Defold is very helpful and Defold team is working to improve its engine. I am also working on the more specified dialog system for Defold based on RichText and Gooey, that could be easily integrated into a game and support a mark-up language to create dialogs. Can’t say when I’ll complete it, though.


#20

@girngrodriguez How far did you get with Godot’s UI stuff? I used Godot years ago. The huge array of GUI nodes seemed great at first, but it turned out they weren’t customizable enough to fit my purpose, and there was basically no documentation on how to change their appearance theme. Maybe it’s better now?

I think the short answer to your question is “No.”

Defold is a huge step towards your goal from Love2D though—it has an editor and some basic GUI layout stuff built-in. As far as I can find, there is no engine that is just like you want (If you find one, please let me know!), you just have to choose which trade-offs you can live with. (bugs on the engine side, or extra work on your side)