SDD Nomi
SDD Nomi
for
Flappy Bird
Version 1.0
By
Numan Sohail
S22BDOCS1M01015
Session Spring/ 2022 – 2026
Supervisor
Dr. Syeda Maria Gillani
Supervised by
Dr. Syeda Maria Gillani
Signature
Introduction
This project is a 2D mobile game named Flappy Bird, developed using Unity and C#. It repli-
cates the classic gameplay of navigating a bird through a series of pipes using simple tap con-
trols. The game includes dynamic obstacle generation, real-time scoring, and interactive UI el-
ements like pause, game over, and leaderboard screens..
Design methodology and software process model
Design Methodology:
Object-Oriented Programming (OOP) is utilized to ensure modular, scalable
design via encapsulated game entities such as Bird, Obstacle,
GameManager, and UIManager.
Process Model:
The Incremental Process Model is used to iteratively build game
components like physics, UI, and scoring. This supports better testing, user
feedback incorporation, and feature expansion.
System overview
The game runs on Android and simulates a bird flying through moving pipes. Each successful
pass increments the score. Collision results in game over. The app contains:
Core Features:
• Tap-to-fly mechanic
• Obstacle generation
• Real-time scoring
• Pause & Game Over screens
• Sound effects and animations
Architectural design
Process flow/Representation
Activity Diagrams:
• Start Game
• Tap Input
• Collision Detection
• Scoring
• View Leaderboard (future)
.
Design models
Class Diagram:
• Classes: Bird, Obstacle, GameManager, ScoreManager, UIManager
Sequence Diagram:
• Player taps → Bird Flaps → Collides with Obstacle → Game Over
State Transition Diagram:
• Game States: Idle → Playing → Paused → Game Over
Data design
While the game is mainly event-driven, future versions may use Firebase. Basic local data stor-
age includes:
Typ
Variable Description
e
score int Player's current score
highScore int Highest score stored locally
isDead bool True if bird has collided
birdY float Bird's vertical position
Data Dictionary
Entity Type Description
userId String Unique ID for user
email String User email
Unique brand
brandId String
identifier
productId String Product record ID
orderId String Order record ID
Order status (e.g.
status String
pending, shipped)
Marks featured
featured Boolean
brands/products
Timestam Date of entry
createdAt
p creation
Algorithm & Implementation
Tap Input Handling:
if (Input.GetMouseButtonDown(0)) {
birdRigidbody.velocity = Vector2.up * flapForce;
}
Collision Detection:
void OnCollisionEnter2D(Collision2D collision) {
GameOver();
}
Scoring Mechanism:
void OnTriggerEnter2D(Collider2D col) {
if (col.CompareTag("ScoreZone")) {
score++;
UpdateUI();
}
}
Screen images
Appendix I
UML Resources:
• Agile Modeling UML Artifacts
• Unity Documentation for Game Design Patterns
DFD & ER References:
• Software Engineering by Roger Pressman