MonoGame - Write Once, Play Everywhere
Our dev world is a big place (Cpt. Obvious here again...). While we might like to stay inside our own little dev world, never leaving our platform of choice, with the rise of others, that might not viable anymore. Yet it would be cool if we could leverage what we already know. To take our C# development experience and use that when developing games for different platforms...
What is MonoGame?
MonoGame is a free OpenGL implementation of the XNA Framework for MonoTouch, MonoDroid, Mac OS X, Windows & soon Linux. Our goal is to allow XNA developers on Windows & Windows Phone 7 to port of their games to the iPhone / iPod / Android / Mac OS X (visa versa), with minimal hassle.
MOVE TO GITHUB
The latest, and greatest, cutting edge source code for MonoGame can now be found here - https://github.com/mono/MonoGame
If you've never used GitHub before, try out my GitHub Tutorial.
Codeplex will still be our home page, as the discussions forums are excellent, but the code will now be updated over on github, as members of the Novell team are also helping out.
- Add OpenGL ES 2.0 support so we can use 2048x2048 textures and then have shader support. If ES 2.0 is not found on the device it will fall back to ES 1.1, hence 1.1 working properly before moving onto ES 2.0 support.
- Once ES 2.0 with fallback to ES 1.1 is working and appears to be stable we will release MonoGame 2.5.
- Once we are happy that 2D is the best it can be we'll add 3D support.
- Once 3D support is stable we can then release MonoGame 3.0 .
So are there any samples we can play with on Windows? Yep!
And does it actually work? Yep!
Some notes to get the samples running;
- There are references to the OpenTK framework. I used Nuget and found an "unofficial" OpenTK package that seemed to work okay.
- The Windows Samples also reference the "Lidgren.Network.Windows" and "MonoGame.Framework.Windows" projects but doesn't include them. So download the source for these from the git page, mono / MonoGame, and replace the broken project references with those.
- There's a link to the SDL.DLL that might also be broken. That file is also available in the source download in the \ThirdParty folder.
So a there's a little fixup needed, but once done I was able to compile and run the samples.
What kind of samples are available?
Also available are starter kits too.
Finally lets quickly look at the framework itself. This is a complex project...
If you're feeling the need, the need to code for different hardware platforms, to write games that use C# and XNA and run in many places, MonoGame might be something you'd like to check out...