This repository is a collection of reference implementations and sample projects demonstrating data-oriented design using the Unity Entities package. It provides a suite of examples for implementing an entity component system that separates game data into components and logic into systems.
The main features of unity-technologies/entitycomponentsystemsamples are: Entity Component Systems, Entity Component System Samples, Architectural Patterns, Game Design Patterns, Implementation Patterns, Parallel Job Systems, Entity Rendering Systems, Multiplayer Networking.
Open-source alternatives to unity-technologies/entitycomponentsystemsamples include: space-wizards/space-station-14 — Space Station 14 is a C# multiplayer game and roleplay simulation framework. It is built upon an… urho3d/urho3d — Urho3D is a cross-platform 3D game engine written in C++. It uses a component-based scene graph to compose game… amethyst/amethyst — Amethyst is a data-driven game engine written in Rust for building high-performance 2D and 3D games. It is built on an… sandermertens/flecs — Flecs is a high-performance entity component system framework and data-oriented programming library. It serves as a… isadorasophia/murder — Murder is an entity component system game engine designed for 2D game development. It provides a core framework for… o3de/o3de — This project is an open-source 3D game engine designed for building high-fidelity games, simulations, and cinematic…
Space Station 14 is a C# multiplayer game and roleplay simulation framework. It is built upon an Entity-Component-System (ECS) game engine that separates logic into systems and data into components to manage complex entity interactions. The project functions as a grid-based physics simulator with a YAML data-driven prototype system for defining game objects. The project features a specialized 2D sprite rendering engine that maps server-side appearance data to client-side shaders. It implements a networking model with client-side prediction and dirty-flagged state synchronization to reduce inp
Urho3D is a cross-platform 3D game engine written in C++. It uses a component-based scene graph to compose game objects from nodes and attached components, separating transforms from behaviors for modular design. The engine integrates AngelScript and Lua scripting for game logic, uses the Bullet library for physics simulation, and renders scenes with OpenGL or Direct3D through forward, deferred, or light pre-pass pipelines with customizable render passes and shadow mapping. The engine distinguishes itself with a built-in visual scene and UI editor for composing 3D worlds and interface layouts
Amethyst is a data-driven game engine written in Rust for building high-performance 2D and 3D games. It is built on an entity component system architecture that decouples game state from logic to enable parallel processing and reusable code. The framework features a glTF 3D renderer for importing scenes and geometry using physically based materials. It also serves as a multiplayer game framework, providing network transport abstractions and state synchronization for real-time online experiences. The engine covers a broad range of capabilities, including hybrid 2D/3D rendering, asynchronous a
Flecs is a high-performance entity component system framework and data-oriented programming library. It serves as a simulation engine core and game engine architecture tool, decoupling state from behavior by separating entities, components, and systems. The framework features a runtime reflection layer for dynamic data inspection and a built-in scripting system for defining entity behavior without recompilation. It also includes a network interface and REST API for remote simulation administration and state querying. The library covers a broad surface of simulation capabilities, including ar