This week was a particularly engaging week for me as it was the first week that I was able to engage with game development hands-on. Though the idea of rapid ideation is not a new one to me, coming from a background in Game Jams and similar events, I was still keen to see the material we would cover this week and what new perspectives it could give me.
The challenge activity this week was by far my favourite so far. We were tasked with taking a single artefact from a larger game or interactive product, and example given was “an inventory system UI for a game” (“Topic: Week 3: Challenge Activity” 2021). I chose to recreate the time mechanic from the game ‘SuperHot’.(o.o. 2021) This game centres around a character who has the ability to control the speed at which time passes. Time only moves when the character does, should the player stand still, time too would slow to a stop.
Given my experience with it, I chose to create my prototype in the game engine ‘Unity’. First thing first I needed a player, for the sake of this prototype I kept things simple, sticking to primitive shapes to convey my idea. Coincidentally I happen to be working on separate 3D side project at the moment, so I reworked the script I made for that game and stripped it down to the bare necessities I needed for this.
With the player in place I could now move on to the main event, the time mechanic. Unity’s time works off of a publicly accessible value called ‘timeScale’, mapping this to the velocity of the ‘RigidBody’ component attached to the player immediately gave something close to the desired effect. It took some tinkering, clamping it so it couldn’t make time go any faster than normal, and not stopping time entirely as this affected the player acceleration, but eventually I got something close what can be seen in the actual game. After adding a simple script to the gun object to fire sphere’s with red trails it was starting to come together.
In the game, the objective of each level is to defeat all the enemies on each level. With some time left to spare I decided to add in some basic enemies for the player to shoot. In ‘SuperHot’ whenever the player hits an enemy they shatter into pieces, while this was far too hard to do within the scope of this activity I decided to try mimic it in a simpler form.
I duplicated the main character and coloured it red, to match the enemies in game. I added a simple AI script to make it follow the player and if hit with a bullet fired by the player, the enemy gets destroyed, replaced my a mass of tiny red balls that spill on the ground before shrinking and disappearing. Although not as iconic of a look as the shattering enemies in the game I was still please with this approximation.
After adding a small environment for the player to walk around in and adding multiple enemies, the prototype was complete.
- “Topic: Week 3: Challenge Activity.” 2021. Learn.falmouth.ac.uk [online]. Available at: https://learn.falmouth.ac.uk/courses/240/discussion_topics/2993?module_item_id=9150 [accessed 12 Oct 2021].
- O.O., SUPERHOT. 2021. “SUPERHOT – The FPS Where Time Moves Only When You Move”. SUPERHOT – The FPS where time moves only when you move [online]. Available at: https://superhotgame.com [accessed 12 Oct 2021].
- TECHNOLOGIES, UNITY. 2021. “Unity – Scripting API: Time.timeScale”. Docs.unity3d.com [online]. Available at: https://docs.unity3d.com/ScriptReference/Time-timeScale.html [accessed 12 Oct 2022].