I spent a good amount of time this week developing the game. I made huge progress and I learned a ton of new stuff.
I made good progress on the game design document, too. When it comes time to collaborate with others on the project this document will be critical. This allows me to get all my ideas in a tangible form so they can be critiqued, debated, transformed and scrutinized.
Here's the punch list I rocked through:
Fixed an issue with the enemy actor highlight and unhighlight functions that caused the highlight to display incorrectly or not at all
Setup click to move (will likely disable this in the game)
Setup auto run mechanics
Allowed client side navigation in project settings to make sure the movements worked in multiplayer for clients
Refactored code on player controller to condense some larger functions
Set effect applied to use an Remote Procedure Call (RPC) and be reliable so that clients can respond to the gameplay effect applied delegates
Learned how to mark functions as UFUNCTION(Client, Reliable) to make sure they replicate properly on client side
Tested to make sure multiple clients on listen and dedicated servers could respond to the RPC
Added animation pack for spellcasting ability animations
Added animation pack for RPG adventure animations
Added secondary weapon slot skeletal mesh component to the base character class
Fixed rotation of left hand weapon socket to allow bow to sit properly in player's hands
Created IK rigs and an IK retargeter so I can map bone chains to other animations from different skeletons for reuse
Created class to allow actors to cast projectile-based spells
Created fireball projectile blueprint
Fixed an issue with retargeted animations being offset on the X axis when using root motion
Wrote code to send gameplay events to spawn projectiles based on animation notifies
Created custom ability task class
Wrote code to send & receive the target data payload after clicking on a target
Learned more about soft and weak pointers
Learned more about C++ dereferencing
Implemented prediction code into gameplay abilities using prediction keys
Added code to orient the player towards the target when casting projectiles
Enabled motion warping plugin
Implemented motion warping track into animation montage so that players face their target when casting spells
Added code to spawn impact effect and sound when projectiles overlap with specific actors using collision object trace channels
Added primary and secondary casting sockets to primary and secondary weapons
Added gameplay effect that causes instant damage on impact
Created custom enemy health bar class that hovers over the enemies
Health bars now react to damage gameplay effects every frame and adjust the values properly
Health bars are now hidden on start and appear when damage is taken
Created data asset & enum to hold class information for the unique player classes in the game
Created default attribute effects set to reuse across classes
Created curve tables to control each classes primary attributes by level using .csv or .json files
Wrote code to initialize enemy attributes from the new data asset
Fireballs!!!
This week I will focus on the damage mechanics in the game and applying damage in shared classes that are flexible and extensible. I pushed through several big milestones this week and I am optimistic for the same type of progress this week.
Tonight there is a full moon staring down into my window as I write this blog. Haunting and comforting at the same time. What is the moon??
Cheers, Vinny
Comments