Star Blaster is a 2D arcade-style space shooter developed with a strong emphasis on performance optimization, modular architecture, and scalable system design. Rather than building a simple shooter, the goal of this project was to apply clean coding principles and structured game architecture similar to professional development standards.
One of the main challenges I faced was performance instability caused by frequent bullet instantiation and destruction during intense combat. This led to minor frame drops due to memory allocation and garbage collection. To solve this, I implemented an object pooling system that preloads bullets and reuses inactive instances instead of destroying them, resulting in stable frame rates even during heavy action sequences.
Another challenge was creating a flexible enemy spawning system. Initially, the spawning logic was rigid and difficult to expand. I redesigned it into a modular wave-based system where enemy count, spawn timing, and difficulty scaling are data-driven, making it easy to introduce new enemy types and progression mechanics.
Additionally, I separated gameplay, UI, and state management using an event-driven approach to prevent tight coupling between systems. A centralized game state manager ensures consistent transitions between menu, gameplay, and game-over states.
0
22
🐦 Flappy Bird Clone – Unity 2D Arcade Game
A polished 2D arcade-style game developed in Unity using C#. The project focuses on clean architecture, modular system design, and proper state management rather than simple replication.
🎮 Core Features
Physics-based player movement using Rigidbody2D
Procedural pipe spawning system
Collision-based death detection
Game state management (Main Menu, Ready, Playing, Game Over)
Pause & Resume system
Parallax background effect
Two-level environment variations
🧮 Scoring System
Hybrid score display system:
Sprite-based live score (arcade style)
TextMeshPro-based Game Over scoreboard
Persistent high score using PlayerPrefs
Medal system:
Bronze (lower than best)
Silver (equal to best)
Gold (new high score)
First-play detection logic (no medal on initial run)
🏗 Architecture Design
Separated responsibilities:
UIManager for state control
ScoreManager for scoring & persistence
Clean method separation and organized headers
Inspector-driven configuration
Safe array access and runtime error prevention
💡 Focus
This project emphasizes:
Clean coding practices
Modular game systems
Scalable structure
Professional UI flow
0
25
Brick Breaker Reborn
For a nostalgic arcade-focused client looking to recreate the classic brick-breaker experience with a modern feel, I developed an Arkanoid-style game in Unity using C#. The client’s goal was to build a simple but addictive 2D game that could appeal to casual players while maintaining smooth controls, satisfying feedback, and replayable gameplay.
I handled the core gameplay development, including paddle movement, ball physics, brick collision and destruction, score tracking, win/lose conditions, and basic UI systems such as start, game over, and restart functionality. The client also wanted the game to feel responsive and polished rather than just technically functional.
One of the main challenges was achieving the right ball behavior and gameplay balance. If the ball speed or bounce angles felt inconsistent, the game became frustrating instead of fun. To solve this, I carefully tuned the physics, paddle interaction, and collision responses to create a smoother and more predictable gameplay loop while still keeping it challenging. I also structured the code in a clean and modular way, making it easier to expand with power-ups, level progression, or visual effects in future updates.
This project reflects my ability to turn a simple game concept into a polished and enjoyable player experience through clean Unity development, gameplay tuning.