MonoGame Tutorials

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 Course

If 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.
C# Crash Course


2 - Getting Started

Before 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.
Getting Started


3 - 2D Tutorials

These 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.
2D Tutorials


4 - 3D Tutorials

These 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.
3D Tutorials


5 - Input Tutorials

No 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.
Input Tutorials


9 - Content Pipeline Tutorials

MonoGame 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.
Content Pipeline Tutorials


11 - Game Physics Tutorials

Games 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.
Game Physics Tutorials

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.