User Tools

Site Tools


start

This is an old revision of the document!


ECS Architecture Documentation

This is the Documentation for the CREAT3D ECS Architecture. It contains both high level concepts and overview, as well as low level scripting reference and documentation.

Overview

The purpose of this project is to provide a single, unified, portable and cross platform codebase (C# .NET) that can be used to create any video game or product of sufficient modeling complexity. The architecture is designed to be introduced as a plugin into existing projects (nuget packages for .NET projects, UnityPackages for Unity projects). It is not meant to act as a game engine. Rather, it is designed to attach to any .NET compatible game engine (Unity, Godot) or provide the base for creating one.

What is provided

  • Native Serialization that converts all Entities and Components into compact portable serializable structures.
  • A Message Broker serving as the core of the entire architecture, providing dependency inversion support that helps decouple all architectural layers.
  • UDP Networking support with a highly scalable and performant RPC infrastructure.
  • MVVM architectural support that enables the codebase to interface with game engine code in a completely decoupled way.
  • A scalable, robust and performant Physics System for 3D Rigidbody Physics, offering Raycasting, Collision Events and realtime physics simulations.
  • Portable Navmesh Navigation through A* Pathfinding for AI Agent movement and collision predictions.
  • FSM based AI offering highly modular and craftable decision making trees for complex AI agent interactions.
  • Unity plugins that import and extend these portable features for engine interfacing.

What is not provided

  • Server modules. The architecture is created with authoritative servers in mind, providing the ability to write game logic once and have it run both on server and client side without requiring to run the game engine on the server. Since each online game is unique in its own way and requirements, a multi-paradigm server module is not feasible. Architecture adopters are urged to use the architecture to create their own modules tailored to the needs of their games.
  • Platform deployment. The architecture depends on 3rd party support for deploying software using its features.
  • Rendering support. If graphics are required as an output, support must be given by interfacing with 3rd party rendering engines (game engines or custom made renderers).
  • Game Engine integration other than Unity. The architecture was built for use primarily with the Unity Game Engine. Even though its portable nature allows it to interface with other engines too (Godot, custom ones), the necessary adapter code has to be implemented individually.
start.1764065504.txt.gz · Last modified: by diviner

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki