top of page
Search
Writer's pictureVinny

Gameplay Mechanics

Updated: Feb 21

Gameplay is by far the most important part of any game. Of course great artwork and a compelling storyline are also crucial, but building a strong, flexible, multiplayer-enabled system is time consuming and complex. Luckily Unreal built the Gameplay Ability System for this exact purpose. It has been battle tested in games like Fortnite and has proven that it can scale to large, complex games.


I was able to dedicated a ton of time this weekend to implementing the core foundation of this system and getting many of the things constructed that will be required mechanics later in the game when developing the different classes. This system makes all kinds of different gameplay effects possible like buffs, debuffs, instant spells and effects, damage over time, heal over time, and even passive effects with periodic or infinite durations governed by strict policies for how they interact with themselves and other effects.



Spellbook concept

Here's a list of all the things I was able to develop:


  • Established the game UI architecture

  • Stubbed out UI widget base and child classes

  • Setup Widget Controller class

  • Setup Overlay Widget Class & Overlay HUD

  • Added widget blueprint to act as the HUD master overlay

  • Setup Widget Controller Parameters

  • Setup delegates to broadcast attribute values to widget controller

  • Setup listeners for the callbacks

  • Updated game mode to use a new blueprint

  • Set widget class reference in Player Controller

  • Updated Health Globe and Global Progress Bar to pull actual values from C++

  • Created Overlay Widget Controller

  • Created blueprint from the Overlay Widget Controller class

  • Setup delegates and bindings for attribute value changes

  • Learned more about forward declaration in C++

  • Started working on the foundation for gameplay effects

  • Changed the effect actor class to use gameplay effects

  • Setup handles for gameplay effect contexts

  • Implemented function to apply effects to targets that can be called from blueprints

  • Implemented instant effects

  • Implemented duration effects

  • Implemented periodic effects

  • Implemented infinite effects

  • Added instant and duration effect application policies

  • Implemented Infinite effect application and removal

  • Implemented pre-attribute changes and post-attribute change executions to clamp values to never go below zero or above their defined max attribute value

  • Implemented post gameplay effect execution base logic into attribute set class

  • Added curve tables as magnitude for an effect as the effect's level goes up

  • Changed anti-aliasing method to Temporal Anti-Aliasing (TAA) from Temporal Super-Resolution (TSR) to avoid ghosting effects introduced by TSR


Big progress was made this weekend and I am beginning to feel way more confident with the overall architecture of the game. Determining what stuff should be in C++ classes versus what stuff should remain open and flexible on the blueprint side has been a fun challenge.


This week I will spend time looking in-depth at Gameplay Tags and implementing them into the overall ability system framework. This should empower me to start really tying the system together and giving the players and enemies more interesting and powerful skills and abilities.


Ancient relic die used by magic practitioners to imbue runes

Cheers,

Vinny

14 views

Recent Posts

See All

60 FPS

Comments


bottom of page