Home Artists Posts Import Register

Content

    Something I'm trying to nail down this update is how exactly I want my buff/debuff/status effect system to work. It's a part of the game that seemed like it would be very simple early on, but which has proven to be deceptively complex. To explain why, though, let me first dive into a bit of how VT works behind the scenes.

    Before I started this project, the vast majority of my game dev experience was from working in RPG Maker. When it came to making a full-sized project in Unity, I had no idea where to even begin, so I just went with what I knew and began recreating the work environment I was used to. Skills, in particular, are actually theoretically very similarly to Common Events from a development standpoint and are responsible for far more than what you see on the surface, handling most of the different background processes in battle such as hunger or units being KO'd at 0 HP. Each Skill has its own Flags that determine when it is run and can be assigned to any number of units, making it very simple add in unique events for each character.

    So, easy enough, right? In addition to each unit's stat values, I keep track of a separate set of "buff" values that are called together with their counterparts. Then, I can add Skills with a special Buff flag that modify these buff values which run each time a unit's stats are calculated in order to give me an accurate value. For other things like damage over time, I can add Skills that run at the start of each turn and decrease the corresponding unit's HP. Weaknesses, immunities, etc. can just be handled by Flags. Problem solved!

    Except it wasn't, at all. Skills have a single, massive flaw, and that is that they all exist out in the ether, untouchable by anything else in the game. They can take information in and pass information out, but because they must exist unchangeably for each unit to use they cannot store any information themselves.

    Why is this a problem? Well, basically every single status effect needs to have a removal criteria. A set number of turns passing, a certain amount of damage being taken, etc. Skills have no way of retaining this information, so therefore no way of being removed when needed.

    To fix that, I made a new system almost identical to its predecessor, the Status system. The key difference was that, while Skills are stored on each unit as an ID reference to some ethereal plane of existence, Statuses are newly created each time they are added and stored directly within the unit's code, solving my previous issues by allowing me to store the number of turns passed, damage taken, etc. within the Status itself. So hey, that was simple enough, problem solved for real now, right?

    Nope, of course not. What about unique buffs? Stackable buffs? Additive buffs versus multiplicative buffs? What about buff priority? Buffs that change in value each turn? In the current build, every single buff and debuff is being funneled down and stored within the unit as a single integer value per stat. A clunky, clumsy, error-prone system.

    To get around that I'm... creating a new Buff system, on top of my existing Skill and Status systems? Or maybe I'm modifying my Status system to integrate better buff tracking? Perhaps something else entirely? Only time will tell as I keep exploring the different options.

    All that said, I'm sure I'll have it solved soon and development as a whole is going well! I will admit that it did take a brief hiatus last week as I performed some important market research, but the good news is VT's odds of getting a shark girl at some point in the future have shot up considerably due to my findings. As always, thank you for your support and taking the time to read this week's update!

Comments

Hunner

Yo gettin to hear about to developmental journey is alot of fun always lookin forward to em!

Geanderson silva

I think a limited use skill would be interesting to encourage more tactical thinking