MALIN WONG

UX & Level Designer

Summit

Gameproject 2, February 2019

Roles: Level Designer, Blueprint & UI Scripter

Time: 4 weeks

Team Size: 3 Designers, 3 3D Artists, 3 2D Artists, 3 Programmers

Tools: Unreal Engine 4, Perforce P4V

My contribution: Level Design, Game Design, Menu Systems, UI & Blueprint Scripting, Animation Implementation

Summit was selected for DreamHack Summer's 2019 Student Showcase, where we exhibited the game for the entirety of the event. It was also top 10 popular on itch with over 800 downloads.


The expo included networking with the DreamHack Indie Showcase, as well as giving valuable experience in Indie Exhibiton.

About

Summit is an emergent puzzle adventure platformer, about facing challenges and coming up with creative solutions.


The player has crash-landed on this vast tower in the middle of nowhere - The Summit.


This ancient overgrown ruin hides many secrets to uncover and holds the key to finding your way home again.

Level Design

The main purpose of the level design was having emergent gameplay and our abilities in mind, and creating a puzzle that wouldn't be too hard for the player.


I achieved this by lots of play testing, and using a method called "action blocking", which is a workflow inspired by the Titanfall 2 GDC talk.

Action blocking is when you prototype multiple level design features or puzzles, and pick out the best ones to make one level.


The objective of the level is solving the given puzzles or creating your own solution to climb up to the next level.


The Water Level (Part One)

• Multiple solutions    • Less enemies    • Vertical progression  • Less platforming


1. The color contrast of the vines grab the players attention. Having previously learned how to fly on the ventilations, the player follows the vine to the next area. I used hanging foliage to emphazise ledges.


2. The player is shown the entrance of the levels main area by the vines going in the opening as well as a contrast in light. The player passes a checkpoint station, which updates the players respawn location.


3. When entering the space the player is faced with the first puzzle. I guide the players attention to the hole in the wall and to the pressure plate using vines, decals and light. This part features less platforming and enemies than the next, making it safer.


4. I put a decal with drag marks along the floor as a hint between the cube and the moon decal. I positioned the door so that they see it opening, on top of hearing it, when they complete the puzzle.


5. To encourage exploring I added some health pick ups in semi hidden places. The pick ups both heal and increase the players max health.


6. Since the focus was emergent gameplay, the player can choose to create their own path up the tower. Using the given abilities (tether gun, glide and dash) in synergy they can skip my puzzle, and the next part completely.


The Water Level (Part Two)

• More linear    • More enemies    • "Backtracking"    • More platforming


1. When entering part two of the level, the planks and foliage point them in the right direction. Here the player encounters more enemies, which they need to shoot away with their tether gun or they will take damage.


2. The outside part features more platforming. Again, the player can make their own way across, using their own combination of the abilities.



3. When entering the space again, the player isn't neccesarily backtracking but entering a different space of the same level. The sun symbol is previously used as an exit sign, and this along with light contrast of the doorway shows the player the exit.


4.There's a lot of enemies up here, which the player again should shoot, or they could get knocked down and take damage. If that would happen, their respawn check point is still up there and acts as a safety net.


Blueprint Scripting

Health Pick-up

Since you can take damage in the game, we needed a way to restore health, so I made a health pick-up. 

The player can increase their max health by picking up 3 health pick-ups.


I made it rotate by adding a rotating movement component so that it would be easier to spot.



Checkpoint System

I created a checkpoint system for the respawning, which kept track of the respawn checkpoint order.


It saves the first checkpoint in the player BP at the start of the game and calls to update the respawn functionality written in C++

(made by a programmer) whenever another one is triggered.


Setting the initial checkpoint inside the Player:


Activating a respawn checkpoint script, inside the actors BP:


Animation Implementation

I helped our animator by showing how to implement some of the character animations, create blend spaces in Unreal and create transitions.


I also scripted the logic for some of the transition booleans later used.


Idle to Run Blendspace. I've realized since that I could have just set the speed variable at 50 - it wouldn't change how it works, it would just look a bit neater.



Transition references script:



Transition rule: Idle/Run to Jump/Falling:



Transition rule: Jump/Falling to Idle/Run:


UI Scripting

Health Meter & Pickup Counter

The triangles are always there, but I scripted the visibility and appearance for the triangle sprites to change if the player was missing health, gaining health or increasing their Max Health.


The player could get more Max Health by picking up 3 Health Pick-Ups. They always start with 3 triangles.


I also made a pick-up counter which kept track of how many pick-ups the player was from gaining another health container.


Healing/Taking damage Brush functionality (example of triangle 1):



Increasing Max HP, Visibility functionality (example of triangle 4):



I had 4 triangles stacked on top of each other with different fills showing, one empty, 1/3, 2/3 etc. I toggled their visibility via script.



Menu Systems

I made a custom button for the menu systems which allows input from mouse, keyboard and gamepad controller. I also scripted the other main and pause menu functionality.


The button runs on a timer, and it also holds the functionality of sensing if it is hovered by mouse and gamepad. It then sets the style accordingly.



The timer function:


The Main Menu

The main menu is in a separate level, which then loads in the game level once "play" has been pressed.


It then starts an introduction video, which can be skipped

by pressing spacebar.




The "Pause" Menu

The pause menu never really pauses, but rather fakes it by setting time dilation super low.


I chose to do it this way as a hacky fix since the true pause also paused my button functionality, and I was running out of time.