UI Frameworks

That is not a very developer thing to say. So you think if someone wants to share something they’ve made they need to make sure it’s easy to install and flexible to use? I think that mindset would discourage a lot of people to share their code and strongly disagree.

1 Like

I would always avoid an installer if possible, and this is really simple

1 Like

Sorry but no way would I prefer not having an installer. This is crazy talk! For a start what if there is an update I need to apply…yuck!

As it is easy to use i don’t see why it would need an installer. As soon as it works as is and the use is simple why bother to compile create and upload an installer which may annoy developers if the installation fails no possibility to unpack the files with some of them and still do it manually.
Moreover if you need to add files to your project the installer becomes more complicated than doing it by hand.

1 Like

I take it you haven’t used Git a lot? :stuck_out_tongue:

The main reason I didn’t write an installer was because I wasn’t really sure how, since MG got so many platforms and ways to compile (DX vs OGL, windows vs desktop vs consoles, etc etc.). I simple wasn’t sure how to produce “one dll fits all” or whats the best way to manage multiple dlls for different platforms. Similar questions raise from content. I couldn’t find a good tutorial to lay it all down and explain how to write a proper cross-platform MonoGame lib installation. So I decided since its very few steps it might be best to just write them down. And it really takes less than 5 minutes to setup, as seen in the installation video.

I’m not leaning strongly to any side. I would prefer having both installer and manual instructions but as I said I wasn’t sure about the installer and didn’t want to deliver a broken one.

Anyway you mentioned errors and I’d still love to see them so I can fix it if there’s a problem.

If you need to apply update there are two cases - either you changed the source code, in which case you gonna have a bad time with or without an installer (might be easier without the installer tbh), or you didn’t change the source code, in which case the whole difference is between clicking “update” button somewhere, or dragging a folder (new package code) to override another (old package code). Doesn’t sound that bad…

In some cases you are right though, I wouldn’t want something like node.js or django to be manually installed… that would be a nightmare. But I do think in a lib the size of GeonBit.UI its really not that of an issue.

Learn to use NUGETs … problem solved.

Yep. Nuget is ideal.

That’s great but I still like to hear about your errors if possible. I’ve been in contact with several people using the lib and none of them had any errors, so if there’s a problem on a certain platform or version it will help me to know.


Don’t you work for Microsoft or Xamarin Company? They should pay salary for your work.

No one is getting paid just for working on MG. Also Xamarin and Microsoft are not directly involved in MG development.

Following the advice of @GeonBit, I’ll promote my library here too.
Myra is open-source(MIT licensed) MonoGame(FNA support is on its way) GUI Library.
It has following pros:

  • Ease of deployment. Myra is the PCL assembly. And theoretically could be added to any MonoGame project. Therefore it is available in the NuGet and in the MSI binary distrbution form. Later I’ll add also ZIP binary distribution for the Linux development environment.
  • Rich choice of widgets. Myra is aimed to provide widgets not only for the actual game, but for the level editor as well. Right now, it has following widgets: TextBlock(aka Label), TextField(editable text), Image, SplitPane, Button, ScrollPane, Grid, Menu, Tree, Slider, ListBox, ComboBox, Window. SpinButton will be added too.
  • Standalone UI editor. Myra’s binary distribution contains the standalone UI Editor application, which could be used to draw the UI. It’s screenshot is attached to this post.
  • Styling support. Myra widgets has full support for custom styling. Customization can be done either in code or by providing custom JSON.

Unfortunately cons list is also considerable:

  • The library is quite young and has many bugs.
  • The documentation is very poor: https://github.com/rds1983/Myra/wiki. Though I hope to fix it eventually.
  • The library API might be complicated. Especially it is true for the layout.
  • It avoids using the Content Pipeline. Which might be confusing for MG developers that are used to it.

This is the offical Myra thread: Myra - UI Library for the MonoGame

I’ll make sure the top post there contains link to the latest release. Also I’ll try to answer all questions there.



I really like Myra so far and have already been using it for my game. I think the approach taken is correct; Simplicity, lean, natural. No excessive flashy show-off IOC MVVM stuff here - you can just focus on getting simple UI’s up and running pretty quickly. Thats all thats needed for most games. Its also installs correctly and is easy to update with Nuget.

Yup, looks good for the first version (beta or whatever). Both Myra and GeonBit are promising, tho still missing some advanced features, which are really needed for game dev. I hope that authors will keep working on it, that is the hardest thing. So keep working on it guys!

This one may also be interesting for game’s menus, config, etc.

1 Like

Bumping with some exciting updates since I first posted GeonBit.UI, which was pretty long ago (lots of updates in between but I didn’t want to bump too often)…

GeonBit.UI is now at version which includes render targets, lots of bug fixes, optimizations, some new entities (like panels tab), scrollable panels and clipping mode, better API, and most importantly: a NuGet package :wink:

You can grab it here:

And here’s a comic to summaries this whole thread (myself included):


Empty Keys UI v3.0 has been released, DPI love, fixed bugs and some new features. The library was updated to MonoGame 3.6.

Release Notes: http://emptykeys.com/Community/aft/11/afc/2198
NuGets: http://www.nuget.org/profiles/EmptyKeys

BTW It has been three years since I started working on it. The MonoGame version of the lib has over 5k downloads!


With so many options for making (G)UIs for our MonoGame applications, perhaps it might be interesting to make a comparison post/guide to make it easier for developers to choose a UI framework.

Does anyone know if anyone is already working on something like that? If not, I might be willing to take up the task, though I don’t have a lot of spare time at the moment.

I did find this list of UI frameworks: What are you guys using for UI? Looking for a simple UI for MonoGame., but it’s hardly a good comparison. For example it doesn’t say anything about ease-of-use or features, which are things I would expect in a comparison.


I agree this would be nice. Not just for users, but also for the developers to know how to improve their lib.

I put that original GUI spreadsheet together a while back. It was never really intended to be a proper comparison. It’s mostly just a list to get some idea of what’s out there.

I put it together when we were considering how to include a GUI package into MonoGame.Extended. The result of which we ended up porting Nuclex and I also started working on one from scratch which I’m still working on, but making decent progress.

There’s been one or two pop up since I originally created the spreadsheet but as far as I’m aware it’s a pretty complete list. It’s certainly a good starting point if you’re going to do a write up about MonoGame UI frameworks. Feel free to take it and use it however you like.

It’s always good to have more people creating blog posts or resources about MonoGame libraries. Aside from the time it’ll take to create something like that there’s really no downside to throwing stuff like that on the internet. Just be sure to post a link back here when you’re done.