| ECE291 | Computer Engineering II | Lockwood, Spring 1999 |
Madmartigan
Introduction
Madmartigan is a 3D action game in the tradition of Wolfenstein 3D. Set in medieval times, players will fight against the computer generated creatures. Graphics are rendered in 320x200x256 resolution, with MIDI background sound (using Midpak) and wav sound effects. Game is keyboard controlled.
Problem Description and Implementation
Since the sound will be a combination of MIDI and wav sounds, there are essentially two parts to the implementation of the sound functions. The procedures which play the background (MIDI) music will use Midpak. To play the sound effects, SoundLib291 procedures will be used.
The game graphics will be implemented in double-buffered 320x200 resolution by 256 colors. As the player moves through the world, the function RayCaster will use the player's position and viewing angle to determine the screen image. To do this, we will send out 320 "rays" (one for each column on the screen) and use floating point math and the WorldValue function to calculate which object they hit and how far away the object is. Based on this, RayCaster will then call DrawStrip which writes the scaled strip of the texture into the screen buffer. After all the strips have been drawn, ShowScreenBuffer will quickly transfer the image from the buffer to the screen and then erase the buffer. All the source pictures will be stored in PCX files and will be decoded and loaded into the foreground and background segments at the beginning of the game. LoadPCX will also set the SVGA graphics palette.
Networking will be implemeneted in much the same way as it was in MP5. Each player will send out hello and update messages periodically to let other players know where they are, what direction they are moving, what direction they are facing, and vital statistics. this will all be implemented through calls to NetBios.
The standard lib291, Sound Lib, Net libfunctions were used. As well as the player shots from Doom II were used.
Our team members, along with areas of specialization, are:
Sasanka Chalivendra: gameplay/AI/networking/webpage
Fred Koopmans: graphics
Dan Nguyen: menus
Michael Fricke: sound/webpage