No description
  • C# 67.3%
  • HTML 13.1%
  • CSS 7.7%
  • JavaScript 6.6%
  • Dockerfile 5.1%
  • Other 0.2%
Find a file Use this template
Syntriax ff04e6de62
All checks were successful
Docker Build Web / build (push) Successful in 1m46s
feat: added networking and related class and configurations
2026-07-05 11:37:59 +03:00
.forgejo/workflows chore: added actions for web build 2026-06-16 18:07:17 +03:00
.vscode feat: added networking and related class and configurations 2026-07-05 11:37:59 +03:00
Engine@e4c935d078 feat: added networking and related class and configurations 2026-07-05 11:37:59 +03:00
Platforms feat: added networking and related class and configurations 2026-07-05 11:37:59 +03:00
Shared feat: added networking and related class and configurations 2026-07-05 11:37:59 +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 networking and related class and configurations 2026-07-05 11:37:59 +03:00
README.md feat: added networking and related class and configurations 2026-07-05 11:37:59 +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 & WebSockets 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)