MonoGame - Introduction and Installation
Welcome to the first lesson of the online course on MonoGame - an advanced framework which you can use to create professional 2D and 3D games easily. Unlike various click-based editors (such as GameMaker, etc.), MonoGame will teach you how to code. Therefore, you won't have any problem with finding employment in the future, and you'll be able to create high quality and high performance games. Some may even be surprised that creating professional games is relatively easy.
MonoGame is based on the Microsoft's original XNA framework, which is no longer supported.
What MonoGame Is
I'm sure you've already heard of DirectX. That's a set of libraries providing a direct control of the graphics card, which allows us to achieve maximum performance. This technology is used by all modern computer games. Unfortunately, high performance is often associated with low-level programming. Working with DirectX is problematic and mostly done using C++ - a low-level programming language with manual memory management. This makes the development very difficult. With the advent of the .NET technology and the modern C# language, Microsoft has introduced a new version of DirectX called Managed DirectX (managed in the sense it has automatic memory management). For more detailed information, see the the C# .NET technology introduction. The Managed DirectX was capable of using up to 98% of DirectX performance while providing high-level development options. Then it became the XNA framework - a high-level DirectX wrapper for C# .NET, designed for comfortable and professional game development. Later, MonoGame emerged from XNA and gave it, among other things, the ability to run on different platforms (Windows, MacOS, Android, ...)
MonoGame is a framework, which means it's not a program or language. It's a set of C# libraries. We use Visual Studio to develop games in MonoGame. Thanks to this, you're learning the C# language while making the game (there's a great demand for C# programmers). So unlike just clicking things in GameMaker, you're really learning something and don't have to worry about your job
Who is MonoGame for?
MonoGame targets freelancers and indie studios. It's therefore designed to create professional games by small businesses or individuals. MonoGame busted the myths that professional games must be complex and programmed in C++, and also proved that high performance can be achieved using even high-level languages. MonoGame provides advanced 2D and 3D support, working with sprites, effects, 3D model animations, multiplayer, and more.
Games Made With MonoGame
Watching this video might give you an idea what a MonoGame game looks like:
To see even more games created using MonoGame, visit MonoGame ShowCase. This gives you an idea of what you can create with the framework There're even very successful MonoGame titles on the Steam platform (for example, FEZ).
MonoGame Support
You can compile your game for:
- iOS
- Android
- MacOS
- Linux
- all Windows platforms
- PS4
- PSVita
- Xbox One
- Switch
MonoGame is Open-Source and you can freely distribute and sell all the games you make. Of course there's a fee on Xbox, Android, and iOS, as is typical for these devices.
Why Create Games in MonoGame?
As already mentioned, MonoGame is a unique project that provides tools to work with multimedia, and at the same time you work on your programming skills, which can't be said about ready-made engines such as Unity 3D.
What MonoGame Isn't
Although it may look like this, MonoGame is a framework, not an engine, which means that there's no predefined game architecture, physics engine, collisions, etc. MonoGame is simply a set of functions for drawing sprites, rendering 3D models, playing sounds, and processing player input. It's up to the developer to program all the game components.
What's Needed to Develop Games in MonoGame
First of all, I'd like to point out that the course requires at least a basic knowledge of C# and the object-oriented programming. If you have no experience with it, don't worry, we have high quality illustrative tutorials that'll teach you how to program in C# with a bit of patience
We'll, of course, need Visual Studio (see the links above). Next, we'll need the MonoGame framework itself.
The installation is simple - we'll download the installer for Windows and run it. The installation will add the option to create MonoGame projects to Visual Studio.
That’s all for today. Next time, in the lesson , we'll create our first simple game