{"id":21815912,"url":"https://github.com/ourcade/ecs-dependency-injection","last_synced_at":"2026-03-15T13:00:50.395Z","repository":{"id":86061810,"uuid":"486386661","full_name":"ourcade/ecs-dependency-injection","owner":"ourcade","description":"Showcasing the decoupling powers of ECS and DI in game dev","archived":false,"fork":false,"pushed_at":"2022-05-06T16:56:18.000Z","size":281,"stargazers_count":58,"open_issues_count":1,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T15:07:07.585Z","etag":null,"topics":["dependency-injection","entity-component-system","experiment","game-development","gamedev","typescript"],"latest_commit_sha":null,"homepage":"https://youtu.be/9NIqJZb6CI0","language":"TypeScript","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/ourcade.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2022-04-27T23:56:01.000Z","updated_at":"2025-01-23T12:33:20.000Z","dependencies_parsed_at":"2023-03-05T15:46:15.137Z","dependency_job_id":null,"html_url":"https://github.com/ourcade/ecs-dependency-injection","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ourcade%2Fecs-dependency-injection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ourcade%2Fecs-dependency-injection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ourcade%2Fecs-dependency-injection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ourcade%2Fecs-dependency-injection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ourcade","download_url":"https://codeload.github.com/ourcade/ecs-dependency-injection/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248804790,"owners_count":21164132,"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":["dependency-injection","entity-component-system","experiment","game-development","gamedev","typescript"],"created_at":"2024-11-27T15:29:04.100Z","updated_at":"2026-03-15T13:00:45.355Z","avatar_url":"https://github.com/ourcade.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Entity Component System and Dependency Injection Gone Wild\n\n\u003e Showcasing the decoupling powers of ECS and DI in game dev\n\nThis is an example of using Dependency Injection and an Entity Component System to allow shared game logic that can then be run with multiple frameworks just by adding some glue code.\n\nThe game is a basic and barebones version of Arkanoid, Breakout, or Brick Breaker.\n\nThe 5 frameworks that this is running on is:\n\n- Phaser 3\n- Pixi\n- Kontra\n- React\n- Three\n\n## Getting Started\n\nThis project uses Vite.js and has 5 entry points. The main one (index.html) is for Phaser 3 then each additional framework has its own HTML page.\n\nClone the repository and run:\n\n```\nnpm run dev\n```\n\nHead over to [http://localhost:3000](http://localhost:3000) to see the Phaser 3 game running. Visit the other HTML pages to see the others.\n\nYou'll notice that making any change in the the game logic located in the `src/game` folder will be reflected in all versions unless a version has overrode a container binding.\n\n## License\n\n[MIT License](https://github.com/ourcade/ecs-dependency-injection/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fourcade%2Fecs-dependency-injection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fourcade%2Fecs-dependency-injection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fourcade%2Fecs-dependency-injection/lists"}