Cyberdrome
Basic Info –
-
Engine - Unreal Engine 4
-
Platform - PC
-
Development Time - 20 weeks (300 man hours: 3 hours per day, 5 days a week)
-
Team Size - 15 People
-
Genre - High octane First-person action
-
Design Goals - Create a fast paced sword combat game where the sword is everything
-
Personal Responsibilities - Level Design, Level Scripting, and Combat Design
Game Overview -
Cyberdrome is a fast-paced, first-person cyberpunk action game where you use a high-tech sword to compete in deadly arena combat against waves of drones
The Gameplay and Mechanics
Cyberdrome focuses heavily on the player's movement abilities and split-second decision making. Players needed to use the following abilities in concert to achieve victory:
-
Double Jumping - The player can jump twice in the air
-
Dashing - The dash propels the player forward but also slashes and kills enemy bots
-
Slashing - Every enemy in the game is killed in a single strike
-
Focus Mode - A mechanic to temporarily slow down time, akin to bullet-time from the matrix
-
Deflection - Deflect enemy bullets with the blade to send them back at enemies
Each of these abilities is individually very powerful too which presents a difficult challenge for combat and level design - how do you make gameplay fun when the player can kill anything in one strike and cross almost a quarter of the map in a single dash?
Level 3 - Acid
My primary responsibility on the project was as a level designer and Acid was the level I designed and built during the course of the project. To try and tackle the issue of the player character being extremely powerful I decided to focus my level on much more verticality than any of the other levels. This decision could give me a few advantages over a wider level:
-
It's much easier to build upwards to increase difficulty for the player's movement abilities
-
I can much more easily and forcibly chunk the player's current playable space with the addition of the rising acid
-
I can limit the current playable space more thereby helping players create a mental map faster
-
Verticality tends to add a lot of interest for players in general
-
Our Game Designer had specified that a focus of the challenge in Cyberdrome was also to be the players ability to smartly and effectively navigate a space
These were the major points I wanted this level's design to focus on.
Verticality in Acid
Verticality is the entire focus of the level's design aesthetic. The verticality of the space informed every aspect of the level's design, from unique scripted events such as the acid, and the way enemies move in the space. The verticality also helps this level stand out in player's minds apart from the other two levels in the game. The upwards movement in the space provides a great deal of challenge for a player's movement abilities especially when coupled with the enemies flying around in the space. The floors in the level are constructed mostly of platforms with each level having less floor space available to players. The amount of available floor space was decreased per floor to challenge players more as the waves and continue and give players a sense of rising action towards the final wave. Though this design created another problem that needed to be dealt with: how to handle player's platforming in a situation where platforming is not the focus. Enemies in our game are dangerous and can kill the player in just a few moments if the player loses focus on the combat for any reason. Due to this I measured out the player's movement and built all the platforms so that players can reach them almost without thinking by using their jumps or dash ability. I also used these platform placements to help teach the player on each floor about a new way of moving before fully testing them on the final floor.
Re-contextualizing Space During Gameplay and Training Players
The main gameplay feature of Acid is the rising acid in the level. Every three waves the Acid rises up one floor to prevent forcibly chunk the player's mind into a new gameplay space. The acid deals a small amount of damage while the player stands in it to deter players from using it as a platform. By doing this I can help keep players focused on the important things in front of them. This also allows players to formulate a mental map much more quickly. Since mapping out the space is a key component of understanding how to move in it I wanted players to be able to do so as quickly as possible. These smaller floors lessened that burden on players.
The rising acid also keeps the gameplay space fresh for players during play because it turns the level into what can almost be described as a set of 4 mini-levels. Each floor in Acid functions in this way, with their own gameplay test.
-
Floor 1 tests the skills players have used in the previous 2 levels; horizontal dash kills, deflecting bullets, and basic movement like running and jumping
-
Players can reach the second floor by using just jumps to do so
-
-
Floor 2 tests the player's ability to use their movement mechanics, both dashing and jumping or even a combination of both, to avoid dangerous areas
-
The third floor can be reached by using dashes or double jumps
-
-
Floor 3 test whether or not players can utilize the dash to quickly control the space by killing enemies that spawn in from multiple locations and the player's ability to kill with a dash
-
Floor 4 can be reached by dashing or double jumping
-
-
Floor 4 tests all the previous skills; dash kills in the air, platforming, deflection, and avoiding dangerous areas all while giving the player even less safe spaces to land on
Combat Design in Cyberdrome
Another of my main responsibilities in Cyberdrome was combat design and balance. About halfway through the project we realized that our initial was completely impractical and not going to be finished on time so we re-purposed what we had already created for the game that we eventually completed. As part of this process I was asked by our leadership team to redesign the combat and enemies for our game. I was given an aggressive timeframe to do this in as the team would need answers for what the enemies were going to be as soon as possible. I designed the enemies based on an orthogonal system with each enemy individually focused on testing different player abilities. The Aggressive, Healer, and Chaser all test simple skills such as Dashing and Simple 3D Movement while the Laser and Spawner enemies test more complex skills like Dash Kills and focus. This orthogonal design is a simple and straightforward way for me to give players unique enemy types to play against on a time budget. These designs were all strongly influenced by the features we had built beforehand as well. Due to our restructuring of the game's core design I needed to come up with new enemy designs utilizing features we had built beforehand. A great example of this being the spawner enemy. Originally spawners were only a static object in the world, but, by attaching it to an enemy, I could test the player in a new orthogonal direction without creating a larger burden for the other teams to handle.
Further detail is present in the Enemy Designs Document. A download link is below.
Scripting Level Events and Tools
My last responsibility on the team was for scripting tools and events for the levels our designers (including myself) built. I scripted the Acid in Acid, and the moving walls in Zen as well as a cut feature we called Interactables. These were objects that the player could interact with to cause different things to happen in the world. For example, opening doors, or cutting cables to cause objects to fall on enemies. The Acid for Acid and the Interactables were the most involved scripts I wrote. The rising acid will rise itself to however many locations the designer wants by utilizing a timeline to lerp between two positions. It also has the ability to damage players on contact and will kill any actor that gets below it just in case the player or an enemy somehow get below it. Almost everything about the Acid is driven by what the designer (myself) needs and can be changed in the editor.
The blueprints below are interactive versions of the Rising Acid Blueprint. Please take a look to get a better understanding of how this feature works. These are examples of what I had scripted for Cyberdrome.
Event Graph
Handle Acid Damaging the Player
Blutilities
As well as being responsible for the scripting for the level designers I also built a few minor tools for designers to use as Blutilities. These were built to satisfy specific needs that we as a team had. The two Blutilities I wrote would change a value on any spawner that had that value to something else, and would select all lights with specific shadow settings. Both of these were written because there were technical issues associated with something in our game. For example, the framerates of our levels were taking serious hits due to some lights having shadow settings that would take too much time to render. Using this blutility a designer could hit one button to select all the lights with the shadow setting or assets with the same material they wanted to change and then change it to something else.
Since these are blutilities they can be called in the editor to do things for the designer such as selecting or changing values.
The blutilities are interactive below here.
Select All With Same Cast Shadows
Select All With Same Material
Change Spawner