[![version 0.3.0](https://img.shields.io/badge/version-0.3.0-brightgreen.svg)](releases/tag/v0.3.0) [![license](https://img.shields.io/github/license/mashape/apistatus.svg)](LICENSE) # Fireblade ECS (Entity-Component-System) This is a **dependency free**, **lightweight**, **fast** and **easy to use** [Entity-Component-System](https://en.wikipedia.org/wiki/Entity–component–system) implementation in Swift. It is developed and maintained as part of the Fireblade Game Engine project. ## Getting Started These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system. ### Prerequisites * [Swift Package Manager (SPM)](https://github.com/apple/swift-package-manager) * [Swiftlint](https://github.com/realm/SwiftLint) for linting - (optional) * [Jazzy](https://github.com/realm/jazzy) for documentation - (optional) ### Installing Fireblade ECS is available for all platforms that support [Swift 4.0+](https://swift.org/) and the [Swift Package Manager (SPM)](https://github.com/apple/swift-package-manager). Extend the following lines in your `Package.swift` file or use it to create a new project. ```swift // swift-tools-version:4.0 import PackageDescription let package = Package( name: "YourPackageName", dependencies: [ .package(url: "https://github.com/ctreffs/fireblade-ecs.git", from: "0.3.0") ], targets: [ .target( name: "YourTargetName", dependencies: ["FirebladeECS"]) ] ) ``` ## Code Example A core element in the Fireblade-ECS is the [Nexus](https://en.wiktionary.org/wiki/nexus#Noun). It acts as a centralized way to store, access and manage entities and their components. ```swift let nexus = Nexus() ``` ## Versioning We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](tags). ## Authors * [Christian Treffs](https://github.com/ctreffs) - *Initial work* * [Manuel Weidmann](https://github.com/vyo) See also the list of [contributors](https://github.com/ctreffs/fireblade-ecs/project/contributors) who participated in this project. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details ## Acknowledgments * Hat tip to anyone who's code was used * Inspiration * etc