Best practice for Rich UI together with 2D gameplay (sport management sim game) - can you combine with winforms?

Hey all,

I’m working on a sports simulation game which also has next to the 2D part a very large management part. A previous version of the game, without 2D graphics was already built in winforms.

You can easily compare it to Football Manager for example, there is a large management part, and than you have the football match part.

I would like to know if it’s possible to combine monogame and winforms. I want to keep/have my management part of the game developed in winforms, and when the race loads, it then uses monogame, or a part of my winform as monogame to draw the 2D graphics.

(I want to do this because I find it very easy in winforms to create beautiful layouts for the management side of my game… menu’s, graphs, different panels, everything built in winforms is easy to do this)

And I am afraid that building entire screen UI’s with only text, buttons, graphs, icons will take much more time to do it completely in monogame compared to winforms.

Or what is advised to go about these rich UI screens that has player profiles, team profiles, race results, race rankings, email inbox, calendar view, transfer negotiating screens, … (think Football Manager). I’ve seen some UI libraries for buttons, dropdownlists, etc but most of the look not so professional… and by far not as powerful/easy as creating default winforms

I’ve done some extra research and this might be the way to go for me:

(I like this more than using one of the GUI/UI libraries in monogame I have found so far)

1 Like

Ok so apparantly this is not really the way to go for me, the performance of the 2D part might be enough for an editor or so, but not so for the real game… so back to square one… What would be the next best thing to do for me? Create my entire game in monogame and try to find a good GUI/UI library?

I don’t know if you use the DX or the GL version of MonoGame.Forms. Please note that they are differently implemented and that the DX version is much faster.

And yes, the basic idea of the library is to have a quick and easy way of creating editor environments.

Also make sure to read the Tips & Tricks / Dos & Don’ts section.


If your software is a game the generall way would be to use a GUI library like GeonBit.UI or Myra for example.

It’s also possible to use ImGui.NET as an intermediate GUI.

Good luck!

Cheers,
:: Marcel

2 Likes

Thank you for the response.
I think I found a better way for myself to do it, combine winforms and monogame in the same project and call the game.run from within the winforms form. By doing this I can do the management part of my game in Winforms and the race part in 2D

I went on to use DirectX desktop project (which actually combines both things that I want) and than from my winforms form start a new thread that runs the directX game object… I’ve also passed on the windows form formborder, formstate and formsize, so the monogame part renders in the same size