Overview
Level InfoName: COG Crisis
Game: Gears of War Type: Single-Player Engine: UDK Development Time: 170 Hours |
Features
|
Design
High Concept
Fight through waves of Locusts as Marcus Phoenix in a whole new gameplay style for Gears of War!
Summary
The Locust have loaded up onto a train and are planning to attack one of the last COG bases of Ephyra. It is up to Marcus to stop them before it's too late!
This level features a brand new gameplay system and HUD stylized after the popular arcade game Time-Crisis. Through heavy Kismet modification, you can now play as Marcus in an on-rails shooter, fighting through a subway station, subway platform, and on a moving train!
This level features a brand new gameplay system and HUD stylized after the popular arcade game Time-Crisis. Through heavy Kismet modification, you can now play as Marcus in an on-rails shooter, fighting through a subway station, subway platform, and on a moving train!
Design Goals
- Make a significant change to the regular Gears of War gameplay style.
- Mimic the style and feel of Time-Crisis as much as possible.
- Create a engaging environment with multiple WOW moments.
- Design a moving train fighting sequence.
- At least 15 minutes of gameplay.
In Edit
or Setup(1) Marcus rides the turret (which matinees around).
(2) Camera attached to the turret to simulate the movement.
(3) The HUD is really just planes with textures on them that are attached to the turret and turn on/off when they are needed.
(4) The reticle is a particle effect that is attached to the turret and placed further out.
(5) The block detects damage on Marcus and relays the information to the health HUD.
(6) The car hood is where the dummy fire shoots from and relays info to the ammo HUD.
(2) Camera attached to the turret to simulate the movement.
(3) The HUD is really just planes with textures on them that are attached to the turret and turn on/off when they are needed.
(4) The reticle is a particle effect that is attached to the turret and placed further out.
(5) The block detects damage on Marcus and relays the information to the health HUD.
(6) The car hood is where the dummy fire shoots from and relays info to the ammo HUD.
Custom HUD
- Planes with textures that have no collision.
- Hard attached to the turret in front of the camera at a set distance.
- Triggered Hidden/Unhidden to display different combinations.
Kismet Overview
The Magic of how the player moves
There are 3 separate Matinees used throughout the level for moving the player.The player moves by Matineeing the turret around that he is riding on. The sequences on the left start and stop the matinee at key times where enemies appear. The ResetMatinee and Continue? bools are used to restart the Matinee at the next checkpoint if passed.
To prevent the player from screwing up the movement, the controls are disabled while the Matinee is moving. The movement duration of the Matinee is used in the delay. In this case, once it is 2 seconds into the Matinee, it stops the Matinee, renables the controls, and activates a remote event to spawn the enemies and start the encounter.
Encounters
Encounter 5, 5 Drones: Once the remote event is activated, after a brief delay it spawns the enemies. After an enemy is defeated it checks to see if the player is dead or if all enemies are dead. It then goes through a series of checks to reset everything back up to a base format meaning the player is standing up and not taking cover or reloading, etc. Finally it plays the next move event.
Health Pack: After 5 seconds a Health Pack is unhidden, allowing payers to shoot it for a full health refill. Unfortunately I could not actually spawn the health pack and had to resort to hiding/unhiding. This meant that if players were lucky, they could shoot into the air and hit an invisible object, showing a dust particle if it got hit.
CP1-1: This is the first encounter with a CP. It is setup by changing the MatineTime global variable to 10 (meaning the Matinee is 10 seconds in) then it sets the global variable CP1-1 (meaning checkpoint 1 of the first section of the level). It then shows a HUD element telling the player they hit a CP.
Health Pack: After 5 seconds a Health Pack is unhidden, allowing payers to shoot it for a full health refill. Unfortunately I could not actually spawn the health pack and had to resort to hiding/unhiding. This meant that if players were lucky, they could shoot into the air and hit an invisible object, showing a dust particle if it got hit.
CP1-1: This is the first encounter with a CP. It is setup by changing the MatineTime global variable to 10 (meaning the Matinee is 10 seconds in) then it sets the global variable CP1-1 (meaning checkpoint 1 of the first section of the level). It then shows a HUD element telling the player they hit a CP.
Cover and Leaning
Players are able to go into cover by hitting "Spacebar". Depending on which encounter the player was at meant which type of cover they would take.
The beginning of this section sets LeaningLeft? to True and InCover? to False so that other functions in Kismet can't be activated while these are True. It then checks to see what section of the level you are in and plays a Matinee to Lean Left according to the appropriate area. Once the cover key is released, it reverses the Matinees and the bool changes.
Other cover methods, like Crouching, follow the same Kismet with just changes to the bools and Matinees.
Other cover methods, like Crouching, follow the same Kismet with just changes to the bools and Matinees.
Weapons and Ammo
Clicking Mouse1 triggers the Pistol Fire. It first checks if DisableControls is False, then checks to see if the player has PistoAmmo, then checks if the player is InCover? or not. Lastly it checks to see which CP it will be firing from.
The weapons fire using Dummy Fire from a parented position on the turret. Dummy Fire does less damage than regular weapons do so there needed to be multiple Dummy Fires. Each time the weapon was shot from, it would go into one of the sequences up top.
The weapons fire using Dummy Fire from a parented position on the turret. Dummy Fire does less damage than regular weapons do so there needed to be multiple Dummy Fires. Each time the weapon was shot from, it would go into one of the sequences up top.
This sequence would check how much ammo was left in the gun each time it was input. It would then hide/display the HUD accordingly.
Checkpoints, Resetting and Player HP
Test Continue, Press F: A problem I had during the production of COG Crisis was that this type of gameplay didn't work well at all with the game. Using the built in checkpoints (CPs) method broke the new gameplay mechanic. Another issue appeared where Marcus riding the turret in the game would cause a fatal bug seemingly at random that made it impossible to continue. Because I could not test CPs in the game I had to find a way around it, leading me to making my own CP system. This let me play the game, with CPs in the editor without having to compile and load up into the game.
Continue: This section would go through a series of checks to make sure all enemies are dead and then would display a choice asking if the player wanted to continue or exit. If they hit continue, ResetMatinee would get set to True, making the Matinee start at the last CP and reload the weapons.
Continue: This section would go through a series of checks to make sure all enemies are dead and then would display a choice asking if the player wanted to continue or exit. If they hit continue, ResetMatinee would get set to True, making the Matinee start at the last CP and reload the weapons.
SetPlayerHP_CP1: This section is very vital to how the new game mechanic worked. The player, whether they choose God or Normal mode at the beginning, was always in God mode. This section would detect if a invisible block, attached to the turret that sat infront of Marcus would get damaged. If it did, it would go through a sequence checking and displaying the health much like how ammo was done. Running out of health triggered the Continue? path.
Reset CP1: When going back to a CP, resetting the Matinee was easy enough, but getting Marcus back there was a whole other story. For some reason when I teleported him he would get caught on meshes on his way back to the CP. So for a brief duration I would unload the level, play a Matinee that fades out to hide it, and then reload the level so that he could make it back to his spot. Sometimes this wasn't enough though so selecting certain meshes he regularly got stuck on and turning their collision on/off fixed the rest of the issues. A double check was issued at the end to make sure no enemies survived (sometimes the one kill all enemies from Continue didn't work).
Reset CP1: When going back to a CP, resetting the Matinee was easy enough, but getting Marcus back there was a whole other story. For some reason when I teleported him he would get caught on meshes on his way back to the CP. So for a brief duration I would unload the level, play a Matinee that fades out to hide it, and then reload the level so that he could make it back to his spot. Sometimes this wasn't enough though so selecting certain meshes he regularly got stuck on and turning their collision on/off fixed the rest of the issues. A double check was issued at the end to make sure no enemies survived (sometimes the one kill all enemies from Continue didn't work).
Post Mortem
What Went Right
Gameplay Feel - One big thing that went right was that the game was fun and it felt like a Time-Crisis style game. I always loved playing those arcade games and wanted to bring it into the Gears of War universe. Figuring out how to bring the tech in was very difficult but extremely rewarding. It meant a lot of hours but it felt like more of a challenge than work, so I was pretty happy doing it.
Creating the Mechanics - Most of the large problems that came up were able to be fixed pretty ingeniously through the creation of mechanics I wanted for this anyways. For example, I wanted a Health HUD that would calculate the players health and display it on screen. This was a mechanic used partly to fix the problem of Marcus dying on the turret and then not being able to correctly reset the matinee because he couldn't get back on the turret correctly. I just made Marcus invulnerable, made another object take the damage and translate it the HUD. Then I was able to easily implement Health Packs because of how the health was calculated now.
Creating the Mechanics - Most of the large problems that came up were able to be fixed pretty ingeniously through the creation of mechanics I wanted for this anyways. For example, I wanted a Health HUD that would calculate the players health and display it on screen. This was a mechanic used partly to fix the problem of Marcus dying on the turret and then not being able to correctly reset the matinee because he couldn't get back on the turret correctly. I just made Marcus invulnerable, made another object take the damage and translate it the HUD. Then I was able to easily implement Health Packs because of how the health was calculated now.
What Went Wrong
Constant Problems - Because Gears of War is a third person game, it really didn't enjoy the change to an on-rails shooter. This caused multiple large problems throughout the development. Fixing these problems required implementing new mechanics to get around them, which ended up over-scoping the project quite heavily.
Lack of Polish - The time that I spent just getting the game to work overshadowed the time making the actual level and gameplay. This led to some not-so-good encounters and areas of the map that just look flat or unpolished compared to others.
Lack of Polish - The time that I spent just getting the game to work overshadowed the time making the actual level and gameplay. This led to some not-so-good encounters and areas of the map that just look flat or unpolished compared to others.
What I Learned
How Incredible Kismet Can Be - Challenging myself with making this helped me learn a lot about Kismet and about bug-fixing. The amount of problems and issues I had really benefited me in understanding how to work in UDK and how games are made in general. Making COG Crisis really put me behind the curtain in seeing how games can use tricks to make them work. Learning this much Kismet came in handy later on when I created the fire room for the Pain King in Hymn of the Sands.
Scope - During this I also realized just how important scope can be. If I had just cut one section of my level and made it shorter, it would have been much more polished and possibly less buggy. I was too caught up in making it 15 mins of gameplay (which it didn't even reach) that I sacrificed quality for quantity.
Scope - During this I also realized just how important scope can be. If I had just cut one section of my level and made it shorter, it would have been much more polished and possibly less buggy. I was too caught up in making it 15 mins of gameplay (which it didn't even reach) that I sacrificed quality for quantity.