{"repo":"MineInAbyss/geary","free":true,"listed":false,"github":"https://github.com/MineInAbyss/geary","clone":"git clone https://github.com/MineInAbyss/geary.git","description":"ECS framework made for Kotlin","language":"Kotlin","stars":64,"topics":["ecs","minecraft","entity-component-system","gamedev"],"license":"MIT","category":"game-templates","readme_excerpt":"Geary Overview Geary is an Entity Component System (ECS) written in Kotlin. The engine design is inspired by flecs. Core parts of the engine like system iteration and entity creation are quite optimized, the main exception being our observer system. We use Geary internally for our Minecraft plugins, see geary-papermc for more info. Features - Archetype based engine optimized for many entities with similar components - Type safe systems, queries, and event listeners - Null safe component access - Flecs-style entity relationships alice.addRelation (bob) - Observers for listening to component changes and custom events - Prefabs that reuse components across entities - Persistent components and loading prefabs from files thanks to kotlinx.serialization - Addon system to use only what you need Usage Read our Quickstart guide to see Geary in action, here's an excerpt, a simple velocity system: Gradle Version catalog entries Roadmap As the project matures, our primary goal is to make it useful to more people. Here are a handful of features we hope to achieve: - Multiplatform support, with js, jvm, and native targets - Publish numbers for benchmarks and cover more parts of the engine with them - Relation queries, ex. entities with a parent that has X component.","default_branch":null,"files":null,"tree":[],"storefront":"/r/MineInAbyss","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/MineInAbyss/geary/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."}