Project Story
Inspiration
FlaPGA started with a simple but ambitious goal: to build a complete game entirely in hardware. For the Ross Video Hackathon, we wanted to push ourselves outside of our comfort zone and work with technologies we had little prior experience with, especially SystemVerilog, FPGA design, and real-time video generation.
Coming mostly from a software background, we were used to having graphics, timing, and input handling done for us. Ross Video's focus on real-time and low-latency systems encouraged us to think closer to the hardware and understand how visuals are actually produced at the signal level. We chose Flappy Bird because it looks simple on the surface, but becomes surprisingly challenging when built without a CPU or GPU.
What We Built
FlaPGA is a fully hardware-implemented Flappy Bird engine running on an FPGA. It generates video output in real time, draws graphics pixel by pixel, and supports both manual gameplay and an autonomous mode where the bird detects obstacles and flies through the gaps on its own.
The project includes real-time video generation, randomized pipes, collision detection, a game-over state, score tracking, button-controlled gameplay, and a fully autonomous self-playing mode. All of this runs synchronously on the FPGA without using any external processor.
How We Built It
The entire project was written in SystemVerilog. We built a custom video pipeline that tracks pixel coordinates using synchronization signals and generates colors procedurally for each pixel. Game elements such as the bird, pipes, background, and text are drawn using combinational logic based on the current pixel position.
Pipe gaps are randomized using a linear feedback shift register, and collision detection is performed in real time by checking overlaps between the bird sprite and the pipes. In autonomous mode, the system continuously analyzes the position of upcoming obstacles and adjusts the bird's movement to aim for the center of the gap.
We developed the project step by step, testing everything directly on the FPGA and debugging using waveforms and visual feedback on the display.
Challenges and What We Learned
One of the biggest challenges was learning how strict hardware design can be. Small timing mistakes or incorrect state updates often caused visual glitches or unexpected behavior. Debugging required careful thinking, patience, and a strong understanding of how signals change over time.
This hackathon was our first serious exposure to SystemVerilog and FPGA-based graphics. The learning curve was steep, but the process was extremely rewarding. By the end of the weekend, we had a much deeper understanding of real-time systems and how software-like behavior can emerge purely from hardware logic.
What's Next
With more time, we would like to add sound effects, smoother animations, and more advanced visual effects. FlaPGA could also be extended into a small educational framework to help others learn about hardware graphics and real-time digital design.
Built With
- verilog
- xilinx
Log in or sign up for Devpost to join the conversation.