Competitive Online RPG

Square

This is a solo project created next to my final study project and bachelor thesis.

It is built using Unreal Engine 4 and features a typical RPG combat system in a competitive setting. There are three playable classes: the monk, the warrior and the elementalist featuring unique skill loadouts and playstyles. Players join either of two teams and try to win a simple match of King of the Hill. If you are interested in the development process, check out the devlog.

Design

For this project, there were three core design goals:

  • A competitive and balanced combat system that creates exciting gameplay with meaningful choices and without any random elements, based off of traditional RPG combat mechanics
  • Teams fighting over a map objective, consisting of multiple roles that have different combat purposes, positions and abilities available
  • Players being able to build their team according to their playstyle, focusing on one role more than the other

The game features skill-based combat mechanics because of the fact that it is easy to adjust the controls to create a more competitive environment. Players can either click-to-move or use WASD to control their character, but can not jump or sprint like in an action-based game. This puts more emphasis positional play and punishes players for not paying attention to their surroundings.

Skills are casted using a simple casting system: a player activates a skill and is then locked from moving until the skill is either cancelled or succesfully executed. While players can fight on their own, the maximum efficiency is only reached when combining abilities within the team. Three basic classes with unique skill loadouts provide the first iteration of skills and interesting combat mechanics, these can be seen in the youtube link below.

These classes represent three major combat roles: A warrior is disruptive, with close-combat abilities that have the potential to mess with their opponent’s combos. Elementalists are heavy hitters that deal massive damage from afar. Monks are the backline of the team and have strong healing abilities that can negate incoming damage really well.

The map objective is a simple King Of The Hill mode. Players try to control the crystal in the middle of the map. The team with more players around the crystal can attempt to control it. If a team controls the crystal, it gets a point for every 10 seconds it does not lose control again. Once a team reaches a certain amount of points, which can be adjusted in the pre-game settings, it wins and the round is over.

In the first playtests, this simple system already created interesting gameplay scenarios: For example, while team A would at first try to capture the crystal, team B would use the positional advantage and use strong AoE spells to quickly force the enemy team to disengage and make them leave the crystal.

Skill Balance

Reference values

The first batch of skills was created intuitively and by experience, however because the game is supposed to be balanced and competitive, I wanted to find a way to design skills around a power curve that lets me know what benefits require what costs.

These values are then used to create a basic cost / benefit curve for skills, not applying any special effects. One thing to note is that while benefits are all indirectly tied dealing damage, and thus health, a benefit is not strictly limited to dealing more damage. Reducing costs of all kind or special effects with their own benefits also factor into this.

Factoring in only energy and damage relations with the desired combat base values, 10 energy should result in 50 damage. However because the combat system inherently has more costs for a skill this value needs to be lower. I decided to go with a triangular increase of energy cost with a linear increase of 50 damage per energy increase, not factoring in the values of cooldown and cast times of a skill.

Base cost / benefit

This lowered energy cost results in an average of 12 energy per 91 damage, which is too high for the desired skills-to-kill ratio. However the energy increase in usage fits nicely, since a character has not enough energy at once to cast a skill that could instantly another character. By applying the factors of cast time and cooldown into costs and the factor of range and # of targets into benefits, I can get an adjusted curve. For this I created exchange rates.

These exchange rates are based around the central resources. The central resource between energy, cast time and cooldown is: time. Taking this into account we can see that with the base regeneration value of 2 per second, energy is worth half as much as cooldown and cast time by default. 2,5 seconds of cooldown or cast time is at least worth 5 energy requirement. The relationship between cooldown and cast time is a bit more complicated: I am assuming that a cooldown resets or continues during death of a player and cannot be interrupted, while the casting of a player can be stopped through an additional effect or killing. Which means that cast time in general is a more expensive cost.

So the relationship between cooldown and energy is about 1-to-2, and cast time is more costly than cooldown. I am assuming a value of 1-to-3, however further playtesting is required to figure out the exact relationship.

When calculating the adjusted cost benefit ratio with a weighted average cost of 16 for 8 seconds cooldown and 3 for 1 second cooldown, the new curve looks like this:

Adjusted cost / benefit

The adjusted cost-to-benefit ratio is now 13,75-to-68,75 which is much closer to the intended values. So with this in mind the proto-skill, without any additional effects, can be declared to require 6 energy, has 8 seconds of cooldown, 1 second cast time and inflicts 50 damage to one target in 1 meter range. While this system is not complete, it is a useful point of reference to start designing skills and mechanics around actual game values.

Probability factors and playtesting have to show how much of a benefit hitting multiple targets and an increased range have relative to their cost. Also playtesting needs to proof that this system is actually true and does not have any obvious flaws.

Feature Set

  • Choose between three different classes
    • Warrior, close combat disruption
    • Monk, healing and supportive abilities
    • Elementalist, strong, magical damage skills
  • Game lobby with class selection, kicking/arranging players and teams, setting up game mode and win condition
  • Fully-networked combat either in LAN or over the internet
    • Support of steam (and theoretically matchmaking)
    • Dedicated servers as well as listen-servers
  • Standard RPG-like controls and combat system
    • WASD and click to move
    • Target-based combat
    • Different types of skills, buffs and debuffs and skill combinations

Media

Download

An early, playable version can be downloaded through the game launcher!