{"repo":"fireblade-engine/ecs","free":true,"listed":false,"github":"https://github.com/fireblade-engine/ecs","clone":"git clone https://github.com/fireblade-engine/ecs.git","description":"A dependency free, lightweight, fast Entity-Component System (ECS) implementation in Swift","language":"Swift","stars":145,"topics":["entity-component-system","swift","ecs","fireblade-engine","spm","entity","swift-package-manager","entitycomponentsystem","game-development","game-engine"],"license":"MIT","category":"game-templates","readme_excerpt":"Fireblade ECS (Entity-Component System) This is a dependency free , lightweight , fast and easy to use Entity-Component System implementation in Swift. It is developed and maintained as part of the Fireblade Game Engine project. See the Fireblade ECS Demo App or have a look at documentation to get started. 🚀 Getting Started These instructions will get you a copy of the project up and running on your local machine and provide a code example. 📋 Prerequisites Swift Package Manager (SPM) Swiftlint for linting - (optional) SwiftEnv for Swift version management - (optional) 💻 Installing Fireblade ECS is available for all platforms that support Swift 6.1 and higher and the Swift Package Manager (SPM). Extend the following lines in your Package.swift file or use it to create a new project. 📝 Code Example 🏛️ Nexus The core element in the Fireblade-ECS is the Nexus. It acts as a centralized way to store, access and manage entities and their components. A single Nexus may (theoretically) hold up to 4294967295 Entities at a time. You may use more than one Nexus at a time. Initialize a Nexus with 👤 Entities then create entities by letting the Nexus generate them. To define components, conform your class to the Component protocol and assign instances of it to an Entity with You can be more efficient by assigning components while creating an entity. 👪 Families This ECS uses a grouping approach for entities with the same component types to optimize cache locality and ease up access to","default_branch":null,"files":null,"tree":[],"storefront":"/r/fireblade-engine","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/fireblade-engine/ecs/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}