Unity • Solo Project • Unpublished • PC
A modern tribute to the golden age of arcade games, this clone of Asteroids was developed in Unity using C++. The project focused on reimagining the core mechanics of the original while exploring performance-efficient systems and procedural shape generation.
Design Goals & Objectives
Recreate the fast-paced arcade gameplay loop of Asteroids
Implement a procedural system for asteroid shape and size variation
Use object pooling to manage dynamic instantiation and destruction
Reinforce understanding of classic scoring and challenge escalation systems
Demonstration of ship movement, asteroid behaviour, and object pooling efficiency.
Development Breakdown
Core Mechanics
Player controls a single ship that rotates and fires projectiles to destroy asteroids.
Asteroids split into smaller fragments when hit, increasing difficulty.
Collision triggers scoring and destruction logic.
Procedural Generation
Rather than using static prefabs, asteroids are generated dynamically with randomised vertices and scaling.
This system ensures each asteroid looks and behaves slightly differently, adding unpredictability to gameplay.
Object Pooling
To maintain performance, object pooling is used for bullets, asteroid fragments, and visual effects.
This allows for fluid on-screen action without performance drops from frequent spawning/destruction.
What I Learned
Reinforced knowledge of object pooling systems for performance optimisation
Gained experience procedurally generating geometry in Unity
Developed a deeper appreciation for timeless arcade design and player flow
Enhanced C++ integration within a Unity workflow
Potential Improvements
While this project functions as a gameplay prototype, there are several areas that could be expanded to bring it closer to a releasable state:
Main Menu & UI: Add start screen, score display, pause functionality, and end game flow.
Difficulty Scaling: Introduce increasing wave patterns, more asteroid types, or timed challenges.
Visual & Audio Polish: Add background music, particle effects, and screen shake for more satisfying feedback.
Power-ups & Variants: Include mechanics like temporary shields, double-shot, or enemy ships for added complexity.
Platform Porting: Optimise input for mobile or controller-based play.