Link’s Lost Quest

Programmers:

 

Game Overview:

With new 3D games pushing the envelope of your computer’s powers, and complex algorithms chewing up processing time, too many games try to substitute flashy graphics for their lack of gameplay. A good plot and solid, user-friendly gameplay help to capture a user’s interests and create memorable games. In the games of days past, few rival The Legend of Zelda in plot, gameplay and overall enjoyment. The graphical capabilities of Zelda are now more advanced than ever. Just imagine the same, thought-capturing plot combined with the graphic capabilities of today. In Link’s Lost Quest, we have combined these elements into one explosive action –adventure RPG.

In Link’s Lost Quest, we will take the game format from Nintendo’s Legend of Zelda, and expand it using the knowledge we have gained from ECE 291. The game will incorporate 320*200 graphics using 256 colors, utilizing parallax scrolling, sprite animation, palette effects, and PCX imaging. Midi sound and digital effects will add to the experience of gameplay, while Enemy AI, and Multiplayer options will create an intense action environment.

 

Screen Shots:

Here are a couple screen shots from our finalized game:

         
 
 

Implementation:

The game will be entered using a batch file that installs Midpak before entering the game. The user will be greeted by a brief introduction, and will become acquainted with the story line through a brief cut-scene. From then the user is taken to the main game menu, where he or she will be able to choose from a variety of options including single-player, networked multi-player, settings, and instructions. The menu will also include load and save features to continue previous games. If the player chooses to enter a game he/she will be transported into Link’s world to fight the bad-guys and triumph for good. From here there are three basic ways that a user can exit the game. The player can win the game, get killed by enemies, or leave voluntarily. Winning the game or dying pitifully displays the appropriate sequence. Leaving voluntarily will cause the user to be prompted by the computer with yet another menu. From this menu the user can select to save, load, or exit the game. As the game exits the user will be treated to the credits as our names scroll off of the screen.

Variables, Segments, and the Such…

 

Segments:

VIDSEG: Video segment, 0A00h used to output video data to screen

MIDISEG: Holds MIDI file data for use by Midpak

SBSEG: Screen buffer holding video data to go to the screen

TEXTSEG: Holds the textures for the current map

SCRSEG: Scratch segment used in several applications

 

Variables:

PaletteArr: Holds the next palette to be transferred

ScPaleArr: Used for palettes that need to be altered

CmpPalAr: Holds palette array for comparisons

 

SavArr: Saved video data used in sprite animation

 

RedVal: Red Value of selected palette entry

BlueVal: Blue Value of selected palette entry

GreenVal: Green Value of selected palette entry

 

MidiSize: Size of current MIDI file

RandVal: Original seed for random value generator

 

Exit_Flag: Set if ESC is pressed

UpButton: Set if up arrow is pressed

DownButton: Set if down arrow is pressed

LeftButton: Set if left arrow is pressed

RightButton: Set if right arrow is pressed

AttackButton: Set if CTRL button is pressed

MenuButton: Set if F1 is pressed

 

Player_X: X coordinate of player

Player_Y: Y coordinate of player

Facing: Direction the character is facing

Health: Amount of player health

Rupees: Money player has in possetion

Item1: Item in inventory 1

Item2: Item in inventory 2

Armor_Power: Current strength of Armor

Weapon_Power: Current Strength of weapon

MapData: Offset of map array data

MapSize: Current Size of Map

Map#Size: Size of map at #

Map#Start: starting coordinates for Link in map #

 

Next_X: Prospective X and Y positions of player after next move

Next_Y:

 

Monster_X: X and Y coordinates of selected monster

Monster_Y:

 

Lookup Tables:

TextNumLook: Lookup table for map texture offset

MenuLookup: Offsets for Menu PCX file

 

Procedures:

Main Loop: Programmer - Chris Mabee

Video Procedures: Main Programmer: Eric Harter

 

WaitVrt – Written by Chris Mabee

 

GetPalette – Written by Chris Mabee

 

SetPalette – Written by Chris Mabee

 

Fade(Black/Red/White)

 

FadeToPCX

 

LoadPCX

 

ShowScreenBuffer

 

DrawSprite

 

 GetUnderSprit

 

UpdateScreen – Programmer Kim Odum

 

IntroSeq – Programmer Kim Odum

 

EndingSeg – Programmer Kim Odum

 

Game Engine Functions: Main Programmer – Chris Mabee

AnimLayer

 

SetUpGameData: Programmer - Kim Odum

 

LoadGame

 

SaveGame

 

CalculateMovement

 

ProcessMovement

 

InstKey/NewKey/DeKey

 

WorldValue

 

 

Monster Functions: Main Programmer Jim Moawad

 

Converge

 

Idle

 

Diverge

 

Attack

 

ProbabilityFunction

 

 

SoundFunctions – Main Programmer Chris Mabee

 

LoadXMI

 

RegisterMidi

 

StartMidi

 

StopMidi

 

PlayDigi

 

Network Procedures – Main Programmer – Jim Moawad

GetOtherPlayerData

 

SynchonizeGame

 

SetMode