{"repo":"rlipsc/polymorph","free":true,"listed":false,"github":"https://github.com/rlipsc/polymorph","clone":"git clone https://github.com/rlipsc/polymorph.git","description":"A fast and frugal entity-component-system library with a focus on code generation and compile time optimisation.","language":"Nim","stars":153,"topics":["ecs","entity-component-system","nim","game-development","library","metaprogramming","gamedev","data-oriented-design"],"license":"Apache-2.0","category":"game-templates","readme_excerpt":"- Project overview - Goals - Entity-component-system (ECS) - An example ECS - Benefits of ECS - ECS contrasted with Object Oriented Design - Polymorph: a generative approach to a queryless, system oriented ECS. - Compile time focus - Features - Polymers companion library - Why Nim? - Overview of building an ECS - After makeEcs / makeEcsCommit - Defining components - registerComponents generated types - Components and instance types - Instances in components - Instance volatility - Component utilities - Matching run time ComponentTypeId - Defining systems - System anatomy - System scope blocks - Work item blocks - Accessing items - Access templates and aliasing - System component negation - Systems without components - Committing systems - ecsImport - System execution order - Running systems at time intervals - Adding custom fields to systems - Grouping systems - Execution control - Removing components during all or stream blocks - System utilities - clear - remove / removeComponents - systemsUsed - caseSystem - Working with entities - Creating entities - Adding components to existing entities - Fetching and checking for components - Removing components - Deleting entities - Checking entities satisfy specific systems - Constructing entities at run time - Constructing multiple entities - Cloning entities - Switching components with component lists - Updating entities with component lists - Events - Inline events - System events - Mutating entities within events - Change events ","default_branch":null,"files":null,"tree":[],"storefront":"/r/rlipsc","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/rlipsc/polymorph/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."}