Introduction to MonoGame

Introduction to MonoGame

So you want to make games with MonoGame. You're in the right place! Stick with me, my young aspiring MonoGame developer! Before long, you'll be up and running and building games that baffle the mind with their awesomeness.

A Short History

In 2006, Microsoft released a game development framework called XNA. XNA was a set of tools and code libraries that made it easy to make games that could be run on Windows desktop and laptop computers, plus the Xbox 360. They eventually made it also work on Windows smartphones. XNA made game development in C# readily accessible.

One big limitation of XNA was the platforms it could run on—basically, Microsoft platforms only.

This is where MonoGame comes in. MonoGame began life as an open-source port of XNA. It is not directly managed by Microsoft but a group of independent software developers (including you, if you want to participate) who set out to build a version of XNA that would run on every platform, rather than just Microsoft platforms.

XNA has now been retired, but MonoGame lives on and is a popular choice to build games on for C# programmers.

Because of its history, MonoGame is very similar to XNA. However, since XNA's retirement, MonoGame has begun making changes to grow beyond what XNA was while keeping the foundational principles are still the same. That means if you find an XNA tutorial somewhere, most of it will remain true and correct in the MonoGame world.

Some Examples

Just so you can see what MonoGame can do, take a look at these examples of games made with MonoGame:

What You Need to Know

People have asked me what they need to know before getting started on these tutorials. I've seen people in game development forums say, "I want to make a game, but I don't know where to get started." The truth is, it will be hard to learn how to program a game if you don't know how to program at all.

I would recommend spending some time learning how to program if you don't already know. If you want to use MonoGame, then the ideal language to learn is C#. However, C++ is also a popular game programming language, and if you know C++ well, you'll be able to pick up C# in MonoGame fairly easily. (The same can probably be said of somebody who knows Java and possibly also Visual Basic.)

In my tutorials, I will try to explain some of the programming concepts that come up, but I won't be able to explain everything, so it would be best if you already have a grasp of programming concepts. Like I pointed out in my link a second ago, I've got a TON of C# tutorials. Even a book!

Also, understanding math, particularly linear algebra and geometry, could be helpful but is not necessary. Anything with computer graphics will heavily involve linear algebra, and most games hit geometry pretty heavily. The good news is that MonoGame takes care of a lot of the math for us, and for anything fancy we need, we will cover it in various tutorials.

I don't expect you to have had any previous experience with graphics programming or game programming. After all, if you knew how to do that, you probably wouldn't be here! We will be starting from the very basics, so you don't have to worry about anything.

A Few Final Words….

I really hope these tutorials help you get started. Since I started making games, I've had a whole lot of fun. I hope these tutorials can help you! If there is anything that I can do to help you along, let me know. In particular, feel free to post questions in the forum (and answer other people's questions if you have any good advice!), leave comments on the tutorial pages, and make suggestions for new tutorials or improve existing ones.

Good Luck!