MonoGame 2.0

I am pleased to be the one, on behalf of the MonoGame team, to announce to the world that MonoGame 2.0 has been released today. Here is the official release announcement below:

MonoGame is an open source implementation of the XNA APIs that allows developers to build 2D games that run on Android, iPhone, iPad, Mac, Linux and Windows using the same code base, or reusing existing XNA code that runs on Xbox 360 or Windows Phone 7.

MonoGame 2.0 release is a major evolution of the platform. We went from only supporting the iPhone to becoming a cross-platform stack that now also runs on Android, Mac, Linux and Windows. To help developers get started, more than twenty individual samples and more than five complete starter kits are shipped with this release.

On the iOS platform, MonoGame runs on top of MonoTouch and there are at least eighteen games published on Appleā€™s AppStore built using the technology. This new release opens the doors for developers to publish games to the Mac AppStore using MonoMac, to Android Market using Mono for Android, and also to Windows and Linux systems using Mono.

This major advance in the MonoGame platform was made possible by an exponential growth in the number of contributors to the project in the last seven months. New contributors took over major components of the stack, tuned the performance, added new platforms, tuned the engine and fixed hundreds of bugs to turn MonoGame into a solid 2D gaming platform.

A new networking stack allows players on the same network to play with each other. One player could be running the iOS client, while another one might be using a Mac and another one an Android device. All playing the same game.

The sources can be downloaded from GitHub.

A group of multi-platform XNA Samples can be downloaded here.

ROADMAP

  • The 2.x series will be released frequently to provide bug fixes and performance optimisations.
  • The 3.x series will extend MonoGame with support for the XNA 3D APIs as well as something we are working on, which we believe the whole MonoGame will love.

HOW YOU CAN HELP

Firstly, go over to github and register. Then fork the main repo found at https://github.com/mono/MonoGame
This will allow you to make changes to your own repo and send us patches and enhancements, thus benefiting everyone.

You can also join the active community of developers on IRC at irc.gnome.org on the #monogame channel, where the day-to-day improvements are being discussed in real time.

If you release a game using MonoGame, please let us know so we can update our released games page, and mention MonoGame in your tweet.

SPECIAL THANKS TO

Jalfx (for starting this project in 2010, when it was called XNATouch)
kjpou1
technomage
slygamer
Clancey
kangaroo
Grapes
taskbit
jdindia
vchelaru
JorgeMagic
jordoh
_brain
kelthar
adreesteve
mgroves
espes
cschwarz
cadahl
CircleOf14
vostok4
viyano

Team Xamarin for their support and continued great work on all things Mono and everyone else that submitted patches/fixes and enhancements. Without your contributions this release would not have been possible.

Fixes and Features

All Platforms:

  • Greatly improved XNA 4.0 API for 2D support.
  • Networking support added to all platforms.
  • Support for compressed .xnb textures from XNA 4.x, as published by Microsoft
  • Added support for reading .tga files.
  • Added Blend,Depth and Sampler states
  • RenderToTarget implemented across all supported platforms
  • Fixed Memory Leaks: Texture2D, RenderTarget2D and Audio
  • Several memory optimisations, especially the one affecting iOS
  • New functions: Rectangle.Intersect,Color.FromNonPremultiplied,MathHelper.WrapAngle and lots more API compatibility
  • SpriteBatch speed improvements
  • Several XNA Samples and StarterKits, that share the same codebase. See list below.
  • ContentReader improvements across the board.

iOS:

  • Added multi threading to Sound and Music playback
  • Additional multi tasking fixes to allow Resume/Pause for iOS 4+ (inherit from MonoGameProgram)
  • GameCenter Support for Achievements and Leaderboards, via the Guide class
  • PDF Vector Graphics support
  • Handle Portrait to Landscape rotations
  • Rudimentary WaveBank support
  • Samples
    • Aiming
    • BatteryStatus
    • BouncingBox
    • ChaseAndEvade
    • Draw2D
    • GameComponents
    • GameStateManagement
    • MultiTouch
    • ParticleSample
    • Peer2Peer
    • PerPixelCollision
    • RectangleCollision
    • RenderTarget2D
    • RockRain
    • SpriteFont
    • Storage
    • TiledSprites
    • TransformedCollision
    • VideoPlayer
    • VirtualGamePad
    • Waypoint
  • StarterKits
    • AlienGame
    • Cards Framework showing BlackJack
    • Marblets
    • MemoryMadness
    • Platformer

Android:

  • All new implementation which share quite a bit of code with the iOS port.
  • Samples
    • ChaseAndEvade
    • Draw2D
    • Peer2Peer
    • RenderTarget2D
    • Sound
    • VideoPlayer
  • StarterKits
    • Cards Framework showing BlackJack
    • Marblets
    • Platformer

MacOS X:

  • All new implementation which share quite a bit of code between Windows and Linux
  • Added shader support via the Effects class
  • Rudimentary WaveBank support
  • Samples
    • XNA Game Development by Example Source Code
    • BouncingBox
    • ChaseAndEvade
    • Draw2D
    • GameStateManagement
    • GooCursor
    • HoneycombRush
    • NetRumble
    • NetworkPrediction
    • NetworkStateManagement
    • Particle3DSample
    • ParticleSample
    • ParticleSettingsMac
    • Peer2Peer
    • PerPixelCollision
    • RectangleCollision
    • RenderTarget2D
    • RolePlayingGame
    • SpriteEffects(Shader goodness)
    • Tetris
    • TiledSprites
    • TransformedCollision
    • VideoPlayer
  • StarterKits
    • Cards Framework showing BlackJack
    • Marblets
    • Platformer

Linux :

  • All new implementation which share quite a bit of code between MacOS X and Windows
  • Added shader support via the Effects class
  • Samples
    • XNA Game Development by Example Source Code
    • ChaseAndEvade
    • Draw2D
    • GooCursor
    • NetRumble
    • NetworkStateManagement
    • ParticleSample
    • Peer2Peer
    • RenderTarget2D
    • Sound
    • SpriteEffects(Shader goodness)
    • Tetris
    • TiledSprites
  • StarterKits
    • Cards Framework showing BlackJack

Windows :

  • All new implementation which shares quite a bit of code between MacOS and Linux
  • Samples
    • Draw2D
    • NetRumble
    • NetworkPrediction
    • NetworkStateManagement
    • Peer2Peer
    • RenderTarget2D
  • StarterKits
    • Cards Framework showing BlackJack
    • Platformer

Known Issues

iOS

  • Gestures under iOS are not working correctly, but multi-touch should work.
  • The Guide functionality is only available in iOS, for this release.

Android

  • Accelerometer disabled for Android, due to memory leak (with Xamarin)
  • The .xnb texture in the Render2Target demo is not loading correctly
  • Sound, using OpenAL, only plays MP3 files ( help us make it better )

Linux

  • Sound, using OpenAL, only plays MP3 files ( help us make it better )

Mac

  • Problem with full screen to normal. Viewport is not being set correctly.