Skip to content
DYatesFSU edited this page Apr 16, 2018 · 6 revisions

The Instructor of the Dead 2

By

  • Sean Raborg
  • Harkaranjeet Singh
  • Caleb Tenney
  • David Yates

Scope

The Instructor of the Dead 2 is the follow-up hit to the smash indy game Instructor of the Dead! In this game, Dr. Liu must do battle with the other professors in a free-for-all elimination match for ultimate glory! Players assume the role of a Fresno State CSCI professor and do battle with other players in a match to knock each other off of the arena and be the last instructor standing!

Systems

The game will utilize Unreal Engine for the base game engine. The game uses the Steam network for internet net-play connections. Unreal Engine uses Visual Studio for project compilation and code creation.

Unreal

We are using Unreal Engine version 4.17 for the engine of the game. Unreal Engine is programmed in c++ and utilizes a visual scripting language to control the flow of the game. Unreal Engine is a powerful tool, allowing creation of assets and services. Currently we are using c++ for coding the in-game systems and using the steam networking service for net-play connections.

Visual Studio

Unreal Engine uses Microsoft Visual Studio for its c++ encoding. We derive base classes defined in Unreal for our assets and use Visual Studio to code said assets. These classes and subclasses are then plugged into the Unreal Engine's gameplay flow to produce the game.

Steam

Steamworks integration is being used for net-play connections. Currently Steamworks is integrating using a client-server model, with one of the clients acting as a host for the rest to connect. One of the goals of the project is to create dedicated servers on client demand, and be able to administrate and control the server from outside the game.

Steam Sequence Diagram

Requirements

Functional requirements:

Gameplay Requirements:

Movement, jumping, abilities that allow progress through the level.

Character

ID:GPR1

Description: A character pawn the player controls. This class shall be inherited from the unreal pawn base class, and extended with additional functionality as described in this wiki.
Rationale: These pawns represent the player as they play the game. Dependencies: None.

Movement

ID:GPR2

Description: Character movement system, governs how the player moves their character. Characters will be able to move in 3d space. Characters will also retain the ability to move when airborne. This control should be based on the set of inputs defined in the game. Rationale: Players must be able to move their characters to do play the game. Dependencies: GPR1.

Jumping

ID:GPR3

Description: Makes the character jump. The character will become voluntarily airborne and be able to control their character somewhat while in the air. The player will also be able to jump a second time to further control their character and attempt to make it back onto the platform if knocked off. The properties for the second jump shall be a jump height limit of .5 units. Rationale: Jumping will be a vital mechanic for dodging and positioning. Dependencies: GPR1.

Weapon

ID:GPR4

Description: This subclass is inherited from actor unreal base class. The weapon class will then be further subclassed into rocket launcher and gun subclasses. These subclasses will fire rockets or bullets respectively. Rationale: Shooting is the primary method players use to battle each other and win the game. Dependencies: GPR1

Rocket

ID:GPR5

Description: This subclass is inherited from Weapon (GPR4) class. The rocket class is spawned when a player using the rocket launcher weapon class "fires," with a restriction of how many times a rocket can be spawned limited to once every three seconds. This class is spawned with the properties of the direction the character (GPR1) is facing, and launches in that direction. After 1 second or if the projectile collides with any other object, it explodes, causing damage and launching any characters in a outwards vector of the line that intersects the character and the center of the explosion. The vector amount, measured in velocity, is multiplied by the amount of damage the character has. The base value of the velocity is 100 units, and this gets multiplied for each percentage of damage the character has. For example, if the player has 98% damage, the velocity should be 198 units. Rationale: This is the primary way players will utilize to eliminate other players and score points. Dependencies: GPR1

Bullet

ID: GPR6

Description: This subclass is inherited from Weapon (GPR4) class. The bullet class is spawned when a player using the gun weapon class "fires." This class is spawned with the properties of the direction the character (GPR1) is facing, and fires in that direction, creating a line. The line is then checked for collision with a character. If a collision with a character happens, damage is applied to the collided character. Rationale: The gun will be quick ways to increase damage on the character, and will most likely be utilized when a player's rocket is on cooldown or is in a position where launching the rocket is not opportune. Dependencies: GPR1

UI Requirements

Main Menu

ID:UIR1

Description: Main menu will allow players to connect to games or play maps. Rationale: Player will need to be able to navigate to the desired screen of the game. Dependencies: None.

Intro Cinematic

ID:UIR2

Description: Intro cinematic sets the purpose for the game. Rationale: The intro will show the player the goal for playing the game. Dependencies: UIR1.

Stage Select

ID:UIR3

Description: Allow player to select a specific stage. Rationale: Players should be allowed to choose a specific stage to play. Also can be used for debugging purposes. Dependencies: UIR1

In-game HUD

ID:UIR5

Description: Shows current in-game information to the player such as current health, lives etc. Rationale: Gives players ways to view public gameplay information. Dependencies: None.

Level Requirements

Level functions, design, etc.

Level stage

ID:LR1

Description: The current stage that the players are competing in. Rationale: The stages are the arenas in which players compete. They represent the obstacles players are competing in in order to win. Dependencies: None.

Level start

ID:LR2

Description: Starts the player character at a certain point. Rationale: Allows the player character to spawn or respawn during gameplay. Dependencies: LR1

Level hazards

ID:LR3

Description: The boundaries of the level which eliminate the player. This is how a player loses lives. Rationale: These boundaries represent the goal of the player, to knock another player into them in order to win. Dependencies: LR1, GPR4 Future Features

NON-Functional requirements:

Frame Rates

ID:NFR1

Description: Frame rates are how fast the game updates information on the screen Rationale: Frame rates must be consistent to allow the player to stay up to date with the game and to increase responsiveness Dependencies: None

Input Responsiveness

ID:NFR2

Description: How fast inputs by the player are registered and responded to by the game Rationale: The player must feel like their inputs are being responded to in real-time to allow them to play the game. Dependencies: NFR1

Graphical Fedelity

ID:NFR3

Description: The sharpness of the visual representation of what is happening within the game. Rationale: The better the graphics, the more visually appealing the game is to the player. Dependencies: NFR1

System Requirements

  • Unreal Engine, EPIC Games Launcher.

Future Features