Ball_Collecter
Ball.io – 3D Endless Scaling Runner
Tools & Technologies
Engine: Unity 3D
Language: C#
Key Packages: Cinemachine, TextMeshPro, ObjectPool (Unity.Pool)
Target Platforms: iOS & Android
Short Summary
Developed a highly optimized, 3D hyper-casual mobile game featuring an infinite forward-scrolling environment and dynamic size-based mechanics. Engineered a scalable, data-driven architecture using Unity and C#, implementing custom Object Pooling, Event-Driven UI, and a modular Design Pattern-based power-up system to ensure maximum mobile performance and future extensibility.

Gameplay Overview
In Ball.io, players control a rolling sphere navigating an infinite procedural course. The core loop revolves around a dynamic scaling mechanic: players consume smaller colored balls to continuously grow in size, while dodging procedurally generated giant obstacles that scale relative to the player's current mass. Players collect coins, break high scores, and utilize powerful perks like the "Magnet" to dominate the board.


Technical Achievements & Architecture
Data-Driven Design (ScriptableObjects): Completely decoupled game logic from data. Ball types, colors, score values, spawn chances, and power-ups are all defined via ScriptableObjects, allowing for rapid balancing and the addition of new content without touching the codebase.

Modular Perk System (Strategy & Factory Patterns): Designed a highly extensible power-up architecture. Base classes define core perk behaviors, while specific perks (like the Magnet) are instantiated dynamically. This allows new abilities (e.g., Speed Boost, Shield) to be added purely as new data assets.
High-Performance Procedural Spawning: Built an infinite forward-scrolling spawn manager utilizing a robust Object Pooling system. The game maintains a strict 60 FPS on mobile by recycling environmental assets and particle effects, ensuring zero
Instantiate()orDestroy()calls during active gameplay.Zero-GC Physics & Optimization: Implemented highly optimized physics calculations, utilizing
Physics.OverlapSphereNonAllocfor power-ups to completely eliminate Garbage Collection (GC) spikes during real-time physics overlap checks.Event-Driven UI & State Machine: Engineered a decoupled
GameManagerutilizing C# Actions (System.Action). The UI layer listens to state changes (Menu, Playing, GameOver) and live score updates, preventing tightly coupled code and messy dependencies.
Persistent JSON Save System: Developed a custom serialization manager utilizing
Application.persistentDataPathandJsonUtilityto securely store player high scores, total currency, and lifetime statistics locally on the device.Dynamic Camera Framing: Utilized Unity Cinemachine with custom damping and interpolation settings to provide a buttery-smooth, isometric tracking camera that naturally adjusts as the player’s scale expands.

