This is a simple farm game with the raw UI. Primary purpose of this project was to implement an expandable architecture.
We can move around in the Map and gather animals and get some cash after moving them to Farm.
Video
- Unity 2019.4.0f1
- MVP
- Dependency Injection
- Reactive Programing
- Promises
- State Machine
- Generic Popup System
- Generic Pooling System
- Pull the code.
- Use Unity 2019.4.0f1 to open it.
- Check /MainMenu/Game/Always Start from Startup Scene.
- Press Play.
- All the Context code is in \Assets\Scripts\AnimalKingdon\Contexts. Each scene has the respective folders including some extra scenes like Popup and MainHub etc.
- All the views code is in \Assets\Scripts\AnimalKingdon\Views. Each scene has the respective folders.
- GamePlay scene has all the magic. Especially the Gathering state.
- Bootstrap is the starting scene.
- *Data files\classes are for Metadata objects.
- *RemoteData files/classes are for GameState objects and I am linking the *Data on loading of GameState.
- *RemoteDataModel are the Models that contain RemoteData and other reactive properties and collections.
- \Assets\Scripts\Core is submodule that contains just the abstract of some generics that can be shared across the project so I have added it to minimise my work.
- All the Scenes are in _\Assets_Scenes folder and respective resources are in \Assets\Resources\Scenes.
- Main Game code is in \Assets\Scripts\AnimalKingdon.
- (Models, RemoteData and Data)s are in \Assets\Scripts\AnimalKingdon\Models.
- All the Commands are in \Assets\Scripts\AnimalKingdon\Commands.
Delete the /Assets/StreamingAssets/GameState.json & MetaData.json if you want to change the default setting after updating Scriptable Objects. Meta is not balanced. So you will have to manage.
Plugins | Description |
---|---|
Unity3D | 3D Game Engine. |
Zenject | Dependency Injection. |
UniRx | Reactive Programming. |
C# Promises | Asynchronous coding. |
Happy Day!