C# is a popular language in game development, widely used thanks to Unity, but it is not limited to it.
In this article, I present 15 game engines developed with C#, showing various alternatives for those who want to explore new options beyond the most well-known ones, as well as a comparison table, more bindings and engines that have C# as a scripting language.
C# framework based on XNA. Focus on multiplatform. Main games: Stardew Valley, Fez, Axiom Verge.
C# port of libGDX. Incomplete and outdated project. Main games: None known.
Modern game engine in C#, based on FNA, with functional design and focus on performance.
2D C# engine for simple games with basic physics and UI support. Main games: None known.
C# framework used to create the game osu!lazer. Advanced UI and animation support. Main games: osu!lazer.
2D C# engine with educational focus and integration with MonoGame. Main games: The Incredible Baron, Tiled Map Editor integrations.
Reimplementation of XNA in C#. High compatibility and stability for game porting. Main games: Celeste, Axiom Verge, FEZ (ported).
2D ECS game engine in C# with built-in editor. Focus on productivity. Main games: Internal/experimental, no major releases yet.
Modern 3D engine in C#, still in development. Uses Vulkan via Veldrid. Main games: None published yet.
Full 3D engine in C#. Support for VR, PBR, C# scripting and robust editor. Main games: Children of the Galaxy, independent projects.
2D C# engine with modular editor and plugin system. Main games: No notable commercials.
C# library for creating roguelikes (maps, FOV, pathfinding). It is not a complete engine. Main games: Used in prototypes and personal projects.
C# library for console/roguelike games. Based on ASCII grids and tiles. Main games: None publicly known.
AR/VR framework in C# and C++. Support for OpenXR, HoloLens, Quest. Main games: Used in XR experiences, not commercial games.
3D C# + C++ engine with integrated editor, focused on visualizations and games. Main games: None of great importance.
Name | Language | 2D | 3D | Editor Included | Active? | Known Games | Link |
---|---|---|---|---|---|---|---|
MonoGame | C# | ✔️ | ✖️ | ✖️ | ✔️ | Stardew Valley, Fez, Axiom Verge | GitHub |
SharpGDX | C# | ✔️ | ✔️ | ✖️ | ✖️ | None | GitHub |
MoonWorks | C# | ✔️ | ✖️ | ✖️ | ✔️ | None | GitHub |
ShapeEngine | C# | ✔️ | ✖️ | Partial | ✔️ | None | GitHub |
osu!framework | C# | ✔️ | ✖️ | ✔️ | ✔️ | osu!lazer | GitHub |
FlatRedBall | C# | ✔️ | ✖️ | ✔️ | ✔️ | The Incredible Baron | GitHub |
FNA | C# | ✔️ | ✖️ | ✖️ | ✔️ | Celeste, Axiom Verge, FEZ | GitHub |
Murder | C# | ✔️ | ✖️ | ✔️ | ✔️ | None public | GitHub |
Prowl | C# | ✖️ | ✔️ | Partial | ✔️ | None | GitHub |
Stride | C# | ✔️ | ✔️ | ✔️ | ✔️ | Children of the Galaxy | GitHub |
Duality | C# | ✔️ | ✖️ | ✔️ | Partial | None | GitHub |
RogueSharp | C# | ✔️ | ✖️ | ✖️ | ✔️ | None | GitHub |
SadConsole | C# | ✔️ | ✖️ | Partial | ✔️ | None | GitHub |
StereoKit | C#/C++ | ✖️ | ✔️ | Partial | ✔️ | XR demos | GitHub |
NeoAxis | C#/C++ | ✔️ | ✔️ | ✔️ | ✔️ | None relevant | GitHub |
Or that have CSharp as their scripting language.
SFML.NET is the official SFML binding for the .NET family of languages (C#, VB.NET, C++/CLI, etc.).
It is built on top of the C, CSFML binding, to ensure maximum compatibility between platforms. The SFML.NET API is close to C++ One, but in the .NET style: Naming conventions are different, event handling uses native event support, etc.
Official address: https://www.sfml-dev.org/download/sfml.net/
There are several CSharp bindings for Raylib, among them:
SDL also has bindings for CSharp, in two versions:
AllegroDotNet is a library for .NET Standard 2.0 or .NET 6+ for Allegro 5. Compatible with native AOT (.NET 8).
These are engines made with C++, but have CSharp as a scripting language for game development: