Classes and extensions to make MonoGame more awesome
C# Other

README.md

MonoGame.Extended Logo

MonoGame.Extended

It makes MonoGame more awesome.

Join the chat at https://gitter.im/craftworkgames/MonoGame.Extended Build Status

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.

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.

image

Special thanks to the supporters

  • Austin
  • Ben
  • Chris
  • Conor
  • Iliyan
  • James
  • Laurence
  • Marcel
  • Mario
  • Max
  • Nathanial
  • Nox

We're working towards the v0.6 release

There's a lot going on in the develop branch right now. We're working towards the next official release (v0.6.xxx). If you want to keep up with the latest and greatest it's recommended that you:

Version 0.5 is available on NuGet

MonoGame.Extended v0.5 was published on 8th April 2016 as a NuGet package. 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.

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!

Development status

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.

Usage

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!

Documentation

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.

How to install

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.Extended.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.

Roadmap / Features

Animations

  • Tweening**
  • Sprite Sheets
  • Game Component**

Content

  • Texture Atlases
  • Bitmap Fonts
  • Tiled Maps

Collision Detection

  • Bounding Shapes
  • Intersection and overlap testing

Input Management

  • Event based input (input listeners)
  • Gesture detection (taps, panning, flinging and pinch zooming)
  • Button Mapping (W=Up, A=Left, Space=Jump, etc)
  • Game components**

Graphics and Scenes

  • Sprites
  • Scene Graphs
  • Camera
  • Simple shape rendering
  • Screen Management

GUI System

  • 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

Particle System

  • Emitters
  • Modifiers (age, drag, gravity, rotation, velocity, vortex)
  • Profiles (box, circle, line, point, ring, spray)
  • Sprite Batch Renderer
  • Game Component**

Math and Utilities

  • Timers
  • Virtual Screens (viewport adapters)
  • Bounding Shapes
  • Collections
  • FPS Counter
  • Random Numbers

Platforms

  • Windows
  • Linux
  • Mac
  • Android^^
  • iOS^^

** Work in progress

^^ Not officially tested but should work

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