Fighting Game: Working Title

Transcription

Fighting Game: Working Title
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Fighting Game: Working Title
Detailed System Design Document
Programming Notes in Red
Created By:
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
Høgskolen i Østfold – DMPro – Game Programming – Halden 01-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
Fighting Game: Working Title
1. FRONT END
Title Screen
We will use an animation movie clip (time dependent) as the introductory cinematic. Clicking the
mouse on the game window with a MouseEvent.CLICK anywhere on the stage forces the Title Screen
forward to the Start Screen. No action by the player allows the cinematic to play through to
completion, then shows the Start Screen. The easiest method to achieve this would be to place the Start
Screen as the final frame of the starting cinematic, and have the mouse event click cause the animation
to gotoAndStop at the Start Screen.
Start Screen
This screen will be the final frame in the opening cinematic movie clip. It will have several clickable
elements utilizing MouseEvent.CLICK, primarily being Start Game and Level Selection.
•
Start Game
Selecting this option begins the player on the first level. This can be accomplished by calling
the first level's movie clip animation with a gotoAndStop and then a play along that portion of
the timeline.
•
Level Selection
Selecting this option brings the player to a new frame with a dynamic text box. Upon
completion of a level the player will be granted a code to later continue their progress. Entering
that code correctly into the text box places the player along the timeline according to the code
they entered.
•
Character Selection
Upon selecting Start Game or Level Selection the player will be prompted to choose a character
they wish to play during the gaming session. Each character will be selectable via a
MouseEvent.CLICK, then the player will proceed to the previously selected level. The order of
Level Selection and Character selection may end up being reversed if it becomes logical to do
so.
2. GAMEFLOW
1. Front End
2. Start Game
3. Levels
• Defeat your opponent before they defeat you.
◦ Pressing an attack key causes the animation to play with a key event. While the
animation is playing a hit test occurs to check whether or not the opponent was hit by
the attack. Upon a successful hit, the opponent's health bar is reduced. The first player
or computer player to reach an empty health bar loses.
• Each level must be completed to move on to the next. (Optional: best 2 out of 3 fights wins
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
the match.)
4. After successful completion of a level a code for level progression will be provided should the
player wish to continue playing at a later date. Completion of a level allows progression to the
next level.
5. Boss Fight
• Upon completion of all the levels in a world or zone, the player will face the “boss” of the
zone who also must be defeated before moving on to the next zone via the in game map.
◦ The boss should be more difficult to defeat, by tweaking its movement, the power of its
attacks, etc.
◦ The map's progression is linear, showing the player they're progressing but not allowing
for selection between fights.
6. Completion of all levels presents the player with a congratulatory message and credits.
3. GAMEPLAY
The player plays through Single Player progressive levels with increasing difficulty, each with a time
limit of approximately 2-3 minutes. The goal is to defeat the computer controlled opponent before the
player is defeated. If the timer runs out before a knockout is achieved, the character with the highest
health will be considered the winner.
•
Pressing an attack key causes the animation to play with a key event. While the animation
is playing a hit test occurs to check whether or not the opponent was hit by the attack. Upon
a successful hit, the opponent's health bar is reduced. The first player or computer player to
reach an empty health bar loses.
The player plays as one of 12 selectable characters (dependent upon time) through the game world,
attempting to prove themselves the best fighter by winning each match. The opposing characters will
consist of every character that could have been selected by the player, plus 3 additional bosses. The
goal is to defeat every character in the game, thus proving yourself to be the best fighter.
4. GAME WORLD
The Character
The Character is the conduit with which the player interacts with the game world. The player may
select which character they would like to use upon selecting a new game or Level Selection.
•
•
Each character will have a set of moves specific to that character, including a punch, kick, block
and a special move.
Time Dependent
◦ 12 characters are available for play.
◦ Whether or not the character can jump or crouch.
◦ Whether or not the character can dodge and cause the background to move (very unlikely
with time available).
◦ 12 opposing characters and 3 bosses.
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
◦ One character will be fully animated and programmed to begin with, facing his “evil twin”
basically a direct copy of the same character. Once that is in place, more characters can be
added into the mix for playability. This should allow for game scaling.
•
All characters will be developed in ¾ profile.
Figure 1:Example Character
The Fight Area
The Fight Area is a horizontal ¾ top view section of the background. The characters move back and
forth along that horizontal plane, never leaving the plane. Jumping or crouching will not move the
character off of the single horizontal fight area plane.
(This may be expanded to a more Super Smash Brothers style of play, with platforms and double
jumping. In this case jumping will have a velocity and a varying start and end points.)
Background
The background is designed to be mildly dynamic (with enough time). Ideally when the player moves
to the left the background should shift slightly to the right, giving the impression of three dimensions.
• This would be achieved by the movement button not only moving the character when the key
event is activated, but also shifting the background's x value in the opposite direction.
Despite this effect, the player will not actually be able to move past a predesignated stopping point,
they will run into an invisible wall preventing them from moving off the play screen.
• Walls will be put in place, and the player character and computer character will perform hit tests
on those walls, and be placed back into the previous position if they attempt to pass them or
move inside them.
With exceptional time management the illusion of 3D could be achieved by the player dodging the
opponent's move, and the background being created in a full 360 degree circle, shifting to either side
upon a dodge causing even more 3D illusion.
• This is only a viable scenario if we don't choose to change to a platform style gameplay. More
than likely this will be discarded.
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
Figure 2: Example Character and Fight Area / Background Concept
Opponents
The opponent is a computer controlled character, the game is single player only.
Each opponent will have the same base set of abilities as the player character, as they will be one of the
characters the player was able to choose from after selecting their game. More opponents may be
added into the game for scalability. Opponents will attempt to win the match by defeating the player
character before they themselves are defeated.
See AI section for more detailed information on opponent functionality.
5. POINT SYSTEM
As the player fights their opponent, successful attacks remove the opposing character's health. When a
character is reduced to zero health they're considered the victor of the match. If the time for the match
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
runs out and neither character has been reduced to no health, the character with the most health
remaining will be considered the victor of the match.
• Hit tests upon key event attack animations determine whether or not the hit was successful. A
successful hit removes a portion of the opponent's health bar, and does a check upon the
remaining points left in the health bar. Upon reaching zero health for either character, the
match is completed.
• The timer will be in a dynamic text box without the ability for player input. Upon reaching
zero, the two health bars will be tallied. Whichever is larger (checked by an “if” test) will be
announced as the winner of the match.
Time Dependent
• Multiple matches per opponent, best two out of three to decide the victor.
◦ Would be possible using another dynamic text box. If test of i <=2 in that box would be
checked prior to the ability to move on to the next fight, or the next frame in the
animation.
Power Ups / Combinations (Time Dependent)
A series of attacks in combination without interruption produce a special super attack dealing
significantly increased damage to the opponent.
• Not entirely sure how to implement this. Will probably be something we choose not to do
unless we're completely finished with all the other game aspects.
6. CONTROLS
The player uses the keyboard to control their character.
• Each key will be bound to a keyboard event. Attacks will be a one time press for full
animation, movement will be press to move, release to stop.
W – jump (Time Dependent)
A – moves the character left
S – crouch (Time Dependent)
D – moves the character right
F – block
J – punch
K – kick
L – special move
The game only recognizes one offensive keyboard activation at a time. Rapid sequential activations are
recognized, however simultaneous activations will not be recognized until the primary activation in the
sequence has been completed and is no longer activated on the keyboard.
• Should be able to create an “if” test to check whether another offensive button is being pressed,
if so, the moves cannot coexist.
The exception to this rule will be the addition of jumping and or crouching to the game, the player may
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
attack and crouch or jump, however they may not punch and kick at the same time, or block and attack
for example.
Players have the ability to strike their opposing targets along with missing entirely.
• A successful strike removes health from the opposing health bar, and causes the opponent to
“flash red” showing the player that a hit has been achieved.
◦ A final frame will be added to each animation with a red tint to the animation, which will be
played upon a successful hit.
Missing a target still causes the character to strike. Nothing positive or negative results from the
missed strike other than the player losing the time the attack animation takes to complete before the
next strike can be made.
Camera System
The camera is fixed in a third person view. The camera angle is not adjustable by the player, and will
remain in position despite the illusion of movement due to the background shifting.
7. USER INTERFACE AND IN-GAME MENUS
Figure 3: Example User Interface
Continue to Fight Map – available when a player wins a match against an opponent. Will bring the
player to the fight map and their next battle for supremacy. Will appear over the play area along with
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
Quit Game.
• Could either be a new frame with mouse event click elements leading to other frames, or some
sort of a pop up box appearing as it's own symbol.
• Will take the player to the correct frame of the fight map on the scene.
Retry – available when a player loses a match to an opponent. Will appear over the play area along
with Quit Game.
• Could either be a new frame with mouse event click elements leading to other frames, or some
sort of a pop up box appearing as it's own symbol.
• Will return the player to the same map they just fought with the same character.
Quit Game – available when a player completes a match, win or lose.
• Could either be a new frame with mouse event click elements leading to other frames, or some
sort of a pop up box appearing as it's own symbol.
• Will return the player to the beginning of the starting cinematic.
Time Remaining
Located in the bottom right corner. Displays the time remaining for the current level.
• Dynamic text box counting down. When the timer reaches zero (i <= 0) the match will end, and
the health bars will be tallied to determine the winner.
Current Health
Located in the top left and right corners of the screen. The Current Health updates as the player or
opponent manages to strike the opposing character.
• Hit tests will determine whether or not a character was successfully struck. Upon a successful
strike the opposing character's health bar will be reduced, replacing its value minus the amount
of the strike's worth.
Current Match (Time Dependent)
Located directly below Current Health. Displays the current match the player is participating in.
• Dynamic text box. i>=2 advances the character on to the next frame and the fight map.
8. MOVEMENT SYSTEM
The player is able to move their avatar horizontally inside the game. The movement is limited by the
play area, and while the player may be able to hop or crouch, the end position of such a move will be
on the same horizontal plane where the character began.
(This may be expanded to a more Super Smash Brothers style of play, with platforms and double
jumping. In this case jumping will have a velocity and a varying start and end points.)
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
9. DIFFICULTY LEVEL
The matches the player plays through will increase in difficulty as the character progresses. The
hardest fight of each zone will be the boss fight at the end of the zone, with each zone being
incrementally more difficult than the previous.
• Tweakable values with how hard the opponents attacks hit, and how quickly they move.
10. ARTIFICIAL INTELLIGENCE
The computer controlled opponent will attempt to defeat the player controlled character using the
moves allowed by the character it's representing. Adjustments will need to be perfected in order to
ensure that the difficulty level is appropriate and not too easy or difficult.
• The AI will follow the computer controlled character in a similar fashion to how the in class
example circle followed the mouse pointer.
• When the AI reaches a certain distance from the player character, 1-2 times the AI's own width,
it will begin to attack.
• The AI will use a random function to attack with one of its moves.
• If possible the AI will also detect if the same move has hit it several times in a row, and will
then block until a different move is used by the player character.
13. NPC SYSTEM
Result of Successful Strike
When a character is struck by an opposing character's ability it removes a pre-determined amount of
health from the struck character. These numbers will need to be tweaked for different abilities to
ensure the player feels the fight is fair, and not lopsided.
Attitude (Time Dependant)
The opponents may begin with certain statistics, and as the level continues become more angry and
agitated and thus gain in power, attacking more quickly or more strongly as the fight progresses.
• Could implement this by creating a “been hit” variable for the computer controlled characters.
For each successful strike i++ for example, and then the moves could be something like
“punchPower + i = damage”.
14. SAVING AND LOADING
Being a Flash game, there is no ability for the player to save their progress. Upon completion of a level
the player will be presented with a code, which allows them to skip to what would be the next level of
progression in Level Selection the next time they wish to play the game.
• As previously stated.
Battery Death
In the case of battery death the level in progress is not saved and must be restarted by the player the
next time he or she plays the game.
15. GRAPHICAL STYLE
Høgskolen i Østfold – DMPro – Game Programming – Halden 02-2013
Ole Andersen
Kristen Kytr
Patrik Svendsen
Mehrdad Taherifard
Fighting Game: Working Title is presented in 2D. The graphical style should be cartoonish in nature.
Environment Graphics
Each zone type may have a different background style, fiery, snow, desert, etc to denote a change in
location. Full background changes may be available dependent on time.
• Each different background will be a different frame or set of frames on the primary scene.
16. SOUND AND MUSIC STYLE
Sound
Each time the player or opponent takes an action a sound accompanies it.
• A successful strike has a sound.
◦ Add the sound to the same function that removes the opponent's health on a successful
strike.
• A missed strike has a different sound from a successful strike, a whooshing noise.
◦ Always occurs unless the “if” test for the hit test is successful, then the other sound plays.
• (Time Dependant)
◦ Jumps could cause the character to grunt or make some sort of noise when used.
▪ Bound to the same key as a jump, played the first time the jump is executed.
• A defeated character should make a “death” sound in addition to an animation of them falling to
the ground.
◦ When the health bar reaches zero (i<=0) the sound is played once along with an animation
for death.
The last 10 seconds (tweakable) in a level play sounds, alerting the player that the time limit is running
out. From 10-5 seconds (tweakable) remaining the sound is played quickly, from 5-0 (tweakable)
seconds remaining the sound is played twice as quickly as the previous 5 seconds (tweakable).
• This could be replaced with a countdown for the final few seconds of a match, alerting the
player the time is running out.
◦ Dynamic text box in a more prominent position on the scene, matching the time left in the
timer but with a flashier animation.
Music
The music should be a catchy repeatable score with the ability to be sped up as the difficulty increases.
Example scores are the music from Tetris and Super Mario.
Environment System Sounds
The environment does not play a part in the game's sounds. Game sounds are restricted to those
already listed along with the music score.
17. TARGET PLATFORM
Flash capable devices.