2025-08-05 21:41:25 +03:00
2025-08-09 19:26:11 +03:00
2025-08-05 21:41:25 +03:00
2025-08-05 21:41:25 +03:00
2025-08-05 21:41:25 +03:00
2025-08-05 21:41:25 +03:00
2025-08-05 21:41:25 +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.
  • Yaml Integration, for serialization
  • LiteNetLib Integration, for networking

🧱 Project Structure

📁 Root/
├── Shared/              # Game logic
├── Platforms/
│   ├── Desktop/         # Desktop build target (Windows/Linux/macOS)
│   └── Server/          # Headless/server build target
├── 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. 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 like Desktop and Server.

📁 Root/
└── Shared/ 
    └── Behaviours/
        ├── Movement.cs
        └── Jump.cs

3. 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

4. Set Project Names (Optional)

Update every mention of the MyUniverse to reflect your project's name and namespace. For example:

MyUniverse.Shared.UniverseSource.ApplyUniverse(universe);

🛠 Requirements

  • .NET SDK (version 9)
Description
No description provided
Readme 137 KiB
Languages
C# 98.5%
Dockerfile 1.5%