Dev Log #1: Skill Selection
Video
Hi there, Welcome to my first dev log for a project that I’ve been working on since graduating from college. This project’s purpose is to create a prototype for a concept that I started developing a when I started the game design program at Sheridan. It’s a concept that I’ve wanted to act for some time but felt like I lacked the knowledge. However, after finishing the Unreal Engine 5: Soulslike Melee Combat System tutorial on Udemy (highly recommend if you want to get in to blueprinting) , my capstone project Stop and Breathe, graduating from college and finding an engine I felt comfortable with. I figured it was finally time to start building out this concept further, both in the documents and in engine.
This first dev log will focus on the skill system of the game. Before reading further I recommend watching the video first as it might help with context, and you wanted to see the abilities in action. As this log will only discuss some of the more hidden, under the hood mechanics of this system. In this log, I will cover a little about how it works and some mechanics surrounding this system. I won’t be going over everything in detail as I would like to go back to building the game, but I figured I’d get some of my thinking and a few details out there. What I’ll be covering in the dev log will be a few of the stats that each ability has, and the skill selection process.
All skills derive from one class that includes all the stats that an ability might need. Stats will dictate how the ability will spawn, the cost of the ability, the damage, how much it’s scaling with player stats and the cooldown just to name a few. Many of these stats can be improved by upgrading the skill with your skill points. (More on how to obtain skill points in a future dev log.) The image is the in-game skill info pop up that appears when you hover over a skill. You can see the level of the skill and your skill points in the bottom left section. There’s a lot to look at, so I thought I’d go over a few of those in the dev log.
The first stat I wanted to highlight was the ability type because its implications are for consistency and programming. The ability type (under the ability name next to the targeter icon) dictates how it will be fired when used there are three ability types, melee, AOE and projectile. Melee will spawn at the player's location and rotation, AOE will spawn at the targeter’s location, and projectile will spawn slightly in front of the player and travel towards the cursor. The last stat that I wanted to mention before we move on to damage/healing stats is the target type. This stat exists so I can decide which targets the ability with affect. The target type is an enumeration that can be set to allies, enemies, or both. The reason the stat exist is mostly so I can create an on hit function that heal, damage and eventually applies hit effects to the right targets using just one enumeration.
The way damage scales in this game is pretty standard so it can be easier to learn for fans of the genre. Each skill has percentage values that will influence its effects based on the players stats. (More about stats in the next dev log.) Damage mainly scales from Might, Magic and/or Devotion. Usually only two of the three and often just one but never all 3 at once. Each skill also has a stat for how much each scaling stat will increase per level. There’s also the base damage that will also increase with each level. There’s also healing which has the same stats as damage minus one difference is that there’s currently no plan to have healing scale off might. Near the top of the UI element next to the sword icon is the damage type of the skill, each skill that deals damage with deal one type between physical and magical. Physical damage will be mitigated by armour and magical damage will be mitigated by resistance, pretty standard for an RPG game. The damage type will also change the colour of the damage text that appears when dealing damage
I also wanted to describe a little how the selection system works. To change your equipped skills, you’ll first need to open the inventory (the subject of the next dev log) to free the mouse cursor. Then you click on the ability you’d like to change, then a selection of skills will appear. Only the skills you don’t currently have equipped will appear in the selection, meaning no duplicate spell. The skill selection UI won’t disappear till you close the inventory, click outside the selection UI or select a skill by double-clicking on a skill. While the selection UI is up you can hover over any skill and see its stats to help you decide on what skill to swap to for now.
You may be thinking, if I can swap my skill at any time, couldn’t I just swap to refresh the cooldown and spam all sorts of different skills. Sadly, you can’t, though it would be fun to do that. I believe it would make the experience too complicated for new players and obstructive for those who want to maximize everything in the game. So what happens instead is that each ability slot has a cooldown. That cooldown will be based on the skill’s stats and is set once you use the skill. Once a skill is cast from a slot, you won’t be able to cast any skill from that slot until the cooldown has run out.
Click to view full spreadsheet