{"repo":"player-03/echoes","free":true,"listed":false,"github":"https://github.com/player-03/echoes","clone":"git clone https://github.com/player-03/echoes.git","description":"A macro-based Entity Component System framework, focusing on ease of use.","language":"Haxe","stars":46,"topics":["ecs","entity-component-system","game-development","haxe","ecs-framework"],"license":"MIT","category":"game-templates","readme_excerpt":"Echoes A macro-based Entity Component System framework, focusing on ease of use. This framework was designed and implemented by deepcake, and is now maintained by player-03. Overview - A component is an individual piece of data. It can be a string, a class, an abstract, or any other type. - An entity is a collection of components. It fills a similar role to object instances in object-oriented programming, but functions differently. Its components aren't pre-defined the way an object's variables are; in fact, you can mix and match them at runtime. - Usage: Create an entity with entity = new echoes.Entity() . Next, call entity.add(new Component()) for each component you want to add. - A system updates and modifies entities. Whereas in object-oriented programming, objects usually have instance methods to update themselves, here that job is reserved for systems. - Systems use views to filter entities. View lists all entities with both the A component and the B component, which is convenient when a system wants to modify that specific data. - Usage: Create a class that extends echoes.System , and write functions that take components as arguments. Echoes will automatically find entities with those components, allowing you to modify the data. - To make a new system run, either call system.activate() or add it to an already-active SystemList . - See usage for details. - The Echoes class tracks all active entities and systems. - Usage: Call Echoes.init() when the app loads, or manuall","default_branch":null,"files":null,"tree":[],"storefront":"/r/player-03","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/player-03/echoes/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."}