0% found this document useful (0 votes)
4 views2 pages

Final Project Proposal

The final project proposal outlines the development of a Flappy Bird game on the DE1-SoC FPGA platform, featuring a bird controlled by the player to navigate through pipes. It includes a dynamic difficulty system that adjusts the game's challenge based on the player's score, and various modules for bird control, pipe generation, collision detection, score tracking, LED display, and game-over logic. The proposal also notes the need for a reset switch and clock frequency, which are yet to be determined.

Uploaded by

John
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views2 pages

Final Project Proposal

The final project proposal outlines the development of a Flappy Bird game on the DE1-SoC FPGA platform, featuring a bird controlled by the player to navigate through pipes. It includes a dynamic difficulty system that adjusts the game's challenge based on the player's score, and various modules for bird control, pipe generation, collision detection, score tracking, LED display, and game-over logic. The proposal also notes the need for a reset switch and clock frequency, which are yet to be determined.

Uploaded by

John
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Final project proposal

Wenyang (Jonathan) Zhang

Description
General ideas
Flappy Bird on the DE1-SoC is a fun and challenging adaptation of the classic game, designed for
an FPGA platform. In this version, the player controls a bird represented by LEDR[4] at the start
of the game. The bird is situated in the middle of the vertical playfield, marked by the LEDs from
LEDR[0] (topmost) to LEDR[9] (bottommost). Using KEY[0], the player can make the bird flap
upward to avoid pipes that move horizontally across the playfield. Gravity pulls the bird
downward when the button is not pressed. (Note that the direction of gravity here is from the LED
with smaller number to larger number)

Dynamic Difficulty System


The game features a dynamic difficulty system that adjusts the challenge as the player’s score
increases. Initially, the bird encounters pipes with large gaps, making it easier to navigate. The
pipes are generated at a slower rate, allowing new players to get accustomed to the controls. As
the score rises, the gaps in the pipes gradually narrow, and the time interval between pipes
decreases. These changes are tied to the score, ensuring a gradual increase in difficulty that
matches the player’s progress.

Scores
The player’s score is prominently displayed on the HEX displays (e.g., HEX0-HEX3) in real
time. Each time the bird successfully passes through a pipe, the score increases by some number,
rewarding the player for their success. In the event of a collision with a pipe or the boundaries, the
LEDs flash briefly, signaling a game over. The bird’s LED freezes in place, and the score remains
displayed until the game is restarted by toggling SW[0].

Top-Level Block Diagram


I have six modules to create the complete game:
Bird control module (BCM).
Tracks the bird's position. Responds to player input to make the bird flap upward. Simulates
gravity to pull the bird downward over time. Give out a signal game_over_bird when the bird hits
the top or bottom boundary. The bird should not move if final_game_over is 1. Inputs: clk, reset,
flap (from KEY[0]), final_game_over; Outputs: bird_pos, game_over_bird.
Pipe generation module (PGM)
Generates pipes with random gaps. Moves pipes horizontally across the LED row. Dynamically
adjusts pipe speed and gap size based on the player’s score. Stop pipe movement and generation
when final_game_over is 1. Inputs: clk, reset, bird_pos (from BCM), score, final_game_over;
Outputs: pipe_patterns, pip_gaps.
Collision detection module (CDM)
Detects if the bird collides with a pipe. Generates a game_over signal when a collision occurs.
Stops collision detection when final_game_over is 1. Inputs: bird_pos (from BCM), pipe_patterns
(from PGM), pip_gaps (from PGM), final_game_over; Outputs: collision
Score tracking module (STM)
Tracks the player’s score. Increases the score when the bird successfully passes a pipe. Display the
score on the HEX. Stop changing the score when final_game_over is 1. Inputs: clk, reset,
pipe_patterns, pip_gaps, bird_pos, final_game_over; Outputs: score
LED display module (LDM)
Manages the LED display, showing the bird’s position and pipe patterns simultaneously.
Combines bird_pos and pipe_patterns to generate the final LED row output. Stops changing LEDs
when final_game_over is 1. Inputs: clk, reset, bird_pos (from BCM), pipe_patterns (from PGM)
final_game_over; Outputs: LED_out[9:0].
Gameover logic
Combines the game_over_bird and collision into final_game_over signal and send
final_game_over to all other modules. Inputs: game_over_bird (from BCM), collision (from
CDM); Outputs: final_game_over.

Note that the SW[0] should be connected to all resets, and an appropriate clock should be connect
to all clks, but I do not know what frequency I am going to use.

You might also like