More info about Lootchadors, Click here
Brief Overview of the Project
Lootchadors is a party beat 'em up multiplayer game being developed
in UE4. The aim of the game is to loot fun environments and finish
the match with the most money. You can throw, punch, dash and use
power ups on each other to cause mayhem! Lootchadors is Saturday
Morning Cartoons meets Pro Wrestling mixed with Slapstick Humour!
An example of the Oil Slip Stat Effect and the Fully Stunned Stat
Effect working one after another.
The Problem
While making Lootchadors I needed a system to handle gameplay events
such as combat interactions, and power ups. The goal was to create a
system which allows both Gameplay effects, and visual cues, to be
added to players in a simple way with scope for allowing Designers
control over these effects.
An example of the weak stun being applied multiple times and then
the Fully Stunned Stat Effect being applied with the drop loot Stat
Effect Also being applied.
The Solution
The solution I came up with for this was a Stat Effect System that is
Data Driven. This system would both handle the visual and gameplay
parts of stat effects.
The different parts that make up this system are;
-
Stat Effect manager which handles adding, queuing and removing
Stat Effects from the players.
-
Stat Effect which is a container for the visual and gameplay
effects that are added to the player. (GameplayCFG and VisualCFG)
-
Stat Effects Gameplay Tags, tags which are used to drive gameplay.
The tags are added to the player and can effect the players
current state or anim state.
-
Stat Effects Visual, VFX, Sounds, Particle Systems, UI and
animations that are added and removed from the player
An example of the dash ability adding the spin out stat effect to
another player
Technical Breakdown
Stat Effects are comprised of a Gameplay element, and a visual
element. They are both implemented as scriptable (blueprintable)
objects to allow designers to build out gameplay elements that can
modify gameplay for a player, and provide a visual representation of
the modifier. The code/system handles lifetime management of these
objects, and calls lifecycle events (OnActivate, OnUpdate, OnRemove
etc)
There’s a Data Table which has a list of StatEffect configs. This
gives a central location for all Stat Effects and an easy way to
create Stat Effects from the configs.
That’s pretty much the workflow. The driving force of the stat effects
are the Gameplay Tags. The player has a container of these and every
frame the state machine reads them and changes its state based on
certain tags.
An example of the weak stun being applied multiple times and then
the Fully Stunned Stat Effect being applied with the drop loot Stat
Effect Also being applied.