top of page
Search
Writer's pictureVinny

Saturday Session (VI)

This week was a long one. Traveled to speak on generative AI at a conference and spent the whole week away from home with my wife. Had a great time and the presentation was well received. Looking forward to getting back to game development, I hit my flow state Saturday and rode the wave into Sunday with about 14 hours of solid game development.


Attributes are key to the foundation of all game mechanics

My focus this weekend was solely on Attributes, specifically adding 3 different sets:

  • Vital Attributes

  • Primary Attributes

  • Secondary Attributes


I also polished a few things and tackled some miscellaneous tasks that were on my list.


Without further adieu, here's the big progress I made this weekend:


  • Added animations to show and hide the effect messages after displaying on screen for some time

  • Replaced callbacks with lambdas (anonymous inline functions)

  • Added trailing indicator for the health and mana globes

  • Clamped attribute values for health and mana so they cannot exceed their maximums

  • Implemented initialization of attributes using gameplay effects instead of data tables or accessors

  • Implemented attribute based modifiers in gameplay effects with backing attributes

  • Added a test actor to validate that modifier values were working as expected when more than one modifier is present on the effect

  • Tested adding, multiplying and dividing by multiple attributes in a gameplay effect


  • Added Secondary Attributes:

    • Armor

      • Reduces damage taken & improves block chance based on resilience

    • Armor Penetration

      • Ignores % of enemy armor & increases crit chance based on resilience

    • Block Chance

      • Chance to reduce incoming damage by a percentage based on armor

    • Critical Hit Chance

      • Chance to increase damage and apply critical damage bonus based on armor penetration

    • Critical Hit Damage

      • Bonus damage added to attacks when a critical hit occurs

    • Critical Hit Resistance

      • Reduces chance of being struck by a critical hit

    • Health Regeneration

      • Amount of health regeneration per tick

    • Mana Regeneration

      • Amount of mana regeneration per tick


If only attributes were tacos...



  • Added a player level attribute

  • Moved Player related files to a Player folder in the solution

    • Fun Fact: If you are using Perforce and want to move C++ classes into a new folder, do so inside Perforce using the Rename/Move command. Next, rebuild your project.

    • If you still get errors, delete the following folders in your game project:

      • Binaries

      • DerivedDataCache

      • Intermediate

      • Saved

      • Build

    • You should now be able to right click your UPROJECT file and go to "Show More Options->Generate Visual Studio project files".

    • This will rebuild those autogenerated folders with the correct folder structure. You can then modify any #includes with the new folder path where you just moved your C++ classes.

    • I then ran into an issue where I would hit "Start" in Visual Studio to attempt to run the DebugGame Editor on Win64 and it would throw an error asking me to check my configuration settings for debugging.

    • After a quick search I found a helpful forum post that was mentioning the same issue. I was able to resolve the issue by setting the StartUp Project in the Project Properties.




Build Successful!


Quest Complete: Compile... or Die Trying!

You have gained 500 experience!

You have gotten better at Engineering (155)!


  • Implemented the player level attribute in player state

  • Implemented the combat interface class

  • Added code for custom calculations using Modifier Magnitude Calculations

  • Added code to initialize vital attributes properly using gameplay effects

  • Health and mana globes now initialize to their maximum values on creation

  • Updated animation on UI message text to be smoother and display longer





Next thing I'll work on will be adding a menu to configure attributes now that they are implemented properly.


Cheers,

Vinny


10 views

Recent Posts

See All

60 FPS

Comments


bottom of page