- C# 63%
- HTML 17.1%
- CSS 10.1%
- JavaScript 8.7%
- Dockerfile 0.8%
- Other 0.3%
| .vscode | ||
| Engine@1fbb162208 | ||
| Platforms | ||
| Shared | ||
| .dockerignore | ||
| .gitignore | ||
| .gitmodules | ||
| Dockerfile | ||
| Project.sln | ||
| README.md | ||
C# Game Project Template
A modular template for building games using my C# game engine.
📦 About
This repository provides a starting point for developing games using my C# game engine. It is structured to separate shared game logic from platform-specific implementations. I mostly use it for my own projects.
✨ Uses
- MonoGame Integration, for it's windowing, audio, packaging etc. You might wanna get familiar with it since most stuff is not abstracted yet like audio.
- KNI drop-in replacement for MonoGame, it is used in the Web build target since MonoGame does not support Web exports.
- Yaml Integration, for serialization
- LiteNetLib Integration, for networking
🧱 Project Structure
📁 Root/
├── Shared/ # Game logic
├── Platforms/
│ ├── Android/ # Android build target
│ ├── Desktop/ # Desktop build target (Windows/Linux/macOS)
│ └── Server/ # Headless/server build target
│ └── Web/ # Web build target (uses KNI instead of MonoGame)
├── Engine/ # Game engine (as a Git submodule)
└── README.md
🚀 Getting Started
1. Clone the Repository (with Submodules)
git clone --recursive https://git.syntriax.com/Syntriax/Engine-Template.git
⚠️ Make sure to use --recursive to initialize all submodules correctly.
If you've already cloned the repo without submodules, run:
git submodule update --init --recursive
2. Set Project Names (Optional)
Update every mention of the MyUniverse to reflect your project's name and namespace. For example:
namespace MyUniverse.Shared;
3. Write Your Logic Code
All your universe logic should go inside the Shared/ folder.
This structure allows your code to be reused across multiple platform targets.
📁 Root/
└── Shared/
└── Behaviours/
├── Movement.cs
└── Jump.cs
4. Add Your Objects to Your Universe
Shared/UniverseSource.cs is set up to be your main shared entry point where you can define your universe objects and their behaviours, add systems you see fit etc.
📁 Root/
└── Shared/
└── UniverseSource.cs
However keep in mind that just for the template sake. Play around with it however you like!
🛠 Requirements
- .NET SDK (version 10)
- KNI SDK (for Web builds only)