What GUI library was used for initial development?

This is a very simple question: What GUI library was used for initial development of Roblox Studio?

I know of some GUI libraries like Qt, wxWidgets, TK, Dear ImGUI, GTK, etc. but what did Roblox Studio use (or did they just use OpenGL like blender 3d)?

I assume this is the correct category, please correct me if not.

What’s used for the current Production Branch UI for Studio is Qt/C++ according to this post by ROBLOX Engineer @MeshOfPaul (sorry for the ping!).

Next Gen Studio UI Preview is here! [Beta] - Updates / Announcements - Developer Forum | Roblox

Most searches on the forum show Qt Framework and C++ too for older versions of the UI, which makes sense given the age of Qt as a Desktop UI Framework. I also see some reports of Ogre3D (at least once ROBLOX’s engine, not sure if they still use it now) used Qt Framework. We would need clarity from a ROBLOX Engineer or other developer familiar with ROBLOX’s engine development pipeline to comment on what it historically has used, as we can really only speculate without official comments.

2 Likes

I love pings! (Also former engineer… now I’m just an annoying product manager)

Correct, — up until the Next Gen Studio system most of the Studio core UI was C++ Qt & QML with a sprinkling of Luau. We should be done with Qt UI by the end of this year and our long term goal is to completely get rid of Qt.

2 Likes

What would the new GUI library be? (or would it be a Roblox-Owned GUI library? Would it be open-source then?)

Also, do you use OpenGL for the rendering, or…

I am just asking this out of pure curiosity. I don’t have a real, practical use for this knowledge.

Very early builds of Roblox used MFC, more commonly known as Windows Forms. When 2013 Studio was released, it was moved to Qt (though MFC’s corpse was still there). Sometime later MFC got fully removed.

I dont know what the next gen stuff is though as I know theres a move away from Qt.

I still get a bit nostalgic for the MFC layout of Studio though the ribbon was a massive improvement.

We are using a combination of Luau React + our engine’s stylesheet system. Essentially the same stuff the player app and our experiences use!

We are also building a whole library of reusable, pre-styled UI components that will allow plugin developers to build UI that utilizes our global design system. We do plan to open source this.

3 Likes

What is Luau React? (if you don’t mind answering)

I don’t mind at all! But this is a far better resource: How To: React + Roblox

1 Like

Im actually curious what the long term goal to accomplish this is moving forward if you guys dont want to use Qt in the future.

If im not mistaken, the current approach is just QWidgets that mount to floating panels from the Qt side.

I’m sure Qt made a lot of sense at the time for an MFC app looking to go cross platform. Especially way back then when native code performance was superior.

But, as far as I can tell, Qt was never really designed to share rendering and input duties with another engine like we do. So there’s all sorts of things in place to try and keep both happy at the same time. But it’s complex and the source of a lot of funky situations (like why keyboard navigation can be flaky sometimes, as an example). We are rapidly approaching a point where the benefits Qt provides aren’t outweighing the problems it causes.

There will still be a C++ layer for things like disk I/O, allocating native windows, etc. But we don’t need Qt for that. We’ve really been enjoying this new world of being able to build almost any UI we can think of. :slight_smile:

When I say open source, I mean like make it compatible with IDEs so people can create their own applications with it.