The Magician

Table of Contents

Overview

This game was developed in a course where we created a Top Down Multiplayer RPG style game implemeting a variety of offensive and defensive abilities that can be upgraded through a skill tree system where we can receive points when leveling up by killing enemies. We also receive attribute points when leveling up to be spent on attributes and those attributes can affect directly our damage, defense, critical chance and many other stuffs. We have a in depth attribute system with many attributes to upgrade.

Combat

The Combat developed on this game was primarily using GAS where each skill the player or enemy has is an Ability in GAS where it has a cooldown and a cost attached to it (both are a Gameplay Effect).

GAS allow us to have a robust built-in system that take care of multiplayer with replication and prediction (limited but with good coverage) and facilitate the work when creating new abilities or modifying existing ones.

The concept of using GAS with Gameplay Tags also allow us to do numerous things since they are connected. For example, we can block a certain ability depending on the Tag that the player has on a given moment. There is a lot that can be done with both system and we use this a lot in this game. Most of the abilities has a base class created in C++, with utilities functions also made in C++. The ability itself needs to be developed in blueprints.

The abilities has the concept of causing Damage of a specific type which can be multiplied or reduced by numerous way, for example, by a specific resistance or a block chance. After all calculations are made, the damage is caused to the player/enemy.

All abilities were developed using a data driven system based on Level (using a Curve Table), which means that the damage, cooldown and cost are directly linked to the level of the ability and as soon as the player levels up an ability, everything will follow accordingly.

It's important to note that all abilities have the relevant settings available in blueprints for easy access and changes.

Fireball

This is an ability that throws a fireball to the enemy and deal Fire Damage. As the player levels up, the amount of fireball he throws increases and this ability also has a debuff chance of causing Burn to the enemy.

Electrocute

This is an ability that cast a lightning to the first target that it hits and it'll keep going as long as we keep the button assigned to this ability down. This ability will deal Lightning Damage and it has some special features as the player levels up, such as bouncing to another enemy depending on the level of the ability up to 5 enemies. This ability also has a debuff chance of causing Stun to the enemy at the end of the cast.

Melee Attack

This is an ability only found in a few enemies and it's an ability that does meele attack and deal Normal Damage. It implements a sphere trace to be more forgiven.

Ranged Attack

This is an ability that is used by the ranged goblins which uses a slingshot that throws a rock which deals Ranged Damage.

Summon Ability

This is an ability that when casted, it'll summon a number of minions (based on level) which will help the shaman on the fight. Once the number of minions decreases to a limit, the enemy will summon more.