OPEN WORLD PROJECT
Character Movement Design Set In An Open World
Focus Areas: Level Design & Game Design
11 weeks half-speed = Around 220 hours.
5 weeks half-speed during our advanced level design course
6 weeks half-speed during our specialization course
Unreal Engine 4
My goal of this project:
Design and script mechanics that works in tandem with each other and within the world
Level design an area large enough to encourage different modes of transportation
Design a level that showcases my game design and moveset
Add variety in traversal
Find a balance between game- and level design
INITIAL MOVEMENT DESIGN
When I first began with this project I utilized a ready-made third person template called Advanced Locomotion System V4 made available for free at Epic Games marketplace. This gave me a starting point to work with as it came with already made features such as ledge climbing and smooth animations. So with this to start with I felt that I had a good jumping off point to add on additional features at an intial stage of development.
As my original idea for this project was to focus on verticality I wanted to be able to traverse vast distances.
Following that train of thought I developed a glider that enables you to glide through the air.
I implemented a temporary speed boost while gliding that increases your momentum forwards and upwards, enabling you to travel further and easier change direction. I added a cooldown on it, to prevent it from being spammed.
To encourage more air time and opening up more areas with a higher altitude I implemented an updraft.
The idea was to start in the lowest area of the level and by using these updrafts with your glider, you would be able to traverse the entire level and gain access to all areas.
While grounded, the gravity is lowered on the character when you are within it. When you're gliding, you instead gain a boost in momentum upwards.
By checking for the duration you hold down the jump key I managed to create a function that changes your jump height based on how long you held down the key.
This was useful when going from ground movement to air movement as you gained a bit more altitude before activating your glider.
The initial idea I had for this project was to focus on the verticality of the level and how to traverse that verticality.
I began with my overview which took inspiration from an archipelago outside of Gothenburg in Sweden. This gave me a general layout for the different plateaus and floating islands. The initial inspiration of the settlements came from the air temples in Avatar: The Last Airbender, but in the end I decided on different designs, except the upside down hanging temple on the right-hand side.
After a quick blockout of the different areas, I managed to assess the multitude of heights in several varieties. I then began shaping the terrain and later used more detailed meshes for the floating islands, based on that blockout.
At the very end I desaturated the materials, I also added in some fog to highlight the size of the region in-game as it provided additional depth.
ITERATING MOVEMENT DESIGN
Halfway through the development I decided to switch perspective from third person to first person. Instead of using a project with ready made features I made a clean first person template project, provided by Unreal Engine 4.
This enabled me to be in control of all features and how they work on their own as well as in tandem with each other. Another reason for doing so was to not have to worry about animations as I didn't feel inclined to spend time in that department and instead focus on gameplay.
After switching camera perspective I decided to completely redesign the glider and start from scratch.
This version felt more natural when moving in the air as you twist and turn instead of the more static movement the previous iteration had.
I also scrapped the idea of activating a speed boost mid air previously utilized as I felt that it didn't fit with this version.
As I redesigned the glider, so did the speed boosters placed in the world.
Instead of having an updraft giving you movement upwards I instead decided upon these gates that provide you with an increase in momentum forwards.
I personally enjoyed this much more as you could get a sense of motion when flying through the world.
Like in the third person project I felt that a sprint function adds a lot when traversing as it gives you more control in how fast you move on the ground.
At first I simply doubled your speed when pressing the sprint button, but I later found that it broke in combination with crouching so I had to remake it for it to work properly.
Lastly I added a condition that you may only sprint if you're holding down the W key to counter sprinting backwards.
As I wanted to focus on traversal, a ledge climbing feature felt like a natural addition.
It took some time to figure out and tweak but eventually I got it to work, enabling you to leap up on ledges when you are within a certain distance. I decided upon using this instead of the adjustable jump height I had previously.
This was also combined to work in tandem with the crouch feature when ledge climbing into tight spaces.
HONORABLE MENTION: CROUCHING
Even though Unreal Engine 4 has it built it, I decided to make my own version, which meant I could modify it.
When you're crouching in a tight space, and then release the crouch button, you will automatically stand up when enough space is available.
I combined it with ledge climbing so that you auto-crouch when ledge climbing into a tighter space. I also managed to have sprinting work in tandem with it when crouching.
Since I wanted the ability to travel vertically I thought a grapple hook would be a nice complement to the glider, enabling you to gain more altitude.
After having it tested I added the ability to dismiss it mid air incase you misshot or wanted to cancel it while moving towards your destination.
This became quite useful when either wanting some more height before gliding, or getting up to an edge to climb on.
Feel free to scroll through the images to view some selected screenshots of my top-down project.
This project more than anything served more as a showcase for the character movement design I prototyped than as a completely playable experience.
I wanted the settlements to keep their basic shapes and not focus too much on level art, which unfortunately led to the crouch feature not being utilized.
As I wanted to both show game design and level design I tried finding a balance when hopping back and forth between scripting and level designing. Wanting each of them to balance one another, with the level acting as a support to the implemented gameplay features and vice versa.
In the end, I'm quite pleased but I wish that I had more time to develop one area in the world a bit further in order for all features to be usable in the level.