Skip to main content

Introduction

Welcome to the MonoGame.Extended documentation!

What Is MonoGame.Extended

MonoGame.Extended is a free and open-source (FOSS) library that provides common implementations and solutions for game development with MonoGame. It is not an engine or a framework. For more information on the foundational principles of MonoGame.Extended, please read the Principles document.

Main Features

Some of the main features of MonoGame.Extended include:

FeatureDescription
Texture HandlingOffers utility classes like Texture2DRegion, Texture2DAtlas, and Sprite to better manage using Texture2D and rendering 2D sprite graphics
2D AnimationsOffers utility class such as SpriteSheet and AniamtedSprite for creating and managing 2D sprite animations.
FontsProvides support for Bitmap Fonts created with BMFont or Hiero.
InputUtility classes that extend the base input states provided by MonoGame as well as an InputListener for event based input events instead of poll based.
CameraClass wrapper for viewport objects. Allows easily moving the viewable area of your world.
CollectionsContainers for data with efficient insertion, removal, and memory usage. Each with unique reasons usage.
CollisionsFeatures to handle collision detection using different Space Algorithms.
Content ExtensionsExtension methods for ContentManager and ContentReader
ECS⚠️ Documentation needs updating
Graphics⚠️ Documentation needs updating
Object PoolingCollection types that reduce performance issues related to things like Garbage Collection.
Particles⚠️ Documentation needs updating
Serialization⚠️ Documentation needs updating
Screen Management⚠️ Documentation needs updating
Tilemap⚠️ Documentation needs updating
Tweening⚠️ Documentation needs updating

How to Use These Docs

On the left side of the screen, you will find the documentation navbar. On mobile devices, this can be accessed by clicking the hamburger menu in the top left. Since MonoGame.Extended is a set of utilities and not an engine, the documentation does not need to be read in a specific order however the documentation within each category may be ordered to build off of the previous document.. Each section or document is an isolated topic, so you can skip ahead or read only the ones relevant to your use case.

On the right side of the screen, you will see a table of contents that makes it easier to navigate between sections of the current document. On mobile, this can be found as a drop-down at the top of the document page.

Prerequisite Knowledge

Where possible, the documentation is designed to be beginner-friendly. However, a baseline must be established to maintain focus on MonoGame.Extended functionality. Links to additional documentation will be provided when needed.

Readers should have a solid foundational skill in C# and an understanding of how to create a game project with MonoGame. These documents are not intended to teach C#, MonoGame, or game development in general, but to focus on the functionality provided by MonoGame.Extended.

Join our Community

If you have any questions related to MonoGame.Extended, you are welcome to join one of our community hubs and ask questions:

The maintainers are also active in the main MonoGame Discord.

Something Missing?

If you discover any issues with the documentation or have suggestions for improvement, please create an issue in the documentation GitHub repository or join the MonoGame.Extended Discord and leave a message. Contributions to the documentation are encouraged and welcome; please read the Contributing document first.

For issues or feature requests in the MonoGame.Extended library itself, please open new requests on the MonoGame.Extended GitHub.