SharpEngine is a game engine written in purely in C# using Silk.NET as a wrapper for the graphics rendering pipeline. SharpEngine aims to enable developers to create basic applications using simple instructions or advanced applications by exposing every component.
SharpEngine tries not to do "Magic Behind the Scenes 🧙♂️✨". Developers create their applications using traditional .NET solutions. The engine components use dotnet commands to:
- Create projects
- Launch projects
- More in the future? ..
All you need is the Core!
Using SharpEngine, you can create your applications using a Standalone approach, where all you need is a reference to the SharpEngine.Core. You can use a local project reference from the repo or add a NuGet package reference using dotnet add package SharpEngine.Core.NET.
After you have installed the NuGet package you initialize the Game implementation, Scene and Window:
public static void Main(string[] args)
{
var game = new Minimal(new DefaultSettings());
var scene = new Scene();
using var window = new SharpEngine.Core.Window(game.Camera, scene, game.Camera.Settings);
window.Run();
}public class Minimal : Game
{
public Minimal(ISettings settings)
{
CoreSettings = settings;
}
}Developing multiple projects is easy with SharpEngine's Launcher and Editor components.
I'm not a UI developer, I will make these prettier later I promise :)
The Editor supports dockable windows that can easily be customized using the ImGui.NET library. You can easily create new windows by implementing the ImGuiWindowBase class and letting the Editor handle the rest.
Currently the Editor contains 5 different windows:
- Actions Menu: Saves, loads and starts the game being edited.
- Assets window: Contains all the files (even in subdirectories) in the project directory.
- Context menu: Contains often used actions. Opened when you right-click anywhere in the Editor.
- Properties window: Contains the properies of the active element.
- Scene window: Contains a tree view of all the nodes within the active scene.
The launcher is an interface for easily accessing your projects and managing the versions of the engine you have installed.
- A minimalistic project that only opens a window and prints "Hello World" to the console.
- A Minecraft clone with 16^3 * 3 gubes with textures and basic lightning.
Currently the issues view in this repo is a shared place for all user reported issues and features planned to be added into the engine.
For more information about the future of the engine, see A Sharp Plan.
If you are interested in contributing to the project, see Contribution.
Icon created using the work of these lovely people:
Engine icon: Freepik, Shine icon: kornkun

