MonoGame and XNA Game Studio
< Back to the full list of 2D engines and editors
Summary
MonoGame is a cross-platform, open source implementation of XNA Game Studio. MonoGame uses a popular programming language (C#), meaning that suites like Visual Studio and Xamarin Studio provide advanced IDE features for it. Now that I've seen how these features work, I'm tempted to go back and take a closer look at the IDEs bundled with other game engines. As for the engine itself, MonoGame might not be quite as friendly as LÖVE or Unity, but it has many of the same advantages: speed, flexibility, and an organized API.
Pluses
- MonoGame/XNA:
- Comparatively low CPU use when running the minigame.
- Flexible and fully-documented API
- C#:
- Industry-standard object-oriented programming. No concerns of peculiar issues or limitations with homebrew
objects
like in Novashell, Game Editor, GameMaker, and so on.
apt-get install mono-devel
- Xamarin Studio and Visual Studio:
- Refactoring:
- IDE variable and class renaming is much more pleasant than using regexes.
- Quickly extract a class to its own file
- Jump to the definition of a variable or class
- Find all references to a variable name, accounting for scoping
- Built-in C#-specific code reformatting
- Type-aware autocomplete and mouse-hover tooltip help
- Debugging:
- Mouse-hover inspection of local variables
- Set/unset breakpoints and tracepoints with a single click or keystroke
- Never used
printf()
while debugging the minigame
- Xamarin Studio:
- Visual Studio:
- Scrolling in the editor is smooth with fast re-draws.
- Debug-mode compile–run is fast (maybe an XNA vs. WindowsGL MonoGame issue).
Minuses
- MonoGame/XNA:
- The API feels lower-level compared to LÖVE or even Unity:
- Took a while to understand which structures and classes needed to be passed around to allow drawing to the screen or getting screen coordinates
- More boiler-plate
- Monogame:
- On both Linux and Windows I had to manually install OpenAL or copy OpenAL32.dll and wrap_oal.dll to the build directory. Possibly a packaging hiccup?
- C#:
- Why doesn't the MSDN search feature have an option to limit the search to the current section?
- Debatably, features like static typing, access levels, and lots of built-in data types might slow down prototyping compared to a lighter-weight language like Lua.
- Xamarin Studio:
- Scrolling in the editor is a little bumpy due to slow re-draw speeds. Possibly a Gtk#-on-Windows issue: MonoDevelop 2.8 is smoother on Linux than Windows.
- Local variable inspection can cause the whole debugger to get stuck saying
Evaluation…
if you're not careful.
- In debug mode, had longer compile–run times than most other tools except Stencyl. In non-debug mode, the compile–run was closer to other tools.
- Visual Studio:
- Anti-aliases the text in the Find Results window regardless of system-wide anti-alias settings
Hints
Links
- Compiling XNA programs on the command line
- Compiling MonoGame WindowsGL programs on the command line
- Compiling MonoGame Linux programs on the command line
- < Back to the full list of 2D engines and editors
Updates
29 Jun 2013 |
Linux command line compile link. Add summary blurb from full list. |
23 Apr 2013 |
Command line compilation links |
21 Apr 2013 |
Add hyperlink for MonoGame_3.0.1.mpack |
04 Apr 2013 |
Moved out from the full list onto this separate page |
02 Apr 2013 |
Posted |