Mobile Survivors is a 2D bullet hell/survivor-like prototype developed in Unity. The primary technical objective was to establish a scalable, data-driven architecture that facilitates rapid content expansion, complex systems management, and modular integration suitable for a continuous development environment.
The core progression system was built on Scriptable Objects to ensure maximum content scalability and easy balance iteration.
Weapon and Upgrade Definitions: Used Scriptable Objects as immutable data containers for defining all weapon properties, upgrade tiers, and corresponding stats. This architectural choice decouples data from logic, allowing designers (or yourself) to create new weapons and abilities without touching core gameplay code.
Randomized Progression: The randomized upgrade selection that occurs upon level-up is entirely driven by these data assets, powering the game's high replayability and making future content additions straightforward.
To maintain a clean and decoupled codebase, the project utilized the native Unity Event system for cross-component communication.
Decoupled Systems: Implemented events to handle critical gameplay occurrences (e.g., Player Level Up, Enemy Death, Player Damage Taken).
Enhanced Modularity: This pattern ensures that systems like the UI, Audio Manager, and Particle Emitter can react to game state changes without holding rigid, direct references to the Player or GameManager scripts, greatly enhancing modularity and reducing the risk of cascading bugs.
To manage the complex flow of a session-based game, multiple Finite State Machines (FSMs) were implemented to provide clear, predictable, and maintainable logic across the experience.
Game Flow Control: Dedicated FSMs managed the high-level states of the application (e.g., Main Menu, Playing, Paused, Game Over).
Wave and Spawner Logic: Separate state machines governed the dynamic Wave System progression and the Enemy Spawner logic, allowing for precise control over difficulty scaling and ensuring enemies only spawn during the active "Playing" state.
Beyond the core systems, the project includes essential gameplay features:
Custom Pickup System: Developed logic for consumable health, exp, speed, and gold pickups that spawn dynamically and grant various effects to the player upon collision.
Clean Code Standards: All systems were developed using object-oriented principles, ensuring high code readability and maintainability for future collaboration.
This project demonstrates strong proficiency in architectural design, data management, and the creation of modular, scalable gameplay systems in the Unity environment.