Sparky's Quest


Introduction

Goals: Our goals are to code up a cool arcade game featuring 640x480 graphics, animations, sound effects, midi, and great game play all within 640k memory!

Game objective: Sparky the electron is on a quest to meet the proton of his dreams. You must guide him through the perilous circuit to his dream proton. Not just any proton will do - only one proton is perfect for Sparky. You will deside his fate...will Sparky be doomed for all eternity from dangerous capacitors and resistors or will he live happily ever after? It's postively (or negatively) exciting! The game engine is centered around the concept of least path determination. In a real circuit, electrons probabilistically choose the path of least resistance; sparky is not gifted with this ability, so the user must navigate sparky through a gameboard, choosing the paths of least resistance. Specifically, a random circuit containing at most 49 elements is generated, and Sparky is displayed as an animated overlay to the gameboard. The user inputs the direction that Sparky should move using the arrow keys and the space bar. The nodes in the drawn circuit are connected with resistors and capacitors with impedances equal to 1, 2, or 3 Ohms (at Sparky's wavelength). In order to determine how much resistance Sparky is allowed to pass through before reaching the opposite end of the circuit, a least path algorithm is implemented. To increase the enjoyment of game play, events continually change the game board. For example, other electrons and protons run around the game board. Although Sparky is seeking a proton match, the protons on the game board will cause his demise. The interaction of these AI protons adds an interesting element to the game, since game actions take place not only at the nodes but at variou spaces in between these nodes. Also, movement of AI protons and electrons, as well as Sparky, through the board, causes "circuit heating", so that elements eventually catch on fire. Sparky and the AI characters cannot move through the elements set on fire, making Sparky's quest for a path of low resistance more diffiult. Further, Sparky must complete a board within an allotted time. His remaining charge (resistance allotted to him) and time are updated in bars at the bottom of the screen. Graphics for the game are implemented in 640x480 mode, and many procedures to redraw parts of the screen are implemented to reduce the time for the execution of graphics routines.

Implementation

Program Flow Data Structures
Procedures External Routines

Team Members and their Contributions

Sandip Roy - random game board generation, shortest path algorithm, program design

Rob Barton - midi, artwork, program design

Ben Wild - sound effects, aritifical intelligence

Ken Leung - graphics, animation