Stranded Factory Kismet Notes
A web of visual scripting nodes in Kismet was used to create Stranded Factory's memorable experiences and the gameplay functionality. Everything from making lights flicker to spawning enemies into the level required some amount of scripting to properly function.
Basic Functionality
When the level starts, the playable character, Marcus Fenix spawns in a narrow service hallway where Stranded Factory is first introduced to the player.
As the player moves through the hallway they first encounter a camera shake, a crumbling sound effect, lights flickering off and dust particles fall from the ceiling. This sequence communicates that locusts are disturbing the earth under the player's feet. Next Marcus activates his communication link and a series of text dialog between Marcus and Anya are displayed explaining the current predicament.
|
After the final dialog cue an objective displays on the screen telling the player to find a way inside the factory. At the end of the hall is an elevator the player can go inside and activate. Once activated a Matinee sequence plays allowing the elevator to reach the first floor. During the elevator ride another brief camera shake with a louder crumbling sound effect is activated. Once the elevator stops at the first floor and the door opens, the player can now enter the play space.
|
Spawning Allies and Enemies
All stranded allies and locust enemies were spawned into the level through a sequence of Kismet nodes. The upstairs enemy waves were spawned in small rooms with doors scripted to be kicked down by the locusts.
(See more details on Encounter Notes)
(See more details on Encounter Notes)
In order to properly respawn the stranded allies after a checkpoint was activated, new sequences of boolean Kismet nodes were created. This Kismet first checked if a stranded ally had died before a checkpoint was set. If an ally did die it would not respawn them, otherwise they would respawn normally when the checkpoint was activated.
The first upstairs enemy wave also needed similar Kismet nodes to properly respawn the locusts after a checkpoint was activated. (See more details on Encounter Notes)
Working Object Hazards
Stranded Factory had two object hazards created for players to activate in order to seal emergence holes quickly. I started by bringing in three of the same interpolating actors to act as the three stages of the hazard. During the first stage the hazard object was set to be dormant and appear like a normal object.
When the emergence hole under the object opened it triggered Kismet that destroyed the first object and revealed a second identical object in the exact same location. The second object flashed between an orange texture and its normal texture due to a loop of material swapping nodes. Also floating orange targets were placed around the object and were set to unhide once the object began flashing. (See more details on Hazard Notes)
If the player activated the hazard by damaging it, then a Matinee sequence played showing the hazard falling into the emergence hole. During the sequence, a Kismet node dropped a grenade precisely when the object fell into the hole. After the hazard's activation, any remaining objects were then destroyed to remove them from the level.
(See more details on Hazard Notes)
(See more details on Hazard Notes)
If the player chose not to activate the hazard before the emergence hole was sealed, then the second object would get destroyed and a third identical object would instantly teleport to its exact location. Because it was difficult to stop the looping material swap, I decided destroying the second object and replacing it was the best option.
End Level Checks
I wanted Stranded Factory to end when players successfully eliminated all enemies in the level. To accomplish this I had to setup a several "true or false" scripts called booleans that would stay false when enemies from the final wave were alive but would change to true when they died.
These booleans checked if the enemies from the third emergence hole and the enemies from both upstair waves were dead. When all enemies from a spawn location died it would set a boolean check to true, and once all booleans were true it activated the end game Kismet nodes.
The end game Kismet sequence first activated a short sound sting to communicate that the end level conditions had been met. Then a display box appeared asking the player if they wanted to continue playing or end the level.