Skip to content

rmolotov/ElectricalContactResistance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ElectricalContactResistance

Top-down action-shooter game with electricity puzzles on every level

ECR

GitHub release (latest by date) GitHub Release Date GitHub contributors GitHub last commit

Author's linked-in profile

Core pillars:

Use defeated enemies for assembly or fix electric circuit and tune it's parameters to solve the puzzle. There are lot of electric parts and modules which help you to build you own hero kill switch and beat them up. Piles of enemies and many tangled circuits are waiting you!

Screenshots ECR ECR ECR ECR

Tech details:

Project structure contains three sections:

  • Infrastructure (providers and services),
  • Meta (main menu, settings and shop windows),
  • (Core) Gameplay (player controls, enemy logic, spawners and etc.).

and 3rd-party libraries and plugins such as:

  • Zenject
  • RSG Promises
  • UniRx for reactive logic in gameplay and and UI-interactions
  • DOTween used for procedural animations in UI
  • TextMeshPro
  • Debug tools and editor extensions: SRDebugger and Odin Inspector
  • UI soft mask by mob-sakai
  • Nice Vibrations by More Mountains - WIP:
    • for UI haptic FX - via my custom and proper HapticSource component based on standard component by MoreMountains,
    • for gameplay-events FX - via HapticService - TODO.

Project includes level editor based on custom EditorWindow and Odin Inspector. This window available via Tools/ECR/Board Editor menu. Requires StageEditor scene opening.

Screenshot ECR

Some services in projects have local and remote implementations. So, I'm using UGS for:

  • Static Data (Unity Remote Config) - DONE
  • Save/Load players' prefs and progress (Unity Cloud Save) - TODO
  • Purchases and inventory management (Economy) - TODO

There are couple of last Unity features used in project:

  • Addressables for content management and reduce app-size - DONE
  • Input System implements actions-based handling off user's input and interactions - DONE
  • Cinemachine and Timeline for camera control and cut-scenes - TODO
  • Shader graph and Render features in URP for toon-stylized rendering and post FX - DONE

Project have a micro services architecture which implements a SRP and DI-framework provides LCP and DIP effects. I'm using factories for gameplay-characters and UI-elements, so all dependencies inject in ctor-s or special Construct methods via Installers or factories only (according to Zenject's best practices). I've created some assembly definitions for libs' folders and project's submodules for sake of faster recompilation of sources.

There is Game State Machine which controls main phases of game: Boot -> Load Config -> Meta -> Gameplay. It's provide more control and flexibility in game life-cycle. GSM enter in BootstrapState on Initialize method (GSM derives from IInitializable) which indicate entry point for entire project.

Assets (sprites, models w/ animations and VFX (Particle Systems)) in the project designed and/or implemented by myself.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages