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:
Feature | Description |
---|---|
Texture Handling | Offers utility classes like Texture2DRegion , Texture2DAtlas , and Sprite to better manage using Texture2D and rendering 2D sprite graphics |
2D Animations | Offers utility class such as SpriteSheet and AniamtedSprite for creating and managing 2D sprite animations. |
Fonts | Provides support for Bitmap Fonts created with BMFont or Hiero. |
Input | Utility classes that extend the base input states provided by MonoGame as well as an InputListener for event based input events instead of poll based. |
Camera | Class wrapper for viewport objects. Allows easily moving the viewable area of your world. |
Collections | Containers for data with efficient insertion, removal, and memory usage. Each with unique reasons usage. |
Collisions | Features to handle collision detection using different Space Algorithms. |
Content Extensions | Extension methods for ContentManager and ContentReader |
ECS | ⚠️ Documentation needs updating |
Graphics | ⚠️ Documentation needs updating |
Object Pooling | Collection 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.