{"id":26865868,"url":"https://github.com/codergamester/services","last_synced_at":"2025-08-18T05:11:09.185Z","repository":{"id":57113028,"uuid":"232085295","full_name":"CoderGamester/Services","owner":"CoderGamester","description":"This package contains a set of services to ease the development of a basic game architecture","archived":false,"fork":false,"pushed_at":"2025-04-07T18:53:52.000Z","size":163,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-04T06:15:02.941Z","etag":null,"topics":["architecture-components","csharp","game-development","gamedev","objectpool","services","unity","unity-package","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/CoderGamester.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2020-01-06T11:17:49.000Z","updated_at":"2025-01-05T21:48:12.000Z","dependencies_parsed_at":"2024-10-23T03:44:09.774Z","dependency_job_id":null,"html_url":"https://github.com/CoderGamester/Services","commit_stats":null,"previous_names":["codergamester/services","codergamester/com.gamelovers.services"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/CoderGamester/Services","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderGamester%2FServices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderGamester%2FServices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderGamester%2FServices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderGamester%2FServices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CoderGamester","download_url":"https://codeload.github.com/CoderGamester/Services/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderGamester%2FServices/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270946068,"owners_count":24672890,"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","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["architecture-components","csharp","game-development","gamedev","objectpool","services","unity","unity-package","unity3d"],"created_at":"2025-03-31T04:52:50.808Z","updated_at":"2025-08-18T05:11:09.120Z","avatar_url":"https://github.com/CoderGamester.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Services Package\r\n\r\nThe purpose of this package is to provide a set of services to ease the development of a basic game architecture.\r\n\r\n## System Requirements\r\n\r\n- [Unity](http://unity3d.com/) 2019.4 or higher. Feel free to try older version.\r\n\r\n## Installation\r\n\r\nTo install this project as a [Git dependency](https://docs.unity3d.com/Manual/upm-git.html) using the Unity Package Manager,\r\nadd the following line to your project's `manifest.json`:\r\n\r\n```\r\n\"com.gamelovers.services\": \"https://github.com/CoderGamester/com.gamelovers.services.git\"\r\n```\r\n\r\nYou will need to have Git installed and available in your system's PATH.\r\n\r\nIt is also possible to just add a package via the *Package Manager* window inside Unity via git url: `https://github.com/CoderGamester/com.gamelovers.services.git`\r\n\r\n## Service List\r\n\r\nThe services provided by this package are:\r\n\r\n- [CommandService](#CommandService) - to create an seamless abstraction layer of execution between the game logic and any other part of the code by invoking commands\r\n- [CoroutineService](#CoroutineService) - to control all coroutines in a non destroyable object with the possibility to have an end callback\r\n- [DataService](#DataService) - to help loading and saving persistent game Data on the running platform\r\n- [MainInstaller](#MainInstaller) - to provide a simple dependency injection binding installer framework\r\n- [MessageBrokerService](#MessageBrokerService) - to help decoupled modules/systems to communicate with each other while maintaining the inversion of control principle\r\n- [NetworkService](#NetworkService) - to provide the possibility to process any network code or to relay backend logic code to a game server running online\r\n- [PoolService](#PoolService) - to control all object pools by type and allows to create independent self management object pools\r\n- [TickService](#TickService) - to provide a single control point on Unity update cycle\r\n- [TimeService](#TimeService) - to provide a precise control on the game's time (Unix, Unity or DateTime)\r\n\r\n## Package Structure\r\n\r\n```none\r\n\u003croot\u003e\r\n  ├── package.json\r\n  ├── README.md\r\n  ├── CHANGELOG.md\r\n  ├── Runtime\r\n  │   ├── GameLovers.Services.asmdef\r\n  │   ├── CommandService.cs\r\n  │   ├── CoroutineService.cs\r\n  │   ├── DataService.cs\r\n  │   ├── MainInstaller.cs\r\n  │   ├── MessageBrokerService.cs\r\n  │   ├── NetworkService.cs\r\n  │   ├── PoolService.cs\r\n  │   ├── TickService.cs\r\n  │   └── TimeService.cs\r\n  └── Tests\r\n      ├── Editor\r\n      │   ├── GameLovers.Services.Editor.Tests.asmdef\r\n      │   ├── CommandServiceTest.cs\r\n      │   ├── DataServiceTest.cs\r\n      │   ├── IntegrationTest.cs\r\n      │   ├── MainInstallerTest.cs\r\n      │   ├── MessageBrokerServiceTest.cs\r\n      │   ├── NetworkServiceTest.cs\r\n      │   ├── PoolServiceTest.cs\r\n      │   ├── MessageBrokerServiceTest.cs\r\n      │   ├── TickServiceTest.cs\r\n      │   └── TimeServiceTest.cs\r\n      └── Runtime\r\n           ├── GameLovers.Services.Tests.asmdef\r\n           └── CoroutineServiceTest.cs\r\n```\r\n\r\n\u003ca name=\"CommandService\"\u003e\u003c/a\u003e\r\n### Command Service\r\n\r\nCreates a seamless abstraction layer of execution between the game logic and any other part of the code by invoking commands\r\n\r\n```csharp\r\n// Example TODO\r\n```\r\n\r\n\u003ca name=\"CoroutineService\"\u003e\u003c/a\u003e\r\n### Coroutine Service\r\n\r\nControls all coroutines in a non destroyable object with the possibility to have an end callback\r\n\r\n```csharp\r\n// Example TODO\r\n```\r\n\r\n\u003ca name=\"DataService\"\u003e\u003c/a\u003e\r\n### Data Service\r\n\r\nHelps loading and saving persistent game Data on the running platform\r\n\r\n```csharp\r\n// Example TODO\r\n```\r\n\r\n\u003ca name=\"MainInstaller\"\u003e\u003c/a\u003e\r\n### Main Installer\r\n\r\nProvides a simple dependency injection binding installer framework\r\n\r\n```csharp\r\n// Example TODO\r\n```\r\n\r\n\u003ca name=\"MessageBrokerService\"\u003e\u003c/a\u003e\r\n### Message Broker Service\r\n\r\nHelps decoupled modules/systems to communicate with each other while maintaining the inversion of control principle\r\n\r\n```csharp\r\n// Example TODO\r\n```\r\n\r\n\u003ca name=\"NetworkService\"\u003e\u003c/a\u003e\r\n### Network Service\r\n\r\nProvides the possibility to process any network code or to relay backend logic code to a game server running online\r\n\r\n```csharp\r\n// Example TODO\r\n```\r\n\r\n\u003ca name=\"PoolService\"\u003e\u003c/a\u003e\r\n### Pool Service\r\n\r\nControls all object pools by type and allows to create independent self management object pools\r\n\r\n```csharp\r\n// Example TODO\r\n```\r\n\r\n\u003ca name=\"TickService\"\u003e\u003c/a\u003e\r\n### Tick Service\r\n\r\nProvides a single control point on Unity update cycle\r\n\r\n```csharp\r\n// Example TODO\r\n```\r\n\r\n\u003ca name=\"TimeService\"\u003e\u003c/a\u003e\r\n### Time Service\r\n\r\nProvides a precise control on the game's time (Unix, Unity or DateTime)\r\n\r\n```csharp\r\n// Example TODO\r\n```\r\n\r\n## License\r\n[MIT](LICENSE.md)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodergamester%2Fservices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodergamester%2Fservices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodergamester%2Fservices/lists"}