# MonoGame/MonoGame

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/monogame-monogame).**

14,024 stars · 3,079 forks · C# · NOASSERTION

## Links

- GitHub: https://github.com/MonoGame/MonoGame
- Homepage: http://www.monogame.net
- awesome-repositories: https://awesome-repositories.com/repository/monogame-monogame.md

## Topics

`3d` `c-sharp` `cross-platform` `csharp` `dotnet` `game-development` `game-engine` `game-framework` `gamedev` `graphics` `monogame` `open-source` `xna`

## Description

MonoGame is a cross-platform game framework and C# game engine designed for the development of interactive software. It provides a unified environment for building games that run across desktop, mobile, and console platforms using a single codebase.

The framework functions as a 2D graphics rendering library, offering tools to apply custom shaders and visual effects to game assets. It utilizes a graphics abstraction layer to map drawing commands to platform-specific APIs, ensuring consistent rendering across diverse hardware.

The engine manages hardware-level tasks such as input handling, audio playback, and file system access through a cross-platform runtime abstraction. It also includes a content pipeline that processes raw assets into optimized binary formats during the build process to support efficient runtime performance.

## Tags

### Game Development

- [C#](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/c.md) — Provides a C# game development environment to handle rendering, input, and audio for interactive projects.
- [2D Game Frameworks](https://awesome-repositories.com/f/game-development/game-engines-frameworks/2d-engines/2d-game-frameworks.md) — Provides a unified set of tools for building cross-platform interactive games across desktop, mobile, and console environments. ([source](https://docs.monogame.net/))
- [2D Graphics Frameworks](https://awesome-repositories.com/f/game-development/game-engines-frameworks/2d-engines/2d-graphics-frameworks.md) — Provides modules for rendering two-dimensional game assets with support for custom shaders and visual effects.
- [Entity Component Systems](https://awesome-repositories.com/f/game-development/engine-architecture/entity-component-systems.md) — Organizes game objects as collections of data containers processed by independent logic modules for modular development.

### Web Development

- [Game Development Frameworks](https://awesome-repositories.com/f/web-development/cross-platform-development/game-development-frameworks.md) — Provides a development framework for building interactive games that run across multiple platforms using a unified codebase.

### Data & Databases

- [Asset Build Pipelines](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/processing-pipelines/asset-build-pipelines.md) — Converts raw game assets into optimized binary formats during the build process to minimize runtime loading times.

### Graphics & Multimedia

- [Custom Shader Programs](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/materials-shading/custom-shader-programs.md) — Enables the application of advanced visual effects like lighting and shadows to two-dimensional assets. ([source](https://docs.monogame.net/))
- [Shader Cross-Compilation Pipelines](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/shaders/shader-cross-compilation-pipelines.md) — Translates high-level shading language code into platform-specific GPU instructions for custom visual effects.

### Software Engineering & Architecture

- [Cross-Platform Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-abstractions.md) — Provides a unified interface for hardware-level tasks like input, audio, and file system access across diverse operating systems.
- [Hardware Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/hardware-abstraction-layers.md) — Maps high-level drawing commands to platform-specific graphics APIs to ensure consistent rendering across hardware.
- [Interactive Application Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/software-development-tooling/interactive-application-frameworks.md) — Supports the development of high-performance applications requiring precise control over hardware input and real-time rendering.
