The purpose of this package is to provide a set of services to ease the development of a basic game architecture.
- Unity 2019.4 or higher. Feel free to try older version.
To install this project as a Git dependency using the Unity Package Manager,
add the following line to your project's manifest.json
:
"com.gamelovers.services": "https://github.com/CoderGamester/com.gamelovers.services.git"
You will need to have Git installed and available in your system's PATH.
It 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
The services provided by this package are:
- CommandService - to create an seamless abstraction layer of execution between the game logic and any other part of the code by invoking commands
- CoroutineService - to control all coroutines in a non destroyable object with the possibility to have an end callback
- DataService - to help loading and saving persistent game Data on the running platform
- MainInstaller - to provide a simple dependency injection binding installer framework
- MessageBrokerService - to help decoupled modules/systems to communicate with each other while maintaining the inversion of control principle
- NetworkService - to provide the possibility to process any network code or to relay backend logic code to a game server running online
- PoolService - to control all object pools by type and allows to create independent self management object pools
- TickService - to provide a single control point on Unity update cycle
- TimeService - to provide a precise control on the game's time (Unix, Unity or DateTime)
<root>
├── package.json
├── README.md
├── CHANGELOG.md
├── Runtime
│ ├── GameLovers.Services.asmdef
│ ├── CommandService.cs
│ ├── CoroutineService.cs
│ ├── DataService.cs
│ ├── MainInstaller.cs
│ ├── MessageBrokerService.cs
│ ├── NetworkService.cs
│ ├── PoolService.cs
│ ├── TickService.cs
│ └── TimeService.cs
└── Tests
├── Editor
│ ├── GameLovers.Services.Editor.Tests.asmdef
│ ├── CommandServiceTest.cs
│ ├── DataServiceTest.cs
│ ├── IntegrationTest.cs
│ ├── MainInstallerTest.cs
│ ├── MessageBrokerServiceTest.cs
│ ├── NetworkServiceTest.cs
│ ├── PoolServiceTest.cs
│ ├── MessageBrokerServiceTest.cs
│ ├── TickServiceTest.cs
│ └── TimeServiceTest.cs
└── Runtime
├── GameLovers.Services.Tests.asmdef
└── CoroutineServiceTest.cs
Creates a seamless abstraction layer of execution between the game logic and any other part of the code by invoking commands
// Example TODO
Controls all coroutines in a non destroyable object with the possibility to have an end callback
// Example TODO
Helps loading and saving persistent game Data on the running platform
// Example TODO
Provides a simple dependency injection binding installer framework
// Example TODO
Helps decoupled modules/systems to communicate with each other while maintaining the inversion of control principle
// Example TODO
Provides the possibility to process any network code or to relay backend logic code to a game server running online
// Example TODO
Controls all object pools by type and allows to create independent self management object pools
// Example TODO
Provides a single control point on Unity update cycle
// Example TODO
Provides a precise control on the game's time (Unix, Unity or DateTime)
// Example TODO