Home Artists Posts Import Register

Content

If you just want an update on progress I've done a full test of a series of minor sequences and I need to fix a few non-progs and a few other fixes but I have a few more story moments are in and "working" There is some stuff to fix and I want to put "some" content into the new area but once I can get those things "fixed"  and add in places to get the new abilities I'll be pretty close to a release. 

I'm now about to talk at length about how I discovered a HUGE bug inside the combat system that has been ruining it pretty much since day one. If your not interested I'd skip it but for anyone who is interested.

It has been an insanely frustrating week. This bug actually solves a long standing mystery.

So modifying testing any of the game's figment fights has been a nightmare for ages. Whenever I set up a new ability or figment I always have to spend hours tweaking every value very carefully. I've always felt like I was working blind. The same change on one ability could be completely different on another.

So this week I lost my patience. The magic bolt ability has always been the most powerful so I just wanted at least another solid attack with similar damage. No matter what I did the magic bolt was always more powerful for no reason.

So I output every single damage value and damage value modification and discovered the source of the problem. The Magic Bolt and every other ability does the same amount of damage every time.

None of the random numbers have been working. A plugin I installed for something completely unrelated locked down the random number generator.

This means the Magic Bolt ability was the most powerful because it was always hitting at the top of its possible damage range.This is also why trying to balance combat was so hard. 

The random number generator was fixed but still random. So each time you use the ability you get the same number. But every time I made adjustments or changes to the ability it would change that number.

This was almost impossible to detect because the output was always “correct” for a given situation. Like if an ability could do between 4-7 damage but the random generator was locked to always return 7. I would test the ability to realize 7 was too strong and adjust it from 3-5. The generator would still randomly select the value of 5 it would feel like my adjustment worked.

But when I created a new ability or even adjusted an existing one it would change that value and I could find the same code would produce a wildly different value.

This was particularly hard to detect because I didn’t have a reason to expect that the random numbers weren't working. Additionally all the abilities did work and their outputs were within the expected range. Individually it wasn’t even a huge problem but comparatively it was. One ability could be locked into a high range and the other low. Even if they should have been identical, one would be arbitrarily better.

This bug was so large it would overwhelm the damage type system. So like Aetherial vs Physical does 1.5 more damage from the base value. But the base value could already be stuck at more than 30 -50 percent below the average so a 1.5 bump on that low value does practically nothing.

The important thing is the bug is now fixed. The abilities return correct random numbers.

However,

I'm going to have to completely re-balance the combat. Which will be an annoying task. I did a very quick update to the balance system so in the future I can make more minute changes. But for the moment I'm not going to adjust anything I'll come back some time in the new year and fix it up.

I feel really annoyed that I never really double checked the values and looked into this earlier.  Honestly I assumed it was just my systems were not working properly. I didn't think to check something as basic as the random number generator.

Anyway that's my giant story for today. I'm going to get back to work so I can push out an update either this year or first thing next year!

Files

Comments

No comments found for this post.