Wild Wood

Project Summary

Wildwood is a fast-paced free-running game in which you are meant to gather checkpoints as fast as you can and return to the start point

Role: Game Designer & Product Owner
Date: May - June 2020
Time:  7 Weeks
Team Size:  10 People (2 Designers)

Genre : Action Adventure
Engine:  Unity
Version Control:  Perforce
Code Language:  C#

  • Role
    Gameplay & Level Designer

  • Time
    4 weeks

  • Team
    13 people

  • Favourite Snack
    Marabou Cookies

  • Genre
    Sports Platformer

  • Engine
    Unreal 4

  • "Code Language"
    Blueprints

  • Version Control
    Perforce

My Contributions

Blueprint Scripting
Character Movement
VFX Triggers
UI Implementation
Gameplay Design
Character Movement
Core Gameplay
Level Design
Overall level structure

Game Overview

Mantling

To make traversing easier, you can mantle onto objects, allowing you to get on top of objects that are too tall to jump up on.

Sliding

You can slide under low objects that would otherwise require you to go around, saving you a lot of time.

Wall Running

Vertical

Some checkpoints are located in high places where you need to run up the walls to access them. Combined with mantling, this becomes a powerful part of your skillset.

Horizontal

If you jump onto a wall with enough momentum, you can make your way across it, clearing long gaps too wide to jump across.

Problem Solving

Problem

Players mantling into areas too tight for the player to move and getting stuck

Solution

Capsule cast target location to see whether or not the player can go there
Read More
Read Less
Show Script

Mantling

Mantling is a mechanic that allows you to get up onto an object taller than your jump height. You can transition from a wallrun into a mantle, or jump and mantle instantly. When we added this mechanic it introduced the problem of automatically moving the player into areas that they couldn't move within when they mantle.

The problem existed in spaces that were too small both vertically and horizontally. So what we decided to do was introduce a capsule cast in the location that the player would get moved to by the mantle function. If the capsule cast doesn't detect any obstacle within its boundaries, the player is moved to its location.

This solution was thought to be the quickest and most performant option available, and it is completely unnoticable by the player.

Problem

Players getting stuck inside obstacles at the end of their slide

Solution

Automatically transition from slide to crouch if underneath an obstacle
Read More
Read Less
Show Script

Sliding

Sliding is a mechanic which allows you to get underneath obstacles which you are too tall to fit under. When you initialize a slide your momentum is maintained and it gradually decreases the further into the slide you get. After a short while the slide ends and the player character gets back on their feet.

After a bit of testing we discovered that there was a few places where players would get stuck underneath the obstacle at the end of the slide. We considered making the slide state last until you are no longer underneath an obstacle, but that solution felt more prone to bugs. Instead we introduced a crouching state to the player character.

This solution prevented the player from getting stuck under obstacles, and made mastering the mechanic feel good as you would no longer be slowed down if they timed their slide incorrectly.

Problem

Players being shown the same tutorial multiple times because of the open layout of the map

Solution

Linked trigger boxes that communicate which tutorials the player has been shown
Read More
Read Less
Show Script

Tutorial

Teaching the player how to play the game is usually done in a linear fashion, but with the limited time frame we had, and the open layout of the map of the game, we didn't have the possibility to do so. Instead we had to figure out all of the locations where the player could first encounter each mechanic, and put a tutorial trigger box around it.

We thought that if we cover all of the instances where the player could encounter each mechanic, we would be safe, and the players wouldn't end up wandering around without knowing what to do. What we overlooked was the fact that each tutorial trigger box would trigger when the player reached them, whether they had already seen the tutorial or not.

This ended up frustrating a lot of our testers, and thus we created a system where all of the tutorial boxes communicate with eachother, to make sure that each instance of a particular tutorial was only shown once, and all of the other ones of the same type were disabled along with the one the player encountered.

Scripting

Leg Sprain Script

While Wildwood features no actual health or fall damage, it does feature a leg sprain effect which slows you down if you jump from too tall of a height. I implemented this because we had no feedback upon landing when falling from a high place, which felt very unimmersive. And being punished from falling from high places should make the player plan their route better.

The way this was made was by checking the player's velocity when they land if their velocity was above 3000. The slow effect was increased the higher the player's velocity upon landing, up to a maximum of 6500.

Read More
Read Less
Hide Script
Show Script

Level Design

The Thought

Initial Intent

The map was split into three sections, the tree-top area, the mountain area and the ruins area. The ruins area was meant to be the closest to the ground and with that, I wanted to challenge the player's ability to plan ahead and string their moves together.

Since the layout of the entire map is very open, each section had to be easy to traverse for beginners, which I had to balance with my intent to challenge more veteran players.

Final Result

Most of the level lives up to my original intent, there is a nice flow of movement between almost all of the sections of the ruins. The challenges within the ruins are easy to understand, but difficult to traverse without hickups, which is what I was going for.

The first two iterations saw drastic changes in the layout, whereas from the third to the fourth, I only moved sections to create a better flow between them.