Skip to content

This is a simulation game with the raw UI. Primary purpose of this project was to implement an expandable code architecture.

Notifications You must be signed in to change notification settings

mohsansaleem/Idle-Miner

Repository files navigation

Idle Miner

This is a simulation game with the raw UI. Primary purpose of this project was to implement an expandable code architecture. All the data is persisted so we can continue from the point where we left and we can also tweak MetaData and add new levels in there.

Video

IMAGE ALT TEXT

Highlights:
  • Unity 2019.4.0f1
  • MVC
  • Dependency Injection
  • Reactive Programing
  • Promises
  • State Machine
  • Generic Popup System
  • Spine2D (Pending)
Plugins Description
Unity3D 3D Game Engine.
Zenject Dependency Injection.
UniRx Reactive Programming.
C# Promises Asynchronous coding.
Spine 2D Animation.

Installation

  • Pull the code.
  • Use Unity 2019.4.0f1 to open it.
  • Check /MainMenu/Potato-Games/Always Start from Startup Scene.
  • Press Play.

Hierarchy Overview:

  • All the Context code is in \Assets\Scripts\IdleMiner\Contexts. Each scene has the respective folders including some extra scenes like Popup and Hud etc.
  • GamePlay scene has all the magic.
  • 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 Scenes folder and respective resources are in \Assets\Resources\Scenes
  • Main Game code is in \Assets\Scripts\IdleMiner.
  • (Models, RemoteData and Data)s are in \Assets\Scripts\IdleMiner\Models.
  • All the Commands are in \Assets\Scripts\IdleMiner\Commands.

Information:

Delete the /Assets/StreamingAssets/GameState.json if you want to run the default gamestate again. Meta is not balanced. So you will have to manage.

Development

Want to contribute? Great! Create PR if you want to change something.

Todos

  • Add spine animations.
  • Add Managers and Upgrade functionality.
  • Balance and refactor the Meta.
  • Make it reactive to the member wise. Currently it is refreshing the whole Model on update.
  • Write Tests.

Free Software, Hell Yeah!