* started refactoring for gui windows * a bit more work on gui windows * fixed some bugs and broken build stuff * fixed some bugs in gui controls * a little code cleanup * got gui dialogs positioning and experimenting with named styles by type * apply control styles directly in the constructor of controls * got everything compiling again * all gui controls have skinnable constructors * rework uniform grid desired size calculations * turns out gui layouts are complicated * include pdb files in nuget packages * fixed a bug in find nearest glyph * custom control styling * added a range constructor overload that takes one value * rethinking control desired size behaviour * made particle emitters more editable at runtime * moved the auto trigger code to the particle effect instead of the emitters * tweaks * changed the particle modifer interface to an abstract base with an optional name * changed the particle modifer interface to an abstract base with an optional name * an attempt at creating a gui combo box * rolled back the nested control experiment * pretty good (but not perfect) combo boxes * tweaks * name property bindings on lists * removed and cleaned up the hacks from the gui combo box * minor combo box styling tweaks * minor bug fix in gui combo box * experiments with data binding * fixed a mistake on the texture region service interface * working on the ability to serialize particles * finished particle serialization * more robust range deserialization * added editor browable attributes * fixed some broken demos * made the particle modifiers editable at runtime * fixed some issues with particle serialization * fixed some issues with interpolators
MonoGame.Extended
It makes MonoGame more awesome.
MonoGame.Extended is an open source collection of NuGet packages for MonoGame. A collection of classes and extensions to make it easier to make games with MonoGame.
Packages
- MonoGame.Extended - the core package creates a solid foundation with sprites, bitmap fonts, collections, serialization, shapes, texture atlases, viewport adapters, cameras, timers, math, object pooling, screens, and diagnostics.
- MonoGame.Extended.Animations - animated sprites and sprite sheets.
- MonoGame.Extended.Collisions (experimental) - collision detection and response.
- MonoGame.Extended.Content.Pipeline - a collection of importers for the MonoGame Pipeline Tool.
- MonoGame.Extended.Entities (experimental) - An entity component system.
- MonoGame.Extended.Graphics - high performance geometry and sprite rendering.
- MonoGame.Extended.Gui (wip) - a gui system built from the ground up for desktop and mobile games.
- MonoGame.Extended.Input - event based input listeners with mouse, keyboard, touch and game pad support.
- MonoGame.Extended.NuclexGui - a port of the Nuclex GUI framework.
- MonoGame.Extended.Particles - high performance particle engine ported from the Mercury Particle Engine.
- MonoGame.Extended.SceneGraphs - scene graphs and trees.
- MonoGame.Extended.Tiled - load and render maps created with the popular Tiled Map Editor.
- MonoGame.Extended.Tweening (experimental) - tween based animations.
Patreon Supporters
Thanks to all those that support the project on Patreon! Running an open source project can be done on a shoe string budget, but it's certainly not free. A little funding goes a long way. It keeps the build server up and running and let's me devote more of my time to the project. Even just a few supporters really helps.
What happens to MonoGame.Extended if we don't get the funding? Never fear. The project won't die. The code will always be safely open sourced on github.
Special thanks to the top supporters
- Ben
- Patrick (PRT Studios)
- Benny
- Walter
- Marcel
- Nathanial (optimuspi)
- Austin
- McKenzie (Pseudo Motion)
If you're not on the list and you should be please let me know! Managing Patreon is a job in itself.
Getting Started
If you're using the NuGet packages please read the install guide to setup the Pipeline tool.
Alternately, you might want to build from source or use a pre-release NuGet package.
Please keep in mind that the project is still evolving. Some breaking API changes are likely to occur as we progress.
Forums
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!
Documentation
We've got several feature demos in the repository and we're working on a new documentation site. You can also pop into the forums, check out my blog, ask a question on gamedev stack overflow or use our live chat.
Contributing
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.
Design goals
- 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.
License
MonoGame.Extended is released under the The MIT License (MIT).
Special Thanks
- Matthew-Davey for letting us use the Mercury Particle Engine.
- John McDonald for 2D XNA Primitives
- LibGDX for a whole lot of inspiration.
- @prime31 for Nez, which ideas and code bounce back and forth.
- All of our contributors!

