Final Project: Zelda 291



Team Members



Introduction

For the final project, we will create a two-dimensional tile-based game based on the classic 8-bit NES game, The Legend of Zelda. Our game, however, will be a vast improvement over its predecessor, featuring better graphics, better sound, and more aggressive and cunning artificial intelligence. The object of the game is to guide your character, Link, to the end of the dungeon, where he must defeat the foul beast Lockwamentus.

Problem Description

Like any game, Zelda 291 is a project of much greater magnitude than any machine problem we have done so far. The most difficult part of the project will undoubtedly be getting each team member's modules to fit into a whole. See individual module writeups below for more information on the challenging aspects of each element of the game.

Implementation

Zelda 291 is designed with a very modular structure in mind. The following diagram illustrates the basic game design:



IGL is where the main game loop takes place and most of the decisions internal to the game's logic are made. When IGL decides it is time for the sprites to be drawn or needs to detect collisions between objects, it does so through function calls provided by G & A. When it needs a sound played, it does that through S & M's functions, and when it's time for the monsters to do something, it calls functions made accessible by AI. Input's keyboard interrupts notify IGL of keypresses, and a new timer handler polls for joystick and gamepad input, notifying IGL in a like manner. By communicating in this manner, the various modules will hopefully be able to combine to form a fully-functional game.


Data Structures

What follows is a list of the data structures which the various modules will have to access; see individual module writeups for non-public data structures specific to those modules.



Module Writeups

Here you will find links to writeups similar to this one for each of the five primary game elements which will describe the details of the implementation and challenges of the appropriate element.