Whilst nobody was looking, Mono became the most important framework in the world of games.
And I mean that with only a smidge more than my usual levels of hyperbole. It really is fantastically important, as far as game development goes.
I blogged a long time ago about its use inside EA’s multi-million-selling The Sims 3. And the massive performance gains in Second Life when they switched from their in-house scripting language to Mono are well documented. But I’m not talking about those, I’m talking about the now, the recent stuff.
First up is Unity 3D. Not to be confused with the Ubuntu user interface, Unity 3D is a proprietary game development tool which began life for Mac, and has now managed to become the single most popular game engine amongst smartphone developers. It targets a bunch of new platforms – not just Android and Windows and iOS, but in the new 4.0 release, Linux too for the first time. And every Unity 3D game is a Mono game – the core of Unity is a fork of Mono, which enables it to have the performance and ease of development which it does. A reasonably large percentage of the cross-platform games on Kickstarter, such as Wasteland 2 and Super Retro Squad, are cross-platform because Unity 3D makes it easy – and each of those games is powered by Mono.
However, I have better things to do today than gush about a proprietary tool. No, far more important are the Free ways to develop games. So today I’m going to talk about MonoGame.
MonoGame is an implementation of Microsoft XNA – a high level framework for developing in .NET languages, originally designed to allow indie developers access to the Xbox 360. XNA covers many of the bases covered by SDL – sound, graphics, input, and so on, but can go onto platforms where SDL isn’t an option, such as the aforementioned Xbox 360. And with MonoGame, any game written for XNA is a game which can not only run on Microsoft’s approved platforms – Windows, Xbox 360, Windows Phone – but also on other platforms such as Mac OS X, iPhone, iPad, Android, and Linux. Cross-platform is good. More games are good. And MonoGame enables every Xbox 360 indie developer to throw a Linux port out of the door with a relative minimum of fuss. There are 2,521 games on the Xbox Live Indie Games store (games by individuals or small groups, with no major publisher) and each of those can become a game for Debian and Ubuntu with very little work. Not to mention the games with actual publishers (some portion of the 492 games on XBLA), not to mention the mobile games written for Windows Phone, Android and iOS. All of these developers have an easy route to Linux releases, as long as the effort remains low.
And with today’s publishing in the Debian archive of MonoGame 2.5.1, the effort is as low as can be.
Anyone who purchased the recent Humble Indie Bundle 5, and played Bastion, has seen MonoGame in action – Bastion began life as an XNA game for Xbox 360, and the Linux port was made possible only by MonoGame. Bastion’s 100+ industry awards should indicate the possibilities open to a creative mind with decent developer tools.
MonoGame is Free Software, built on top of other Free Software, with an active upstream development team genuinely responsive to the needs of Linux distributions. It’s well worth a look not just for porting, but for new projects too. And I’m delighted that it will be available to all users of Debian 7.0, as well as Ubuntu 12.10.