The End

* I recommend setting the quality to 4k 

I developed The End in the summer of 2023. I wanted to apply what I learned in my various online courses and Sheridan College classes to create a game inspired by Playdead’s Inside. Over the course of this project I tackled many unfamiliar challenges, such as designing for a 2.5D game, programming complicated mechanics, and scripting unique events with custom animations. I also refined my skills in familiar areas like puzzle design, level pacing, and prototyping.  

Game Design

The games created by Playdead studios are known for their atmospheric environments and the absence of explicit tutorials, button prompts, and dialogue. To deliver a similar experience in my game, I needed to include a simplified control scheme that utilized only two buttons (jump and interact) and both analog sticks. I also wanted to provide clear, simple signifiers that indicate actions and aid in wayfinding.

When designing the controls for the gravity gun, that was to be introduced in the following section of the game, I initially began with a generic crosshair used for selecting the target object. The use of a UI element here felt inelegant and after a couple of iterations, I ended with a far better system (albeit more complicated). With my new system, the player now fires the gun with the interact button and the nearest object is selected taking into account the location of all nearby objects and the direction that the player is facing using the character's dot product.

To create a clear and consistent vocabulary with my players, I decided to make the primary visuals of my game greyscale while highlighting interactable objects in a contrasting bright yellow. After introducing this concept with the button in a safe space, I reinforced it with the yellow battery sequence. Many signifiers are used here, such as the vignette post-processing effect, framing, dying locomotion animations, broken blinking battery on the protagonist's back, and the dynamic reaching animation that plays when the player is close to the fully charged battery on the ground. These signifiers allow the player to quickly interpret and comprehend the situation at hand.

To add high-intensity moments of gameplay I created two enemies, the Drone and the Turret (which would’ve been introduced in the following section). Both of them have red signifiers to visualize their line of sight. This color consistency allows the player to associate the color red with danger. They were easy to roughly implement, which allowed me to quickly prototype different situations, such as using the gravity gun to block the Turret's line of sight with objects. 

Level Design

I began by finding reference images for environments, notably getting inspired by the brutalist architecture of Remedy Entertainments Control, the beautiful simplicity of Inside and, the artwork of Simon Stålenhag. I then sketched some rough overviews of the level and rearranged the beats until I had a varied and engaging flow of gameplay, as illustrated in the beat map on the right. Next, I greyboxed the level, making only minor adjustments to what can be seen in the final video. For instance, I had scripted a time-consuming sequence involving animations where the player would slide down a hill and fall into the swamp. After fully developing the slide mechanic, I had become attached to the sequence and tried to fit it in somewhere within the level. Ultimately, I decided that it wasn't needed, which taught me a valuable lesson to prototype first with a quick implementation of the mechanic. 

I used a few techniques for wayfinding, such as phantom lighting to highlight the goal in the first Drone encounter, and 'gates' that prevent players from mistakenly backtracking after falling from the bridge. A sequence that I'd like to highlight is when the player enters the hidden shelter. The player is first met with a long narrow corridor, lined with pipes. This section encourages movement through the space and offers a brief period of rest after a couple intense beats. The space then opens up, the camera shifts to show the goal, and the player must methodically avoid the Drone while pressing the button to then be able to escape.  

Scripting

Playdead is known for their use of scripted sequences that include polished character animations to drive narrative and gameplay moments. These crafted sequences make each beat unique and interesting, compared to the vast majority of games that rely on a repetitive game loop. To do the same for this project, I learned an animation software called Cascadeur. After learning the software, doing various tutorials and researching the pipeline, I was able to create my own custom animations.

For The End, I scripted both gameplay and narrative beats within the level blueprint. Some examples include, camera transitions, enemy patrol paths, opening the valve door, and the figure walking in the distance when the player enters the warehouse. The most complex scripted event was the bridge sequence, where the player falls through some broken planks. This required a seamless transition of three animations, and a lot of debugging as the result of some tricky programming. I'm happy with the final result, as I believe it serves it's purpose of surprising the player and setting up the following sequence.

Programming

I initially underestimated the amount of programming that would be required for this project. There were challenges, especially when developing and debugging the gravity gun, mantle and vault system, as well as the control rig. However, I look back on those experiences with a great sense of pride in what I was able to achieve. My first win of the project was setting up the leg and feet inverse kinematics for the player, as demonstrated on the right. I then made a few shaders and a handful of mechanics that never made it into the final video. The perfectionist in me was constantly striving to fully polish every aspect of the game. In the end, I had to learn when enough was enough and to move on; otherwise, I'd still be in the playground map prototyping.

Takeaways