{"repo":"ddmills/geotic","free":true,"listed":false,"github":"https://github.com/ddmills/geotic","clone":"git clone https://github.com/ddmills/geotic.git","description":"Entity Component System library for javascript","language":"JavaScript","stars":198,"topics":["entity","component","system","pattern","game","es6","npm","javascript","ecs","prefab"],"license":"MIT","category":"game-templates","readme_excerpt":"geotic adjective physically concerning land or its inhabitants. Geotic is an ECS library focused on performance , features , and non-intrusive design . View benchmarks. - entity a unique id and a collection of components - component a data container - query a way to gather collections of entities that match some criteria, for use in systems - world a container for entities and queries - prefab a template of components to define entities as JSON - event a message to an entity and it's components This library is heavily inspired by ECS in Caves of Qud . Watch these talks to get inspired! - Thomas Biskup - There be dragons: Entity Component Systems for Roguelikes - Brian Bucklew - AI in Qud and Sproggiwood - Brian Bucklew - Data-Driven Engines of Qud and Sproggiwood Python user? Check out the Python port of this library, ecstremity! usage and examples - Sleepy Crawler a full fledged roguelike that makes heavy use of geotic by @ddmills - snail6 a bloody roguelike by @luetkemj - Gobs O' Goblins by @luetkemj - Javascript Roguelike Tutorial by @luetkemj - basic example using pixijs Below is a contrived example which shows the basics of geotic: Engine The Engine class is used to register all components and prefabs, and create new Worlds. Engine properties and methods: - registerComponent(clazz) : register a Component so it can be used by entities - regsterPrefab(data) : register a Prefab to create pre-defined entities - destroyWorld(world) : destroy a world instance World The World c","default_branch":null,"files":null,"tree":[],"storefront":"/r/ddmills","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ddmills/geotic/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."}