21.12.2016

MonoGame: a framework for indie developers

The developer of the MonoGame framework, on which Bastion and Axiom Verge were created, told the publication 80.lv about the capabilities of the package and work on it. We provide a translation of the material.

monogame

Strictly speaking, MonoGame is not a game engine. This is an open source implementation of the Microsoft XNA framework, and it is used by indie developers all over the world. It was used to create Bastion, Towerfall: Ascension, Axiom Verge, Apotheon and Infinite Flight. We talked about the product with the main developer of MonoGame, Steve Williams, and discussed some of its features.

About the authors

I and Tom Spilman are currently working on MonoGame. I am a professional game developer with 17 years of experience. Tom is also an experienced developer. He is the co-founder of Sickhead Games Studio in Houston, Texas, and I have spent most of my professional life at Krome Studios, which is located in Brisbane, Queensland. Dan Ellis and Dominique Louis from England are helping us.

MonoGame

MonoGame is an opensource implementation of the Microsoft XNA framework. A framework is rather an abstract idea of a platform, it defines the basic structure of a software system. The engine is a more complete design, which includes an environment editor, a graphical user interface, a particle system, physics, and so on. It often includes tools with which you can create in-game content.

MonoGame users have access to built-in libraries, pipelines for content production, ready-made project templates along with the installation program, as well as complete program code if they have cloned a Git repository from GitHub.

It’s very easy to start creating a 2D game. Most MonoGame users use MonoGame for exactly this purpose. The SpriteBatch class, one of the most commonly used classes, manages most of the 2D rendering tasks. Just as with any engine or framework, performance will depend on exactly how the system is used. SpriteBatch uses the render in the most efficient way – depending on what tasks were set.

backfire

Tower Fall Ascension
With 3D, everything is a little more complicated, but MonoGame copes with this task.

An example of how a 3D flight simulator was created using this tool is the Infinite Flight game from Flying Development Studio LLC.

Cross-platform

The basis of cross–platform support is the C# language. Using .Microsoft’s NET Framework for Windows platforms and Mono for the rest, most of the code remains unchanged during cross-platform development. The need for platform-dependent code usually appears when working with individual components, such as Direct3D 11 on Windows or OpenGL on Mac and Linux. Thanks to this approach, platform-dependent code remains part of strictly defined modules and does not clog up the main part of the code. As a result, developers who work with MonoGame can take code written for one platform and use it on another platform – and at the same time make almost no or absolutely no changes.

The largest projects

Infinite Flight has already been mentioned above. This is one of the biggest games created with MonoGame. Other projects include Bastion, Towerfall: Ascension, Axiom Verge, Apotheon and Square Heroes.

Community

No one has specifically measured the size of the community, but, according to my estimates, thousands of people around the globe use MonoGame and create a variety of products with it – from small demos to large commercial projects. On GitHub, MonoGame has 221 contributors (contributor, in this context, the one who voluntarily refines the code – approx. editors) and 80 participants on the project channel in Gitter. MonoGame can be downloaded and used absolutely for free. Most developers use MonoGame to create games for desktop platforms (Windows, Mac, Linux). iOS and Android are in second place in popularity.

elsenova

Axiom Verge
There are forums for communication on the project’s website, a link to the project’s channel in Gitter and to the Git repository.

We also actively communicate on Twitter. The hashtags #MonoGame and #BuiltWithMonoGame are often used there. Once a month or two, we hold more or less regular meetings using Google Live Hangout, where both members of the MonoGame team and the most prominent representatives of the community are present. You can learn more about this on the MonoGame YouTube channel.

We attend a variety of events around the world, although we usually don’t have our own booth. Tom regularly comes to GDC in San Francisco, Dominic and Dean often attend events in London and the surrounding area, and I go to Game Connect Asia Pacific in Melbourne.

Instructions for beginners

The easiest way to get acquainted with MonoGame is from our website, where you can download the installer and try to work with the engine. There is also documentation and links to many tutorials.

In addition, there are many useful videos on the MonoGame YouTube channel. A MonoGame user on YouTube. User Simon Jackson (Simon “Darkside” Jackson) posts various useful tutorials on his MonoGame channel.


screen1

Apotheon
If you want to get to know the program code of the project better, build the framework yourself, or help the developers of MonoGame, then you can use this link to clone the Git repository.

Translated by Irina Smirnova

Source: 80.lv

Comments
Write a comment...
Related news