Sons of Týr
My role in this project was being the lead programmer. My work includes the game's combat system (entities, weapons, status effects, equipment), the player/camera controls, UI (menus, healthbars, tooltips) and networking.
For Sons of Týr I opted for a more component based workflow because it suited Photon Bolt better and was easier for my teammates to use. The players and enemies all use or inherit from this entity component which most importantly handles all incoming hits and events. The entity component comes with a few extra classes that handle health, stats and status effects.
Equipment in code is a child class of item which uses a data object (scriptable object) to modify all sorts of stats on the wearing entity using stat modifiers. These modifiers can be either flat or percentage based and get applied upon equiping the item. To account for item clipping, equipment is able to modify skinned mesh blendshapes and disable certain appearance options.
Sons of Týr features four different weapons types: melee, ranged, magic and defensive. The style of combat is very animation driven and once you commit to an attack you cannot back out of it. For this I created a simple class that lets our animator keyframe all sorts of player variables like force applied on the player, invinsibility frames and damage frames. This gave us a lot of freedom to really finetune our animations and to let the steps in our attack animations feel really good.
A better preview of the animations and how they influence the player can be found here. (Credits to Wouter Ujvari)
Sons of Týr is a top-down online multiplayer rpg set in a viking world.
You play as a viking, raiding villages to gain loot and resources to upgrade your settlement. Do this alone or with a group of friends with whom you can also battle against in the arena.
The game features a commitment-style combat system with melee, ranged and magic, each with their unique sets of weapons and mechanics. Upgrade your character by getting higher tiers of weapons and equipment and by leveling up your weapon specializations.