Snowball: An Arduino Project
Way back in the day, on my Sharp PC-1500 Pocket Computer, I had a "game" called Snowball. As I recall, it was actually authored by a friend of mine originally, and I made trivial modifications to it in transcribing it from his machine to mine. I don't think I managed to improve on the concept much, but for some reason that tiny little game has stayed fixed in my consciousness all these years.
The premise was simple: two players. Each is asked, in turn, if they wish to throw a snowball at the opposing player. The first to answer "Yes" (remember, this is a turn based game, not realtime!) is treated to an animation of a snowball (an asterisk) flying across the single-line LCD screen and splatting into the other player. Of course, all that really happened was an asterisk moved across the screen. But it could go left to right or right to left! And either player could win or lose!
It was a triumph of design and engineering, no doubt.
Nineteen odd years later, I've found myself the happy owner of an Arduino Uno and lots of hookup wire. Combined with some choice goodies from SparkFun, I've managed to reincarnate Snowball in a new form as an arcade machine.
The prototype lies splattered across my floor - a maze of wires, alligator clips, random resistors, and a few useful bits. Notably, there are two classic arcade-style push-buttons (black, of course) which operate each player's snowball-throwing appendages. All this feeds into the Arduino and then off to a simple 16x2 serial-mode LCD which acts as the game's display.
It took some finagling and some advice from people who actually understand electronics, but I'm proud to say that the machine is in a somewhat playable state. Each player gets one line: P1 is the top, P2 is the bottom. You may have one snowball in flight (per player) at any time. Aside from that - just hammer on the Throw button and go nuts!
Of course, minor details like scoring, victory conditions, and actual gameplay have yet to be implemented, but that's mostly just playing around with the software on the Arduino. The hard part - getting all the circuitry wired up to handle the button inputs - is completely prototyped.
My next goal is to build some actual gameplay (I could use ideas on what kind of game could possibly be played on a 16x2 character display with only one button per player!) and then custom-fabricate a PCB for the whole thing and slap it inside a cheap plastic housing. If all goes well, I should have a nifty little hand-held Snowball arcade machine by the end of the year.
In reality, it'll probably take a lot longer than that, knowing how my attention span works and how likely I am to actually do anything serious with this now that the fun bit is finished, but hey, it's good to have goals, right?