No description
  • C# 63%
  • HTML 17.1%
  • CSS 10.1%
  • JavaScript 8.7%
  • Dockerfile 0.8%
  • Other 0.3%
Find a file Use this template
2026-06-08 00:31:58 +03:00
.vscode fix: general build and configuration issues 2026-06-07 21:24:07 +03:00
Engine@1fbb162208 chore: updated readme 2026-06-07 18:42:02 +03:00
Platforms refactor: tidied up template structure 2026-06-08 00:31:40 +03:00
Shared refactor: tidied up template structure 2026-06-08 00:31:40 +03:00
.dockerignore initial commit 2025-08-05 21:41:25 +03:00
.gitignore initial commit 2025-08-05 21:41:25 +03:00
.gitmodules chore: updated submodule link from ssh to https 2025-10-18 11:19:37 +03:00
Dockerfile fix: broken dockerfile 2026-04-06 13:12:08 +02:00
Project.sln feat: added web platform project 2026-06-07 17:23:51 +03:00
README.md chore: updated readme 2026-06-08 00:31:58 +03:00

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)