SUPERHOT Design Project

HighresScreenshot00004.png

Summary

I wanted to create a level for SUPERHOT in a limited amount of time. I spent the first two weeks designing the player, AI and weapons and the last week creating a level and adapting my AI to comfortably run  throughout the station.

About my level

  • Developed over 3 weeks half time

  • Developed in Unreal Engine 4

  • Inspired by SUPERHOT

  • AI, weapons and player scripts created by me

The Level

Blockout of another planned SUPERHOT level

Trains arriving to the station

SUPERHOT is at it's best when there's many moving parts, creating a puzzle around in which order to kill what enemy.

I originally planned to create multiple levels, one set in the back of an open aircraft, another in a tunnel with a busy highway.

In the end only my train station level was completed in time. The level features a
train arriving at the station and an elevator to take enemies up and down from the bridge above.

Designing a puzzle inside an action level was extremely fun, I will definitly try to finish the other two levels in the future!



 

AI

AI behaviourtree.PNG

AI Behaviour tree

The enemy will stand still and try to shoot the player if they have vision.

The elevator: my one and only navmesh switcher.

SUPERHOT has a simple and predictable AI, which fits the puzzle/action gameplay really well. It allows the player to make strategies around how the enemy behaves

This also worked in my favor as it was relatively easy to implement, my enemies have five states:

Punch player:
Self explanatory, if the player is close enough,
punch the player.

Shoot player:
If the AI has clear vision on the target they
fire a bullet. As long as the player is in vision the AI will stand and wait until their fire cooldown is completed.

Walk towards player: 
Also self explanatory. If there's a clear path towards the player, walk along it.

Walk towards navmesh switcher:
my level has
two navmeshes, one on the bridge and one on the platform below. Right now there is only one navmesh switcher: the elevator. when an AI is inside the navmesh switcher the elevator takes them to the other navmesh.

Idle:
If there's no way for the AI to reach the player they go into an idle state, such is the case for the two AI standing in the train before the doors open.

 

Slow-mo Effect

Script.png

Adding together the two types of dilation

To calculate how much to slow down time I came up with a system where I use two different values, Frame Dilation And Constant Dilation

Frame Dilation is everything that has to be updated every frame, such as the player
moving their mouse to look around.

Constant dilation is an action that lasts for a limited time. For example when the player fires a bullet
time moves at an accelerated pace for half a second.

I add these together to decide how fast the time is moving.

Example of frame dilation and constant dilation