Praetor 4 UI User Interface

Years ago I started working on a browser game. Web pages quickly became too static and boring, so went on to write a client program that connects to the server via web services. This client originally was written with XNA 3 and later ported to XNA 4. Then, when MS killed XNA, I put the whole thing on ice.

Recently, I managed to convert my code to use MonoGame and work out the problems with the shaders and other graphics resources. Here is a screenshot of the now once again working game client:

The game still is far from finished. Instead, I would like to bring my UI to your attention. I modestly named my 3D engine ‘Praetor’ (the first). In the screenshot you can see it animating the corvette and the asteroids. In the foreground you can see the UI for logging in. This is Praetor UI, which I also started to develop for my game. It may now be far enough to be of interest for other developers. It accidentally has become a little too dependent on the Praetor 3D engine, but I intend to change that soon. Apart from that, it already has a lot to offer:

  • The UI runs in a separate thread, like a separate application within the application. Rendering is totally independent.
  • There already are quite a few controls with many properties to customize the appearance. I would love to see what a better artist than me can do with it.
  • Both general and named styles can be applied to each control, so that you must not set all those properties for every control you wish to use. Those styles are defined and loaded from a XAML theme.
  • The views (as in Model View Presenter pattern) also are defined and loaded from XAML, including wiring up Control events to event handler methods.

Just a small update, as a video says more than a thousand words. This is what you get when you cross a browser game with MonoGame:

Comments are always welcome.