Arc the Lad: Twilight of the Spirits Level-Up Bug

Discussion in 'Gaming' started by Amaury, Jun 21, 2014.

  1. Mixt The dude that does the thing

    Joined:
    Oct 18, 2006
    Gender:
    Male
    826
    What that box says doesn't actually mean anything from a coding view. With proper tools and knowledge of the code I could say that your HP went up by "squirrel" every level. In fact numbers can't be directly displayed, they need to be converted to text first.

    That blank spot is most likely because the process they put in to do that conversion didn't know how to handle negative numbers, or was designed to produce an empty string if less than one.


    If the level was supposed to be +5, yes. Again we don't know how or why the number was changed. If the program inserted a negative without the coders intent it could have changed the value too (Be glad you aren't seeing something like -255). If it was on purpose, it could be slapping a negative on the old value, or it could have been redefined to best suit the purpose. I simply can't tell you.
    If they were aware of it and it didn't risk breaking something else, sure.[DOUBLEPOST=1403978821][/DOUBLEPOST]
    EDIT: Actually I guess that depends on what you consider "fixed" you would just be messing up two levels so that once you have both "bugs" it cancels and you are back to normal.
     
    Last edited: Jun 28, 2014
  2. Amaury Chaser

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,694
    Gotcha. Now, I do have another question, which goes back to this:

    That's assuming your stats are natural. But what if you used items that permanently increase your stats, such as life tree berries (HP) and balo nuts (speed)? How are those calculations done if the game doesn't calculate and uses a predefined table sheet with what I assume has the numbers for each stat at X level?
     
  3. Mixt The dude that does the thing

    Joined:
    Oct 18, 2006
    Gender:
    Male
    826
    If a game just uses an algorithm or table for natural stats then it will need to keep track of the number of boosting items you have used and add that in after it calculates/looks up what the natural stats are. If you use an updating number to track natural stats instead, then you can just update that number for the items as well.
     
  4. Amaury Chaser

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,694
    But I thought you said games don't exactly calculate, they use a predefined list? Or did I misunderstand?

     
  5. Mixt The dude that does the thing

    Joined:
    Oct 18, 2006
    Gender:
    Male
    826
    They can calculate, very well actually. Those statements were the idea of those specific techniques, not limitations on the whole thing.

    Also an algorithm is by definition calculating something. The point I was getting at in the first option was that it is independent of what the stat used to be. So if my formula was "maxhp = 200 + level * 15" I could say that at level 27 my health will be 605. I don't need to go through the list and figure out what each level boost was, just plug and chug. It turns out that this will give you 15 hp every level but you can make them more complicated. Maybe grinding is important to the design and you really don't want people getting through places too early. Then you could do something like "maxhp = 50 + level^2" then your hp would go up at an increasing rate each level.
     
  6. Patman Bof

    Joined:
    Oct 19, 2010
    Gender:
    Male
    Location:
    France
    672
    You probably did, he gave you two possibilities. The first is to compute a result (algorithm), the second is to look it up (in a pre-written list). Could be either, we have no way to tell.

    Stats level up typically use algorithms (it' s doubtful that their algorithm would require more space and/or significantly more computation than a list) and "recipes" typically use lists because it' d be hard to think of a simple equation that would give coherent results (ex: Vagrant Story forges, and I assume BBS' command mix and DQ' s alchemy are list-based too). It' s a case by case scenario. If the machine you use has through the roof specs compared to what you' re trying to do you can just be lazy and pick whatever' s convenient to you, not caring how much space or computation it will require in the slightest.
     
    Last edited: Jun 28, 2014
  7. Mixt The dude that does the thing

    Joined:
    Oct 18, 2006
    Gender:
    Male
    826
    Yeah, big algorithms are really just if you want to micro manage and have something against using a list. If you want a growth pattern to look like +5 > +7 > +4 > +5 > +9 > +3... you could theoretically do that without referencing a list. I have no idea what that equation would look like and it would surely take a lot of terms, but it could be done. I probably shouldn't have brought that up here and just left it at the more basic "if it gets too complicated it isn't worth it" it just made things a bit more confusing.
     
  8. Amaury Chaser

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,694
    I think this is something both Arc the Lad: Twilight of the Spirits and Dragon Quest VIII: Journey of the Cursed King do with their leveling -- different numbers each time. Take a look at both of my character information projects (see my Current Forum Projects tab in my signature) to get a good idea of the level-up mechanics there.
     
  9. Amaury Chaser

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,694
    @Alice's Nights, @libregkd, @Patman, @Mixt

    Just posting to say that it looks like this growth pattern of hit points (Ganz, Volk, Densimo) was fixed at level 65. It caught me off guard and therefore I wasn't expecting it, so I'll record a video when Volk gets to that point, though, obviously, the stat increases and overall stats will be different, except for hit points and attack since he shares those with Ganz.

    Here's Ganz's level-up from level 64 to level 65:
    • MHP: +10
    • ATT: +1
    • DEF: +1
    • MNT: +1
    • SPD: +0
    • HIT: +1
    • AVO: +0
    • TRO: +0
    • Total HP: 532
    • Total ATT: 170
    • Total DEF: 113
    • Total MNT: 123
    • Total SPD: 40
    • Total HIT: 60
    • Total AVO: 50
    • Total TRO: 60

    I'm 100% sure this is a fix since every level up from 42 until level 65 has had HP increases of five and then four.

    That leads to me another question: Why did it take the developers 23 levels (42 - 65) to fix the bug? Couldn't they have just given that growth pattern of hit points an increase of 10 points at level 42, the level directly after the level with the bugged HP increase?

    Edit: I might be wrong, though. Doing the math manually from level 41 through level 64, this HP growth pattern should have had 532 HP at level 64 if I add that five at level 41 instead of subtracting it like the game (due to the bug).

    So taking the bug out of the equation, hit points at level 41 would be 427, not 417 (due to the bug) and they would carry on like so:

    • Level 40: 422 HP
    • Level 41: 427 HP
    • Level 42: 432 HP
    • Level 43: 437 HP
    • Level 44: 442 HP
    • Level 45: 447 HP
    • Level 46: 452 HP
    • Level 47: 457 HP
    • Level 48: 462 HP
    • Level 49: 467 HP
    • Level 50: 472 HP
    • Level 51: 477 HP
    • Level 52: 482 HP
    • Level 53: 487 HP
    • Level 54: 492 HP
    • Level 55: 496 HP
    • Level 56: 500 HP
    • Level 57: 504 HP
    • Level 58: 508 HP
    • Level 59: 512 HP
    • Level 60: 516 HP
    • Level 61: 520 HP
    • Level 62: 524 HP
    • Level 63: 528 HP
    • Level 64: 532 HP

    If the bug never happened, my guess, going by levels 55 through 64, it would have been another increase of four hit points at level 65, making the total hit points 536. However, because of the bug, it actually ended up like this:

    • Level 40: 422 HP
    • Level 41: 417 HP
    • Level 42: 422 HP
    • Level 43: 427 HP
    • Level 44: 432 HP
    • Level 45: 437 HP
    • Level 46: 442 HP
    • Level 47: 447 HP
    • Level 48: 452 HP
    • Level 49: 457 HP
    • Level 50: 462 HP
    • Level 51: 467 HP
    • Level 52: 472 HP
    • Level 53: 477 HP
    • Level 54: 482 HP
    • Level 55: 486 HP
    • Level 56: 490 HP
    • Level 57: 494 HP
    • Level 58: 498 HP
    • Level 59: 502 HP
    • Level 60: 506 HP
    • Level 61: 510 HP
    • Level 62: 514 HP
    • Level 63: 518 HP
    • Level 64: 522 HP
    • Level 65: 532 HP

    So this pattern is still off, even with the "fix," unless there's another big number at level 66 for hit points. Like I said above, had the bug never happened, it would have probably been another increase of four hit points at level 65 instead of an increase of 10 hit points, making the total hit points 536. Going by that and making another guess, it would have probably been another increase of four hit points at level 66, making the total hit points 540.

    However, since hit points at level 65 are 532 instead of 536, the way I can see this being completely fixed is by giving this growth pattern of hit points an increase of eight hit points at level 66, which would (correctly) make the total hit points 540, because an increase of four hit points would just put hit points at 536, which would, of course, be wrong.

    Edit 2: Well, ****. Only an increase of four hit points at level 66, unless there's another fix at another level. Either it's still off or I did my math wrong.

    If I could get some feedback on this, as well as an answer to my question, that'd be greatly appreciated.

    Edit 3: I don't think I did my math wrong because that HP growth pattern should have 10 more hit points than it does from level 41 to level 65, though I'm not 100% sure. It looks like the game is still off. It would have been completely fixed at level 65 it if would have given an increase of 14 hit points (522 + 14 = 536) instead of 10 hit points (522 + 10 = 532), because, as I said, had the bug never happened, chances are it would have just been an increase of four hit points at level 65 (532 + 4 = 536) instead of 10 hit points, correctly giving that HP growth pattern 536 hit points at level 65 instead of at level 66, which should have 540 hit points. Level 67 will have 540, if it's another increase of four hit points, and the incorrect total amount of hit points will continue unless there's another big number at another level-up down the road to fix the bug's "damage" completely.

    Edit 4: I mean, I guess it's a bit better now that it's only off by four rather than 10, but still...

    Edit 5: I wonder. Could it have gotten more off when HP increases changed to four from five at level 55? Scroll through Ganz or Volk's level-ups from level 41 and up in my project here.
     
    Last edited: Oct 7, 2014
  10. Mixt The dude that does the thing

    Joined:
    Oct 18, 2006
    Gender:
    Male
    826
    As before we did not work on the project and cannot view the source code. We have no idea why things are the way they are. Now that we can see a somewhat corrective offset it looks like something they were aware of. But there are too many unknowns. Was the -5 the bug that someone attempted to fix by adding 5 to another level (programmers are capable of doing bad math too)? Were they avoiding a more critical error and this was the best solution in their time or code restraints? Are those both bugs that they decided canceled out and weren't worth the time to fix? Your guess is just as valid as mine because we have very little to go off of here.
     
  11. Amaury Chaser

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,694
    I'll still be providing a video of Volk, even if it doesn't help much, just for the sake of visualization.

    Anyway...

    Right. But it just surprises me that there weren't more considering how much math is in the game and that it was ONLY that growth pattern of hit points that had a bug at one of the level-ups -- in this case, level 41.

    As you said, they were definitely aware of it since increases or decreases are never that drastic (there's a six-point jump between +4 and +10). It's usually something like +9, +8, +9, +9, +8, +8, +7, +8, +7, +7, +7, +6, +6, +6, +8, +7, +6, +5, +5, +5, +5, +5, +4, +4, +4, +4, +5, +5, +5, and so on.

    What do you mean by this?

    What information are we missing, exactly?
     
  12. Amaury Chaser

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,694
    Even though it won't really help, just for the sake of visualization, here is the video, @Alice's Nights, @libregkd, @Patman, @Mixt, as promised.



    Demonstrating with Volk, I show that the level 41 bug for Ganz, Volk, and Densimo (since, again, they share the same HP growth pattern) is partially fixed at level 65, though it's still off by four points. I also show the level-up before level 65 and the level-up after level 65 just to show that the developers were definitely aware of it, as Mixt mentioned.

    Like with the video in the OP, when showing the stats screen, all weapon and accessory attachments are not equipped so you can see the natural stats.
     
  13. Amaury Chaser

    Joined:
    Jan 15, 2007
    Gender:
    Male
    Location:
    Ellensburg, WA
    1,694
    @Mixt, @Patman

    I wouldn't exactly consider this a bug per se, but figured it'd be best to ask the question here since it deals with, essentially, the same thing.

    As has been mentioned earlier in the thread, characters from the human side and the Deimos side share the same growth pattern with some stats (Kharg (H) and Darc (D) have the same attack growth, Paulette (H) and Delma (D) have the same attack growth, Paulette (H) and Darc (D) have the same hit point growth, Tatjana (H) and Volk (D) have the same defense growth, and so on). The temporary characters, Samson (H) and Densimo (D), and the bonus characters, Diekbeck (H) and Choco (D), share growths with the main characters.

    Anyway, while working on leveling up my characters for my project a while ago, I came across something weird. Tatjana (H), Bebedora (D), and Diekbeck (H) have the same hit point growth, and if you look at levels 35 to 80 (using level 35 as the starting point as that's the level the bonus characters start at) in my project here, you'll see they indeed have the same hit point growth and, obviously, therefore the same total hit points, with the exception of level 80. Tatjana and Bebedora both gain two hit points at level 80 and go up to a total of 542 hit points; however, and this is where it gets weird, Diekbeck gains three hit points at level 80 and goes up to a total of 543 hit points. If Diekbeck has the same hit point growth pattern as Tatjana and Bebedora, and it should be obvious that he does since the hit point increases from levels 36 to 79 all were the same number, why would it suddenly change at level 80?

    Like I said above, I'm not exactly sure if this is a bug since there actually is a number in the box and the total hit points go up, unlike with Ganz/Volk/Densimo where the MHP spot is blank and total hit points go down. I'll have to see what happens when I level them up to level 81 and onward.

    In any case, what do you guys think could have happened here? Why did it suddenly change at level 80?