It makes MonoGame more awesome.
MonoGame.Extended is an open source extension library for MonoGame. A collection of classes and extensions to make it easier to make games with MonoGame.
MonoGame.Extended v0.5 has been published as a NuGet package and can be installed now. Please read the install guide to setup the Pipeline tool.
Install-Package MonoGame.Extended
This release is compatible with MonoGame 3.5!
Note: If you're still using MonoGame 3.4 you must upgrade to 3.5 for everything to work.
Our forum is part of the MonoGame community. Please ask any questions or post about problems or bugs that you have found there. Let us know if you're making a game with MonoGame.Extended!
MonoGame.Extended has a growing community of contributors adding to the project all the time. We also have Nuget packages of published releases and of course you can build from source to get the latest and greatest.
Please keep in mind that the project is still evolving. Some breaking API changes are likely to occur as we progress.
MonoGame.Extended is a portable class library that sits on top of MonoGame. It's designed to work on all supported platforms using a single portable DLL. At runtime, the portable library will call into the platform specific MonoGame DLL referenced in your project. If you do use it on another platform please let us know!
We've got several feature demos in this repository and we're building up the wiki. You can also pop into the forums, check out my blog, ask a question on gamedev stack overflow or use our live chat.
See the How to install MonoGame.Extended guide. Here's the TL;DR version:
The library is distributed as a NuGet package. Add a reference to your project using the following command:
Install-Package MonoGame.Extended
The package comes with 2 DLLs:
- MonoGame.Extended.dll
- MonoGame.Extedded.Content.Pipeline.dll
The MonoGame.Extended.Content.Pipeline.dll
needs to be referenced by the Pipeline tool. To reference the DLL in the Pipeline tool you'll need to edit your Content.mgcb
file.
- Tweening**
- Sprite Sheets
- Game Component**
- Texture Atlases
- Bitmap Fonts
- Tiled Maps
- Bounding Shapes
- Intersection and overlap testing
- Event based input (input listeners)
- Gesture detection (taps, panning, flinging and pinch zooming)
- Button Mapping (W=Up, A=Left, Space=Jump, etc)
- Game components**
- Sprites
- Scene Graphs
- Camera
- Simple shape rendering
- Screen Management
- Controls
- Label
- Button (Text or Image)
- Toggle Button (Checkbox)
- Progress Bar
- Text Box
- Image
- Slider
- Layout
- Canvas
- Stack Panel
- Wrap Panel
- Dock Panel
- Grid
- Dialog
- Window
- Skinning
- Events
- Drag and Drop
- Emitters
- Modifiers (age, drag, gravity, rotation, velocity, vortex)
- Profiles (box, circle, line, point, ring, spray)
- Sprite Batch Renderer
- Game Component**
- Timers
- Virtual Screens (viewport adapters)
- Bounding Shapes
- Collections
- FPS Counter
- Random Numbers
- Windows
- Linux
- Mac
- Android^^
- iOS^^
** Work in progress
^^ Not officially tested but should work
If you would like to contribute start with one of the following:
- Please post your thoughts on our forum.
- Join the discussion on one of the issues. We often use github issues to discuss new features as well.
- Talk about it on your blog or twitter.
- and of course, you can fork the project.
- The primary goal is to make it easier to make games.
- Choose the features you like and the rest stays out of your way.
- A clean and consistent API familiar to MonoGame developers.
- It's not a game engine, but extends the framework.
- Follows C# coding guidelines.
MonoGame.Extended is released under the The MIT License (MIT).
- Matthew-Davey for letting us use the Mercury Particle Engine.
- John McDonald for 2D XNA Primitives
- LibGDX for a whole lot of inspiration.
- All of our contributors!