- Unity version
2021.3.5
- Zenject as DI.
- All configuration are extracted into config files
- For UI animation I used DOTween
- Enemies and player are spawned in runtime
- Data stored in json files
Application.persistentDataPath
checkAbstractSerializableController.cs
You can configure Bullets, Ships, Level in Resources/GameStateScriptableInstaller
- Main Scene -
Scenes/MainScene
- The Entry point of code is
ProjectInstaller
. - Also in
Scripts/Game/Controllers
you will find main controllers of the game.
- To use joystick input select
IsKeyboard
off
You will find movement system under Scripts/Game/Movement
. AbstractMovementSystem
and AbstractCombatSystem
are using State pattern. AI for enemies could be implemented in much more better way.
- Resource loading could be handled in much better way like
Addressable
, or at least must be added some abstract load layer. (Didnt have much time) - Passing
ShipDto
to Movement system, maybe could be done better