Open main menu

CDOT Wiki β

10th Floor

Revision as of 01:23, 16 November 2010 by Rmwang (talk | contribs) (Interactive Game Environment)

10th Floor Maze

Project Marking Percentage

Group work:      50%        (25 <= xx <= 50)
Individual work: 50% +      (50 <= xx <= 75) 
-------------------------
Total           100%

Repository

Repo path

svn://zenit.senecac.on.ca/dps901_103rep10

Trunk Status

committed by avathsalan / being committed by [NAME]

Team Members

  1. Ryan Wang, Responsibility: Stage creation, textures, collision detection agains stage objects, loading map files.
  2. Aravinthan Vathsalan, Responsibility: Traps, collision detection against traps, update character stats in respond to traps
  3. Geoffrey Mok, Responsibility: HUD
  4. Steve Borges, Responsibility TBA
  5. Corey Angus, Responsibility TBA

Email All

Proposal

The proposed game for the GAM666 project is an action role-playing game (action RPG). The game is played in the first person perspective in which the goal of the game is to move the main character through an old, abandoned, and decaying dungeon while fighting/avoiding the monsters and traps in order to reach the end of the dungeon.

The objects in this game are: the main character (human controlled; move and battle through the dungeon), enemies (in the form of monsters), and traps (either hidden or visible traps, such as a suspicious panel on the floor, floor spikes, collisions, etc.). The environment is open such that the player has the choice of avoiding an enemy, choosing to battle an enemy, and avoiding traps.

The main character and the enemies have the following traits of: health (the life of the character/enemy and the amount of damage that can be inflicted before being defeated), speed (the pace at which movement through the dungeon occurs), strength (the ability to do a set amount of damage to an opponent during battle), and defence (ability to endure attacks from an opponent with reduced impact on health while blocking).

Moreover, the battle system is such that the main character as well as the enemies can be in only one of two states at a given moment during a battle: block or attack. Blocking, although does not prevent the damage from an attack, allows either the main character or the enemy, to have a less impact on health. However, in order to dissuade the main character from continuously blocking, there is a “block meter” that is used to show for how long the character can block before it is temporarily disabled (note that this interval for blocking can be increased with added levels and improvement to the defence trait by gaining experience; read more below).

Once an enemy is defeated in battle, the main character gains Experience Points (EXP) which can be added to the character’s current level and allow for the character to proceed to the next level. With each new level gained, the character can improve one of the traits of: health, speed, strength, and defence (choice is up to the user).

Movement of the main character is performed using the WASD keyboard keys for moving the character forward or backward, and in association with the mouse to view the character’s surroundings (i.e. look around).

As the character progresses through the dungeon, the enemies and traps get increasingly stronger and complicated.

Iteration 1

Assignment 2 Requirements

1.draw a map of what you'd like the 3D world of your game to look like, with 3-dimensional coordinates of all of the major points in the world. Your map should include all of the "actors" (moving objects) in the world. You should attempt to make the coordinates as realistic as possible, being aware that you may need to scale them up or down as you implement your design in code.

2.design and code one or more original objects of your own chosen shape for use in your game. You may derive the class(es) for your object(s) from the Object class of the framework.

3.implement a draft of your design by coding the framework's design component. If your design requires low-level coding or modifications to any other part of the framework, you should include those changes in your submission.

Revised Game Proposal

 

Revised Proposal

Game Genre

Phase 1: First person maze puzzle

Phase 2: Action role-playing game

How to play - Stage clear conditions

  • Sprint mode: Move the character with arrow keys through the maze and try to find the way out.
  • Time attack mode: Find the exit within given time.

Game Items

  • Haste item: Increases character's movement speed by 150% for 10 seconds. (Key 1)
  • Dexterity item: Allows player to pass through the obstacles more quickly for 10 seconds. (Key 2)
  • Revert ceiling collapse: Makes the collapsed ceiling tiles rise back up into initial position for 20 seconds. (Key 3)
  • Stop ceiling collapse: Stops ceiling collapse for 20 seconds. (Key 4)

Current Status

  • HUD
  • Map file loader
  • Main character keyboard control, mouse control & game pad control
  • Sound effects
  • Traps, items, enemy characters (next phase)
  • Collision detection against map components, enemy characters, traps, obstacles & items

Map of the World of the Game

Dynamic Map Configuration

Overview

The game is designed to load map information from map files and dynamically generate game environment and components accordingly. Map configuration is flexible in size and configuration and can be easily modified. As shown in the picture below, tile type is described in numbers and details are as follows:

  • Tile type 0, 4, 8... (4n): No wall.
  • Tile type 1, 5, 9... (4n+1): In the x-axis direction.
  • Tile type 2, 6, 10...(4n+2): In the z-axis direction.
  • Tile type 3, 7, 11...(4n+3): In the both directions

Syntax for the map file is as below, where 't' is tile type code and 'i' is item type code:

  t,i|t,i|...|t,i|t,i;
  t,i|t,i|...|t,i|t,i;
          ...
  t,i|t,i|...|t,i|t,i;
  t,i|t,i|...|t,i|t,i

 

Sample map file

Below is a sample map configuration file that generates 5 X 9 stage. The image above is drawn based on this map configuration.

  1,0|1,0|3,0|9,9|2,0;
  1,0|3,0|3,0|2,3|2,0;
  2,0|2,2|3,0|2,2|2,0;
  3,0|2,0|1,2|2,0|2,0;
  0,0|2,0|2,0|1,0|3,0;
  1,0|2,0|2,4|3,0|0,0;
  1,0|1,0|2,0|3,5|1,0;
  2,0|1,0|2,0|1,0|2,0;
  0,1|3,0|3,0|3,0|3,0

Interactive Game Environment

  In the game, surrounding stage objects react to the player's motion. For example, ceiling tiles collapse as the player moves around.

Project Status & Documentation

Modifications to the framework

Progress / Updates

Aravinthan Vathsalan

Responsibility: Traps, collision detection against traps, update character stats in respond to traps

Corey Angus

Responsibility: TBA

Geoffrey Mok

Responsibility: HUD

Ryan Wang

Responsibility: Stage/levels design

     
    Fig.R1. Ceiling collapsing effect
     
    Fig.R2. Dialog Box UI Design
  • October 11: Prepared texture images for the stage components. Created walls, ceilings and floor tiles.
  • October 31: Added the code that dynamically creates stage components according to the maze matrix.
  • November 2: Added codes (on the Camera.cpp) for camera movements and keyboard/mouse controls. Implemented simple collision detection against the walls. Added breathing/fainting/walking effects.
  • November 10: Main character object is created. Character movement is handled in the Design.cpp instead of Camera.cpp. Collision against walls is also handled in the Design.cpp.
  • November 11: Map is initialized based on the configuration in the map file. Added obstacles. Ceiling tiles collapse as the player travels around. Added sound effects. (Fig.R1)
  • November 13: Game items are added - Haste item, dexterity item, stop/revert collapse items. Try keys 1-4.
  • November 14: Added background image in the dialog box. (Fig.R2)

Steve Borges

Responsibility: TBA