{"id":13598356,"url":"https://github.com/sschmid/Entitas","last_synced_at":"2025-04-10T09:31:02.112Z","repository":{"id":15145965,"uuid":"17873382","full_name":"sschmid/Entitas","owner":"sschmid","description":"Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity","archived":false,"fork":false,"pushed_at":"2023-12-30T16:18:56.000Z","size":85683,"stargazers_count":7143,"open_issues_count":101,"forks_count":1111,"subscribers_count":404,"default_branch":"main","last_synced_at":"2024-10-29T14:50:43.898Z","etag":null,"topics":["c-sharp","code-generation","csharp","design-pattern","design-patterns","ecs","entity","entity-component-system","game","game-development","game-engine","gamedev","performance","tdd","unity","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sschmid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2014-03-18T16:36:44.000Z","updated_at":"2024-10-29T14:41:29.000Z","dependencies_parsed_at":"2024-01-06T19:12:27.580Z","dependency_job_id":"38554b92-0eee-466c-a17f-d29c5fb72ac2","html_url":"https://github.com/sschmid/Entitas","commit_stats":{"total_commits":2122,"total_committers":32,"mean_commits":66.3125,"dds":0.03251649387370403,"last_synced_commit":"562f3eaacc03f12de12b7414911a4d070a1a15a7"},"previous_names":["sschmid/entitas-csharp"],"tags_count":123,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2FEntitas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2FEntitas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2FEntitas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2FEntitas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sschmid","download_url":"https://codeload.github.com/sschmid/Entitas/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248191654,"owners_count":21062546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-sharp","code-generation","csharp","design-pattern","design-patterns","ecs","entity","entity-component-system","game","game-development","game-engine","gamedev","performance","tdd","unity","unity3d"],"created_at":"2024-08-01T17:00:51.959Z","updated_at":"2025-04-10T09:30:58.746Z","avatar_url":"https://github.com/sschmid.png","language":"C#","readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"images/Entitas-Header.png\" alt=\"Entitas\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://discord.gg/uHrVx5Z\"\u003e\u003cimg src=\"https://img.shields.io/discord/599321316377624601.svg?logo=discord\u0026logoColor=FFFFFF\u0026label=Discord\u0026labelColor=6A7EC2\u0026color=7389D8\" alt=\"Entitas on Discord\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/sschmid/Entitas/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/release/sschmid/Entitas.svg\" alt=\"Latest release\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://twitter.com/intent/follow?original_referer=https%3A%2F%2Fgithub.com%2Fsschmid%2FEntitas\u0026screen_name=entitas_csharp\u0026tw_p=followbutton\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/entitas_csharp\" alt=\"Twitter Follow Me\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://twitter.com/intent/follow?original_referer=https%3A%2F%2Fgithub.com%2Fsschmid%2FEntitas\u0026screen_name=s_schmid\u0026tw_p=followbutton\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/s_schmid\" alt=\"Twitter Follow Me\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cb\u003eEntitas is free, but powered by\u003c/b\u003e\n    \u003ca href=\"https://www.paypal.com/donate/?hosted_button_id=BTMLSDQULZ852\"\u003e\u003cb\u003eyour donations\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.paypal.com/donate/?hosted_button_id=BTMLSDQULZ852\"\u003e\u003cimg src=\"https://img.shields.io/static/v1.svg?logo=paypal\u0026label=PayPal\u0026labelColor=3F70B6\u0026\u0026message=Donate\u0026color=gray\" alt=\"Donate\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Entitas - The Entity Component System Framework for C# and Unity\n\nEntitas is the most popular open-source Entity Component System Framework (ECS)\nand is specifically made for C# and Unity. Several design decisions have been\nmade to work optimal in a garbage collected environment and to go easy on the\ngarbage collector. Entitas comes with an optional code generator which radically\nreduces the amount of code you have to write and\n[makes your code read like well written prose.](https://cleancoders.com)\n\n# Why Entitas\n\n- [#1 open-source ECS on GitHub](https://github.com/sschmid/Entitas)\n- 100% open-source under the [MIT License](LICENSE.md)\n- great and helpful community on [Discord](https://discord.gg/uHrVx5Z)\n- easy to learn and easy to use\n- works great in pure C# standalone projects without Unity\n- comes with great Unity integration called Visual Debugging\n- battle-tested at companies like [Popcore](https://popcore.com) (Rollic / Zynga / Take Two), [Gram Games](https://gram.gs), [Wooga](https://www.wooga.com), [Plarium](https://plarium.com), [Storm Chaser](https://www.stormchaser-games.com) and many more\n\n# Video Tutorials and Unity Unite Talks\n\n| Video                                                                                                                                                                                   | Title                                                     | Resources                                                                           |\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------|-------------------------------------------------------------------------------------|\n| \u003ca href=\"https://www.youtube.com/watch?v=DZpvUnj2dGI\"\u003e\u003cimg src=\"https://img.youtube.com/vi/DZpvUnj2dGI/0.jpg\" width=\"200\" alt=\"Video: Entitas - Shmup - Part 2\"\u003e\u003c/a\u003e                    | Entitas ECS Unity Tutorial - Git \u0026 Unit Tests             |                                                                                     |\n| \u003ca href=\"https://www.youtube.com/watch?v=L-18XRTarOM\"\u003e\u003cimg src=\"https://img.youtube.com/vi/L-18XRTarOM/0.jpg\" width=\"200\" alt=\"Video: Entitas - Shmup - Part 1\"\u003e\u003c/a\u003e                    | Entitas ECS Unity Tutorial - Setup \u0026 Basics               |                                                                                     |\n| \u003ca href=\"https://www.youtube.com/watch?v=Phx7IJ3XUzg\"\u003e\u003cimg src=\"https://img.youtube.com/vi/Phx7IJ3XUzg/0.jpg\" width=\"200\" alt=\"Video: Watch the Entitas Talk at Unite Europe 2016\"\u003e\u003c/a\u003e | Unite Europe 2016: ECS architecture with Unity by example | [SlideShare: Unite Europe 2016](http://www.slideshare.net/sschmid/uniteeurope-2016) |\n| \u003ca href=\"https://www.youtube.com/watch?v=Re5kGtxTW6E\"\u003e\u003cimg src=\"https://img.youtube.com/vi/Re5kGtxTW6E/0.jpg\" width=\"200\" alt=\"Video: Watch the Entitas Talk at Unite Europe 2015\"\u003e\u003c/a\u003e | Unite Europe 2015: Entity system architecture with Unity  | [SlideShare: Unite Europe 2015](http://www.slideshare.net/sschmid/uniteeurope-2015) |\n\n# First glimpse\n\nThe optional [code generator](https://github.com/sschmid/Entitas/wiki/Code-Generator)\nlets you write code that is super fast, safe and literally screams its intent.\n\n```csharp\nvar entity = context.CreateEntity();\nentity.AddPosition(Vector3.zero);\nentity.AddVelocity(Vector3.forward);\nentity.AddAsset(\"Player\");\n```\n\n```csharp\nusing static GameMatcher;\n\npublic sealed class MoveSystem : IExecuteSystem\n{\n    readonly IGroup\u003cGameEntity\u003e _group;\n\n    public MoveSystem(GameContext context)\n    {\n        _group = context.GetGroup(AllOf(Position, Velocity));\n    }\n\n    public void Execute()\n    {\n        foreach (var e in _group.GetEntities())\n            e.ReplacePosition(e.position.value + e.velocity.value);\n    }\n}\n```\n\n# Overview\n\nEntitas is fast, light and gets rid of unnecessary complexity. There are less\nthan a handful classes you have to know to rocket start your game or application:\n\n- Context\n- Entity\n- Component\n- Group\n\n```\nEntitas ECS\n\n+-----------------+\n|     Context     |\n|-----------------|\n|    e       e    |      +-----------+\n|       e      e--|----\u003e |  Entity   |\n|  e        e     |      |-----------|\n|     e  e     e  |      | Component |\n| e          e    |      |           |      +-----------+\n|    e     e      |      | Component-|----\u003e | Component |\n|  e    e    e    |      |           |      |-----------|\n|    e    e     e |      | Component |      |   Data    |\n+-----------------+      +-----------+      +-----------+\n  |\n  |\n  |     +-------------+  Groups:\n  |     |      e      |  Subsets of entities in the context\n  |     |   e     e   |  for blazing fast querying\n  +---\u003e |        +------------+\n        |     e  |    |       |\n        |  e     | e  |  e    |\n        +--------|----+    e  |\n                 |     e      |\n                 |  e     e   |\n                 +------------+\n ```\n\n[Read more...](https://github.com/sschmid/Entitas/wiki/Home)\n\n# Code Generator\n\nThe Code Generator generates classes and methods for you, so you can focus on\ngetting the job done. It radically reduces the amount of code you have to write\nand improves readability by a huge magnitude. It makes your code less error-prone\nwhile ensuring best performance.\n\n[Read more...](https://github.com/sschmid/Entitas/wiki/Code-Generator)\n\n# Unity integration\n\nThe optional Unity module \"Visual Debugging\" integrates Entitas nicely into Unity and provides powerful\neditor extensions to inspect and debug contexts, groups, entities, components and systems.\n\n[Read more...](https://github.com/sschmid/Entitas/wiki/Unity-integration)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"images/Entitas.Unity-MenuItems.png\" alt=\"Entitas.Unity MenuItems\" height=\"200\"\u003e\u003cbr /\u003e\n    \u003cimg src=\"images/Entitas.Unity.VisualDebugging-Entity.png\" alt=\"Entitas.Unity.VisualDebugging Entity\" width=\"400\"\u003e\n    \u003cimg src=\"images/Entitas.Unity.VisualDebugging-DebugSystems.png\" alt=\"Entitas.Unity.VisualDebugging Systems\" width=\"400\"\u003e\n\u003c/p\u003e\n\n# Entitas deep dive\n\n[Read the wiki](https://github.com/sschmid/Entitas/wiki) or checkout the [example projects](https://github.com/sschmid/Entitas/wiki/Example-projects) to\nsee Entitas in action. These example projects illustrate how systems, groups, collectors and entities all play together seamlessly.\n\n\n### **[» Download and setup](#download-and-setup-entitas)**\n### **[» Video Tutorials and Unity Unite Talks](#video-tutorials-and-unity-unite-talks)**\n### **[» Wiki and example projects](https://github.com/sschmid/Entitas/wiki)**\n### **[» Ask a question](https://github.com/sschmid/Entitas/issues/new)**\n\n---\n\n# Download and setup Entitas\n\n### GitHub releases (recommended)\n\n[Show releases](https://github.com/sschmid/Entitas/releases)\n\n### Unity package manager\n\n\u003e Coming soon\n\n### NuGet\n\nEntitas and all dependencies are available as [NuGet packages](https://www.nuget.org/packages?q=Entitas).\nMore detailed explanation coming soon.\n\n### Unity Asset Store (deprecated)\n\n[Entitas on the Unity Asset Store](http://u3d.as/NuJ) is deprecated and will not\nbe updated anymore. The last version available on the Asset Store is 1.12.3 and\nis free to download. Please see discussion [Entitas turns 7 - and is FREE now ](https://github.com/sschmid/Entitas/discussions/1009)\n\n# Thanks to\n\nBig shout out to [@mzaks][github-mzaks], [@cloudjubei][github-cloudjubei] and [@devboy][github-devboy]\nfor endless hours of discussion and helping making Entitas awesome!\n\n[github-mzaks]: https://github.com/mzaks \"@mzaks\"\n[github-cloudjubei]: https://github.com/cloudjubei \"@cloudjubei\"\n[github-devboy]: https://github.com/devboy \"@devboy\"\n\n# Maintainers\n\n- [@sschmid][github-sschmid] | [@s_schmid][twitter-sschmid] | [@entitas_csharp][twitter-entitas_csharp]\n\n[github-sschmid]: https://github.com/sschmid \"@sschmid\"\n[twitter-sschmid]: https://twitter.com/s_schmid \"s_schmid on Twitter\"\n[twitter-entitas_csharp]: https://twitter.com/entitas_csharp \"entitas_csharp on Twitter\"\n\n# Different language?\n\nEntitas is available in\n- [C#](https://github.com/sschmid/Entitas)\n- [C++](https://github.com/JuDelCo/Entitas-Cpp)\n- [Clojure](https://github.com/mhaemmerle/entitas-clj)\n- [Crystal](https://github.com/spoved/entitas.cr)\n- [Erlang](https://github.com/mhaemmerle/entitas_erl)\n- [F#](https://github.com/darkoverlordofdata/entitas-fsharp)\n- [Go](https://github.com/wooga/go-entitas)\n- [Haskell](https://github.com/mhaemmerle/entitas-haskell)\n- [Java](https://github.com/Rubentxu/entitas-java)\n- [Kotlin](https://github.com/darkoverlordofdata/entitas-kotlin)\n- [Objective-C](https://github.com/wooga/entitas)\n- [Python](https://github.com/Aenyhm/entitas-python)\n- [Scala](https://github.com/darkoverlordofdata/entitas-scala)\n- [Swift](https://github.com/mzaks/Entitas-Swift)\n- [TypeScript](https://github.com/darkoverlordofdata/entitas-ts)\n","funding_links":["https://www.paypal.com/donate/?hosted_button_id=BTMLSDQULZ852"],"categories":["[ECS Libraries](#contents)","ECS Libraries","C# #","C#"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsschmid%2FEntitas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsschmid%2FEntitas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsschmid%2FEntitas/lists"}