MonoGame is a lightweight, cross-platform, unopinionated game engine for C#. MonoGame is an open-source implementation of Microsoft's now-retired XNA, and they've stuck extremely close to what XNA was while also being able to run almost anywhere.
That "unopinionated" thing is, perhaps, the most important aspect of MonoGame, and drives much of what MonoGame is. On one hand, it doesn't pigeonhole you into doing anything a certain way, which is a refreshing contrast to other game engines. You can build things the way that you want or the way that makes the most sense for your game.
On the other hand, the decision to be unopinionated means there's more you must write yourself. As an example, there is no built-in physics engine or UI library. Still, there are lots of libraries out there for doing both in MonoGame, and if you feel they're a good fit for what you're doing, you can bring them along for the ride. If you don't find anything you like, you can build your own.
These tutorials are being ported from the XNA tutorials, but they have not all been ported. When you get done with the tutorials here, you might consider jumping over to those and reading them to flesh out some extra details.
![]() |
1 - C# Crash CourseIf you have never done anything with programming, start with this crash course on the basics of programming with C#. If you already know the basics of programming, feel free to skip this set of tutorials. |
![]() |
2 - Getting StartedBefore you get started, there are a few things you will need to know and do in these four tutorials. These tutorials explain a little bit about what MonoGame is, how to install the necessary (free) software to use MonoGame, and how to do some of the basic things in it. Once you have been through these few tutorials, you will be able to go on to just about anything that you want, though I recommend going to the 2D tutorials next, and then the 3D tutorials, and pick up the rest of the tutorials as you need them. |
![]() |
3 - 2D TutorialsThese tutorials cover the basics of doing 2D stuff, like drawing text and images, as well as 2D animation, and some fancy effects in 2D. After you have completed these tutorials, you should be able to make some pretty interesting 2D games with MonoGame. |
![]() |
4 - 3D TutorialsThese tutorials should get you going with a 3D game. They cover things like drawing models, animation in 3D, and some simple effects, like lighting and fog. These tutorials should really get you going on any 3D game. |
![]() |
5 - Input TutorialsNo game is complete without getting input from a user. When you get to the point in your game development where you are ready to get input from the user, take a look at these tutorials. They cover all sorts of input, including keyboard input, mouse input, and input from an Xbox controller. |
![]() |
9 - Content Pipeline TutorialsMonoGame comes with the content pipeline feature, which manages all of your content, like 3D models, audio files, textures, images, and so on. The content pipeline is extensible, and you can add on anything you want to it, which is pretty nice. These tutorials cover more detailed information about how the content pipeline works and how to create extensions for it. When you want to know more about the content pipeline or how to extend it, come back to these tutorials. |
![]() |
11 - Game Physics TutorialsGames can also require an understanding of physics in order to function well. These tutorials cover some of the more common physics-related concepts that may come up while you are making your game, including collision detection. |
This is all of the MonoGame tutorials that I have at the moment. I intend to add more soon!
Additionally, it is usually pretty easy to port XNA code over to MonoGame, so check out all of my XNA Tutorials. There's a nearly limitless number of them, most of which should work without problem.
But while we're at it, please let me know what you're seeing as you explore MonoGame. Did you find a tutorial that doesn't port directly over? Are you running into a MonoGame-specific problem? Is there anything specific that you'd like to see covered first?
Anything you can do to help me prioritize the work I've got to do will help a great deal.