MonoGame For Windows 8 Step 0

This is the first (zeroth) post in a series on getting started using MonoGame to create a Windows 8 Store game. Unless you want to spend the money on a Unity3D license, I think it’s the best option available for a hobbyist C# game developer to create a game for Windows 8.

A little about me

Back in the early 1980s, I was in middle school and my older brother convinced my parents to get a home computer. That was the Texas Instruments 99/4a and almost immediately I started trying to create my own version of Donkey Kong using user-definable character graphics. That didn’t go too well but I learned a lot, and eventually wrote some of the more popular third party games for the platform as a high school student.

Then I went off to college but still loved gaming. When learning a new programming language I’ve always found I learn it best if I write an application using it. So when I was learning C, around the same time I really got into MUDs, specifically GrimneMUD that used the DikuMUD engine. To connect to a MUD you would use the Telnet protocol, but there were “MUD clients” that would give you more functionality on top of raw Telnet. I tried a few MUD clients, but there was a simple but powerful one called TINTIN created by Peter Unold that I preferred but there were things it didn’t do that I wanted. So started extending and rewriting TINTIN in an effort to learn C better and I called my version TINTIN++. It went on to become one of the most popular MUD clients of all time (hey it even has its own Wikipedia page!).

A few years went by where I got away from game development and focused on business apps. At some point I started playing Flash based games and had the urge to get back into game development so I looked at writing games in Flash. I went out and bought a book “Beginning Flash Game Programming for Dummies”. It was a good book, but I never really got the hang of Flash. A couple of months later Microsoft released XNA, and there was no looking back. I was using C# for my day job, and the ability to use it to create games lured me in. I became a Microsoft MVP in XNA by helping out in the forums and blogging about learning how to program using C# and XNA.

Then Silverlight came along and I was enamored with it, and wanted to leverage my XNA skills in Silverlight. This led me to create SilverSprite, an open source library for Silverlight that implemented the XNA API. When I started I didn’t even know if it was possible, but I decided to give it a shot to see if I could make it easier for XNA developers to get their games running on the web.

So why am I going on about this, and what does it have to do with MonoGame? It turns out that MonoGame is a descendant of SilverSprite, and without me pioneering the way with SilverSprite, MonoGame may not have come about. I feel like the proud Godfather (or maybe more accurately the crazy Uncle) of MonoGame and I couldn’t be prouder of how it has grown and I’m thrilled to be involved in a small way in that process.

A little about MonoGame

MonoGame started out as XNATouch, an open source library on top of Mono for iOS. It evolved into a powerful XNA compatible library for iOS and Android for both 2D and 3D games, and many successful games have been deployed to these platforms using MonoGame.

When Sickhead Games wanted to bring their popular XNA based Windows Phone game ARMED! to Windows 8, they were faced with the problem that Microsoft wasn’t supporting XNA for Windows 8 Store apps. After exploring their options, they determined that porting MonoGame to Windows 8 was their path of least resistance and took on the task of porting MonoGame as they brought their game to Windows 8. They have done a phenomenal job and ARMED! is currently available on Windows 8 and is very impressive. They are not the only MonoGame based game on Windows 8, however, and there are many others including Geared and Draw a Stickman.

Along with XNA not being supported for Windows 8 Store games, it’s also not supported for Windows Phone 8 games. You can still make Windows Phone 7.x games in XNA but can’t take advantage of any Windows Phone 8 features. From what I understand there is a Windows Phone 8 version of MonoGame currently in the works.