Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is it a reasonable idea to use IMGUI for release game? #8376

Open
Zhora123654 opened this issue Feb 5, 2025 · 4 comments
Open

Is it a reasonable idea to use IMGUI for release game? #8376

Zhora123654 opened this issue Feb 5, 2025 · 4 comments

Comments

@Zhora123654
Copy link

Zhora123654 commented Feb 5, 2025

Good afternoon. I would like to ask a possibly inappropriate question, but the information that is on the internet cannot answer it. Is it a reasonable idea to use IMGUI (with a nice UI) for a custom UI in some game (in-game menu, inventory button, etc. in other words for everything that is not debug-tools) or is IMGUI only good for debug-tools? Everyone on the internet says that IMGUI is good for debug-tools, but not a word about UI in release game. There is a section ‘Software using dear imgui’, but it is not clear if they use IMGUI for debug-tools or for release game UI. They also write that IMGUI will be inconvenient with a large amount of code, is this true? Thank you very much in advance for your reply.

@PathogenDavid
Copy link
Contributor

There's nothing inherently wrong with using Dear ImGui for in-game UI, and people certainly do so on occasion. However it really depends on the game.

If your needs are very simple, Dear ImGui might be more than you need. If you need heavy style customization or your team includes dedicated designers, Dear ImGui probably isn't a great fit. This isn't really a decision anyone can make for you.

This goes for any UI framework, not just Dear ImGui. For example, lots of folks use NoesisGUI for in-game UI, but many teams/games would likely find it to be a huge overkill solution that's more trouble than it's worth.

"Debug tools" are definitely Dear ImGui's bread and butter, but I also think it's a bit reductive. Lots of people are using it for their engine's main editor UI. Plenty of folks also use Dear ImGui for end-user applications, ImHex and Furnace being some notable examples.

There is a section ‘Software using dear imgui’, but it is not clear if they use IMGUI for debug-tools or for release game UI.

Most games on that list used it for internal tools.

They also write that IMGUI will be inconvenient with a large amount of code, is this true?

I don't really know exactly what was meant by this, but Dear ImGui works perfectly fine in large codebases.

As an aside, be careful about vague postings referring to "IMGUI". Lots of people refer to Dear ImGui simply as ImGui or IMGUI, but "IMGUI" in all caps is also frequently used to refer to Unity IMGUI (which generally isn't recommended anymore outside of prototyping.) Sometimes people are also just referring to the IMGUI paradigm in general.


Your best bet is to just try it and see if it vibes with you. You can also wander through the gallery threads to hunt for examples of people using it for their in-game UI to see how you feel about them.

Even if you don't think Dear ImGui is a good fit for your final in-game UI vision, I think you'd find that it is still very useful for prototyping things before the final UI is ready to be built.

@Zhora123654
Copy link
Author

If you need heavy style customization or your team includes dedicated designers, Dear ImGui probably isn't a great fit. This isn't really a decision anyone can make for you.

@PathogenDavid, can you please advise libraries(or frameworks) which will be better for release UI and which will support vulkan api, glfw(optional) and c++. Thank you very much in advance.

@PathogenDavid
Copy link
Contributor

Sorry, that's not something I have firm recommendations for. (Especially without knowing more about your project/team, but that'd be getting off topic for this forum.)

For open source solutions I have a GitHub star list of UI Frameworks that you might poke around in, but keep in mind it's mostly a list of things I think look interesting rather than anything I've personally used or recommend. (It's also not game-specific.)

@BlueCyro
Copy link

BlueCyro commented Feb 8, 2025

If you solely want a recommendation on whether or not to use it for your front-facing UI, then ultimately that does depend on your usecase. I will say that there are certainly end-user programs that make use of ImGui such as the beautifully-featured ImHex hex editing program. Perhaps you could take a look over there and see how that program uses it.

That being said, ImGui isn't necessarily made to be all spit-shined out of the box like some other UI frameworks are. For a programmer it's a no-brainer to set up, but it might not be such a walk in the park for a designer that's potentially not very well-versed in the functional UI construction paradigm. If you've got a UI person that uses their favorite graphics editor of choice to buff out concepts that you then implement - perhaps it could work. But if you expect your designer(s) to create functional prototypes which you can just plug in, then perhaps it's not for you.

As for what libraries to use alongside it, I'm sorry to say that I'm actually quite allergic to C++ so I couldn't tell you. However, I will say that using the ImGui.NET wrapper through Silk.NET via their ImGui.NET extension (wow that's a lotta .NETs) has been a veritable breeze. I know that's not a C++ recommendation like you asked for, but perhaps it gives you an idea of what you might actually want or need out of the underlying rendering API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants