Concussion Engine is a small, modular game engine written in C# and built on MonoGame that uses an Entity-Component-System (ECS) style architecture. It utilises data-oriented design to optimise CPU caching and performance.
This was developed as part of undergrad dissertation.
- Core engine:
Hassie.ConcussionEngine.Engine— contains core interfaces and systems (entity manager, event manager, world management, systems for update/render/physics/input, and collision handling). - Example games:
Hassie.ConcussionEngine.PongandHassie.ConcussionEngine.MegaPong— simple Pong-like games built on the engine. - Tests:
Hassie.ConcussionEngine.Tests.Engine— unit tests for engine components.
Hassie.ConcussionEngine.Engine/— engine implementation (Core, Entity, Event, System, World, Physics, Render, Input, Collision, Component folders).Hassie.ConcussionEngine.Pong/— Pong example game and content.Hassie.ConcussionEngine.MegaPong/— MegaPong example game and content.Hassie.ConcussionEngine.Tests.Engine/— unit tests for engine modules.Concussion Engine.sln— Visual Studio solution file.
- .NET Core 3
- MonoGame 3.x
From the repository root, you can build the solution with the .NET CLI:
dotnet build "Concussion Engine.sln"To run one of the example games from the repository root:
dotnet run --project Hassie.ConcussionEngine.Pong/Hassie.ConcussionEngine.Pong.csprojOr for MegaPong:
dotnet run --project Hassie.ConcussionEngine.MegaPong/Hassie.ConcussionEngine.MegaPong.csprojRun tests with:
dotnet test Hassie.ConcussionEngine.Tests.Engine/Hassie.ConcussionEngine.Tests.Engine.csproj