Saturday Session (VI)
- Vinny
- Mar 4, 2024
- 3 min read
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.

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
コメント