{"repo":"AustinEast/cog","free":true,"listed":false,"github":"https://github.com/AustinEast/cog","clone":"git clone https://github.com/AustinEast/cog.git","description":"Macro powered ECS Framework written in Haxe","language":"Haxe","stars":31,"topics":["ecs","haxe","haxelib","gamedev"],"license":null,"category":"game-templates","readme_excerpt":"A Macro powered B.Y.O.E. (Bring Your Own Entity!) ECS Framework written in Haxe. ECS concepts & implementation inspired by exp-ecs. Why? As a big fan of the Macro approach and concepts in exp-ecs, I originally wrote cog as a piece of the ghost framework to provide that same kind of workflow. But as that project evolved and changed it's focus to 2D only, I found I wanted to be able to plug it's dead simple ECS implementation into any kind of project, with no extra dependencies required. So I ripped the ECS out of the ghost framework, and cog was born! Getting Started Cog requires Haxe 4 to run. Install the library from haxelib: Alternatively the dev version of the library can be installed from github: Then include the library in your project's .hxml : For OpenFL users, add this into your Project.xml : For Kha users (who don't use haxelib), clone cog to the Libraries folder in your project root, and then add the following to your khafile.js : Usage Concepts Component A Component is an object that holds data that define an entity. Generally a component only holds variables, with little-to-no logic. Cog Components are created by implementing the IComponent into any Class, like so: Components A Components object is a container that holds Component instances. This class is meant to be integrated into your own project's base object class (ie Entity, GameObject, Sprite, etc). System A System tracks collections of Components (as Nodes ) for the purpose of performing logic on them. Eng","default_branch":null,"files":null,"tree":[],"storefront":"/r/AustinEast","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/AustinEast/cog/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."}