Barkeley Ball
Barkeley Ball was my final project for the UC
Berkeley class "CS150: Digital Design Techniques" in
Fall, 2009. The game is a version of Pong where the
player controls the position of their paddle by
moving a like-colored card around in front a webcam.
The pixel information is then processed on a Xilinx
Virtex V FPGA. The bluescreen behind the players is
replaced with a background that really puts the
players into the game.
I wrote the game logic, the NES-style sprite
compression, display, and animation algorithms,
designed the mini
operating system "PONG-OS", and drew all of the
artwork. My class
partner Tony Demarco came up with the game
concept, wrote the camera
color tracking algorithms, wrote all the music,
and designed the
graphics pipeline. We both designed dozens of
finite state machines,
wrote tons of Visio diagrams, and spent too many
long nights in the lab
after everyone else was in their warm, comfy beds.
We even hid a
microwave in the lab behind a row of disfunctional
computer monitors so
we could code long into the night/morning without
hunger pains. We wound up
crafting the best project in the class and were
awarded over $3,200.00
worth of Xilinx hardware in prizes for our
efforts! Watch the video
for more info, but please excuse our atrocious
physical appearance and obvious signs of poor
hygene.
Xilinx Virtex V
Bit File: Barkeley
Ball
FPGA, bluescreen studio, and dachshund not
included.
Presentation
Video: OGG
WMV
Tony and I literally spent all Thanksgiving
weekend in the lab
finishing the game prior to shooting this video,
and we look awful
because of it. Please forgive our physical
appearance.
Final Project
Report - Revised January, 2011: PDF
It's non-technical, tons of pics and diagrams, and
a haiku too! (Like this line) It's a fun read, I
promise.
Sprite Sheet:
BMP
Feel free to use them for whatever nefarious
purpose you like, but credit the artist. (Me!)
Python Image
Conversion Script: image_con.zip
This can be used for compressing bitmap images, or
you can use it as a
starting point for writing your own image
compression scripts.

Top Left: Title Screen. Top Right: The real
Barkeley with his ball.
Bottom Left: Players standing in front of the
bluescreen. Bottom Right: The bluescreen replaced
with in-game graphics.
|