Overview
This project acted as an exercise to test my experience and knowledge of Unity by building a game from scratch. I chose to remake Flappy Bird — an old popular iPhone arcade game. The premise is simple: flap the bird’s wings to get through as many pipes as possible.
Approach & Architecture
The game is built in Unity 2022.3.34f1 with C# scripting.
Gameplay mechanics:
- Spacebar makes the bird flap its wings, counteracting gravity to move upward
- Pipe gaps are randomised in height, spawning infinitely to create the gameplay loop
- Points are awarded for every set of pipes the bird passes through
- The escape key pauses and resumes gameplay
- On death, a scorecard overlay shows the player’s score, best score, and leaderboard, with options to restart or quit
The game is infinite with no win condition — the goal is simply to beat your own high score.
Development & Learning
Setup: I started by collecting all sprites and assets I wanted to use throughout the project. This included creating some sprites from scratch in Aseprite, such as the clouds.
Bird: Created the bird sprite and worked on its movement by adjusting gravity and velocity values in the bird’s C# script.
Pipes: Set up the pipe system in three parts:
- Colliders that trigger the death sequence on contact
- A gap trigger that detects the bird passing through and increments the score
- An infinite spawner with randomised height to create the continuous gameplay loop
Background: Created the cloud system using a Unity particle effect with a custom particle sprite, allowing clouds to appear at random speeds and sizes.
Score: Set up the gameplay scripts to record and save the player’s score, including local best-score persistence across sessions.
Screens: Created the Home, Game Over, and Pause screens using Unity’s canvas UI system.
Miscellaneous / To Review
Content below does not fit the five-section template — kept here for manual review.
What to add next:
- Variable difficulty modes, or difficulty that increases over time as the player’s score rises
- Multiple zones dependent on score — zones could change backgrounds and physics settings (e.g. different gravity)
- User login system with an online leaderboard
- Multiple bird skins / sprites that the user can choose before playing