top of page
3.png

Trails of The Ten

Trials of The Ten is a single-player top-down shooter game set in Sci-Fi arenas. The game focused on creating balanced gameplay and replayability with currency system, resource system, and upgrade/mutate system. Gamplay wise, the player has to earn currency to get stronger and eventually defeat all levels. In addition, the game provides various options for the player to upgrade themselves and mutate their enemies, which can support over 387million possible combinations for the player to choose from, so the player can make decisions wisely to manage the risk and reward and keep engaging at the game.

Trailer

Trailer

Development Info

  • Role: Systems Designer

  • Engine: Unreal Engine 4

  • Genre: Top-down shooter

  • Team Size: Solo Developer

  • Development Time: 12 weeks

Roles and Responsibilities

Download

  • Systems Design

  • Visual Scripting (Blueprint)

  • Balance Analysis

  • Encounter Design

  • UI Design

unreal-engine-3-599431.png
Roles & Responsibilities

Roles & Responsibilities

Design Goal
Weight-Balance-PNG-High-Quality-Image.png
  • ​Creating balanced gameplay based on currency, resources, and upgrade/mutate system. Then, playtest it to optimize the balance so the player feels getting stronger instead of getting frustrated when dead, which should construct a satisfying playthrough for the player without tedious farming.

03fe4080-b0cd-11ea-9b48-b4e7f8e248bf.png
  • ​Designing a game with great replayability utilizing scaling difficulty and suitable reward to attract the player. In addition, the game will keep the player engaged by providing enough depth for the player to experiment with and gives the player a feeling of achievement with exciting content.

Currency System Design and Balance

The Design of Coins
  • Coins in the game are the currency that the player can earn by defeating enemies.

  • Each enemy is worth 50 coins at the base.

  • A multiplier will apply when the player makes progression, the further the player gets, the more each enemy worth.​​​

  • For example, the player killed four enemies in the first room, each worth 50 (Enemy worth)x1(Multiplier) Coins. In the end, the player gets 200 coins as a reward which can be used in the Shop and purchase upgrades.

The Design of Shop
  • All coin incomes are useable at the Shop when the player goes to the Menu.

  • The Shop has three purchasable items: initial health, initial damage, and initial move speed. In addition, the price of an item has 3 levels depending on how many times this item has been purchased, which means to more an item is purchased the more expensive it gets.

  • For example, the player defeated some enemies and got 350 coins before getting killed by hostiles. Then, they can go back to the Menu, go into the shop, and make some purchases to upgrade their starting stats. 

Shop.gif
The Balance of Coin Income and Shop Price
  • Encouraging the player to make progress and get as far as possible is the priority when balancing the coin incomes. 

  • In this case, the further the player gets, the more coins they can earn. As the player, this will provide the drive to make progress.

Income.png
IncomeChart.png

Coin Income Spreadsheet and Chart

  • Combining the increasing coin income with the scaling price system for the Shop can help extend the game life and prevent players from farming the same room repeatedly.

Balancing Process
  • During the playtest, the balance between difficulty and reward became the most critical issue, and the players felt disappointed because combat was hard enough and they did not get enough reward for it. I researched playtest results and found that many players died in the early level while the reward multiplier was still low. 

  • To solve this issue, I adjusted the shop price scaling from linear scale to scale based on price levels. For example, the price for one health upgrade purchase costs 25 more coins for the first 5 purchases, 50 more for 5-10th purchases, and 100 more coins for further purchases instead of costing 50 more coins each time the player purchases in the old design.

  • As a result, the gameplay experience became more balanced and less frustrated. The player feels their strength is growing each time they play.

MenushopNumbers.png
MenushopChart.png

Shop Price Spreadsheet and Chart

Currency System Design and Balance
Resource System Design and Balance

Resource System Design and Balance

The Design of Bullets and Health
  • As one of the game's primary resources, bullets have two usages: Player's ammo and purchasing upgrades.

  • The cost of purchasing upgrades will increase depending on the player's progress 

  • Health is another primary resource that the player needs to manage.

  • The level will not provide health regen, but pick health upgrade will heal the player to full.

  • ​For example, the player got hit by the enemy multiple times, and the player's health dropped to 40. Then the player killed the enemy with 2 bullets and gained 35 bullets as a reward since this was the last enemy in this room. Finally, the player upgrade page has opened, and the player chooses to upgrade health with 20 bullets which will heal them to full and provide extra health.

The Balance of Bullets and Health
  • Making a chart of bullet usage prediction will visually showcase the curve of the bullet left, and making each playing strategy run out of bullets at a similar progression is the goal of balancing.

  • Since the player has many strategies to choose from, it is hard to predict what the player will choose. Therefore, estimating the cost of bullets for different builds is essential.

  • In the spreadsheet, I predicted 4 types of build that the player may use and calculated the bullet cost base on the bullet income chart and upgrade cost chart (See Upgrade/Mutate System Design and Balance section). Then, tweak the number to make all 4 builds use up all bullets at room 5 or 6 on the first run so the player doesn't feel too frustrated by getting defeated and give the game replayability, allowing the player to experience the Shop system.

  • The curve showcased the average bullet usage under 4 types of build, and it is apparent that they all go below 0 around room 5 and 6, which is what I am trying to pursue.

BulletLeft.png

Amount of Bullet Left Spreadsheet and Chart

Balancing Process
  • The ratio of bullet usage between different builds became the focus of balancing after a couple of playtests. This is because the game can have many differences between builds. For example, when players pick a move speed build, they will have trouble dealing with enemies with health mutation since they did not get any damage buff.

  • To solve this issue, I made multiple attempts to lower the ramping for upgrade prices and reduce the health mutate amount. However, the balance can not base on sacrificing difficulty and make the game tedious. Therefore, I reduced health mutate variables and added a health growth system (enemies have extra 20 health in each room). This means that even if the player is running a speedy build and picked health mutation, the enemies will have less health in total compared to what they will have in the past. In the meantime, if the player picks damage or move speed mutation, the enemy will still have some extra health. In this case, the player can still feel the challenge but have more bullets to finish whatever build they want without worrying about running out of resources.

Upgrade/Mutate System Design and Balance

Upgrade/Mutate System Design and Balance

The Design of Upgrade System
  • The player will have a chance to purchase an upgrade when they finish a room.

  • The system will provide three options, and the player can choose one with enough bullets or abandon this upgrade opportunity if they don't have enough ammo.

  • Turn income will be given to the player at the end of each chamber before purchase.

  • The player's upgrade variables will increase as the player progresses.

upgrade1.png

Upgrade UI

The Design of Mutate System
  • The enemy will get mutated in every room besides the first room.

  • The player gets to pick one out of three enemy mutations before entering the next room.

  • Enemy mutates are temporary and will only last one room.

  • Enemy health will also naturally grow, and they get +20 health for each room the player has finished.

  • Considering their current build, the player can pick the mutation that makes the enemy less hard to deal with. For example, when the player runs a move speed build, they can pick damage mutation on enemies and kite them around, which becomes a high-risk, high-reward playstyle.

  • The mutation variables will grow as the player grows.

Mutate.gif

Mutate UI

The Balance of Upgrade System
  • ​Balancing the upgrade system is the key to making the player feels that they are growing stronger and making progress. Thus, I created a spreadsheet containing all upgrade options to be used in resource balance calculation and can be quickly implemented into the editor.

Player.png

Player Upgrade Spreadsheet

The Balance of Mutate System
  • ​Balancing the mutate system can make the enemy more challenging and make the game loop more engaging. The game's difficulty ramps up as the player progresses so is the mutate values. In room 8, 9, and 10, the player especially needs to choose the mutate wisely based on their build since the mutation values are very high.

enemy1.png
enemy2.png

Enemy Mutate Spreadsheet and Chart

Balancing Process
  • ​The upgrade and mutate systems have not been changed a lot since the original design.

  • However, the playtester did bring up the issue of having only one type of enemy, which caused the late game loop to be boring since their attack pattern is familiar. Adding range enemies or unique enemies with spells will increase the replayability and make the player think of more strategies to deal with them.

  • Due to the time strength, this advice is not implemented, but I took this as valuable input and listed it in the post-mortem.

Visual Scripting Unreal Engine 4 Blueprint

Visual Scripting (Unreal Engine 4 Blueprint)

Player Character Structure
  • This is the character BP which contains all player variables like movement speed, health, damage, bullet, and coins.

  • It also contains all player actions including moving, shooting, opening menus, and saving player data.

Enemy AI Structure
  • This is the enemy base BP which contains all enemy variables like movement speed, health, damage, net worth, and growing health.

  • At the same time, this BP is the base of the melee type of enemies. Although the game only has the only type of enemy, but adding another enemy type is as simple as creating a child blueprint of this and adjusting variables.

Currency System Structure
  • The BP below shows how to make purchases in the main menu and update the data to the player's save at ruin time.

  • The currency system is separated into many BPs, such as Shop UI and Player Character, since coins are a common variable in the game. Thus, this is only a simple showcase of how the purchase work in-game.

Resource System Structure
  • The BP below shows how the system rewards the player after finishing a room.

  • It is attached to the arena system and being called when all waves are clear.

  • The resource system is also separated in many BPs such as Player Character, Upgrade UI, and Upgrade system since bullets and health are also common variables in the game. Thus, this is only a simple showcase of how the system rewards the player (Turn Income).

Upgrade System Structure

  • The BP below shows how the upgrade system works.

  • In this case, when the Upgrade Player function is called, this BP will read the current room number to judge which line of data it should read from the data list. Then upgrade the player depending on what option the player has chosen.

Mutate System Structure
  • The BP below shows how the mutate system works.

  • Like the upgrade system, this function reads the current room number to judge which data line it should read from the list. Then mutate the enemy depending on what option the player has chosen. However, since the enemy mutates only last one room, the mutate result will not be updated to the base variables of the enemy.

Arena System Structure

  • ​The spawn wave will be triggered when the player overlaps the starting area at each room. Then, the system will start to generate enemies with mutation and add them to the array of enemies. The datasheet can adjust the number of enemies, and the system will update every second to see if the player has defeated all enemies in the array.

UI Structure
  • The BP below shows how to make the 3D main menu.

  • The camera will move between menus and adjust the moving track based on the location of the 3D menus.

  • The BP below shows how I added the 3D capture character sheet to the game.

  • This will require another BP of camera capture and make what the camera has captured into a texture.

  • Then added the texture to the widget to show on the player screen.

Postmortem

What Went Well

  • The playtest result is very positive, and the player felt getting stronger while playing.

  • The game experience is satisfying for many playtesters, and they don't feel frustrated when getting defeated, and most players know what to do on upgrade and mutate.

  • The game has successfully built a game loop of "Kill enemies to earn coins, use coins to purchase permanent upgrades, get further progress in the game."

  • The game provides good accessibility for the player with the iconography UI and tutorial.

  • The scaling difficulty works well and makes the playtester feels the game is generally balanced.

  • The project is well scoped, with all features from the initial design document remaining in the game and some stretch goals finished like high accessibility UI and some VFX and SFX.

  • The project is bug-free.

What Went Wrong

  • Enemies sometimes spawn right in front of the player, which might give the player an unfair feeling. Adding a spawn logic to avoid the player's position will fix this issue, but I haven't done it because of the time strength. 

  • Enemies sometimes surprise attack the player from behind due to the view range limitation, and if the player dies from this attack, they will feel frustrated since the player is not expecting that to happen. I tried to add an offscreen enemy indicator to the game and tell the player where the enemies are, but this feature is out of the scope and buggy when testing, so I remove it.

  • The game has only one type of enemy, which cause the late game loop to be boring since their attack pattern is familiar to the player. Adding range enemies or unique enemies with spells will increase the replayability and make the player think of more strategies to deal with them.

  • The upgrade of health, damage, and movement speed can be tedious when the player plays the game multiple times. To solve this issue, I could add move mechanics to the player, such as giving them special abilities, adding unique perks in the shop, and providing a random reward after each room is finished.

What I Learned

  • Preplan the blueprint structure is very important and should be included as a part of the design document.

  • The Game Interface is helpful for the visual scripting pipeline.

  • Playtest is always an excellent way to experiment with the balance theory.

  • There is never a perfect balance solution, and user experience is the key to making a game feel balanced.

  • When working in a spreadsheet, make sure to organize pages, and include similar features together, making other designers easy to read.

  • Creating charts to visualize the result can help others understand the design.

Postmortem
bottom of page