{"repo":"akmonengine/volt","free":true,"listed":false,"github":"https://github.com/akmonengine/volt","clone":"git clone https://github.com/akmonengine/volt.git","description":"ECS for game oriented projects in Go","language":"Go","stars":30,"topics":["ecs","game-development","go","golang"],"license":"Apache-2.0","category":"game-templates","readme_excerpt":"Volt Volt is an ECS(entity-component-system) oriented for games development with Go. It is inspired by the documentation available here: https://github.com/SanderMertens/ecs-faq There is many ways to write an ECS, and Volt is based on the Archetype paradigm. Knowledge Entity An entity is the end object in a game (e.g. a character). It is only defined by its identifier called EntityId. This identifier is generated, its type uint64 avoiding to generate twice the same id. When an entity is removed, this identifier can be used again for a new one. Looking at the benchmark, a scene can handle between 100.000 to 1.000.000 depending on your machine and the complexity of the project. But of course, the lower the better, as it will allow the project to run on slower computers. Component An entity is composed from 1 to N Component(s). It is a structure of properties, and should not contain any logic by itself (meaning no functions). The Components are manipulated by Systems. A Component is defined by its ComponentId, ranging between [0;2048]. System A system is a specialized tool that fetches entities, filtered by their Components, and transforms the datas. For example: the audio could be managed by a system, or the graphics managed by a render system. Volt does not directly implements Systems, but allows you to create Queries that you can use in your own specific tools. Query A Query is a search tool for the set of entities that possess (at least) the list of ComponentId provided. It ","default_branch":null,"files":null,"tree":[],"storefront":"/r/akmonengine","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/akmonengine/volt/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."}