Questions about missed notes

Discussion in 'General Discussion' started by Pithy, Aug 2, 2021.

  1. Pithy

    Pithy I Feel Loved

    Messages:
    2,620
    This isn't a bug report, just a request for information. Feel free to move or ignore this thread, busy devs!

    Missed notes are the bard version of fizzles. They happen a lot and they're pretty annoying. I have lingering doubts about the AKuracy of our missed note code, since AK bards I've talked to say that missed notes were hardly a thing there. Of course, AK is long gone, memory is fallible, and those bards played under different circumstances than today's Luclin bards.

    From @solar's posts [1], [2], we know a few things about missed notes:
    • Missed notes are more common on some songs than on others. "Harder" songs have larger values of "Fizzle Adj" on lucy.alkabor.com. For example, pac has a fizzle adjustment of 15. As I understand it, the fizzle adjustment gets subtracted from your instrument skill before the "miss this note?" roll.
    • Bards can miss fewer notes by gaining levels, raising instrument skills, raising CHA and DEX, wearing a Crown of Energy (the only Brilliance of Ro item bards can use), or asking a chanter for Intellectual Superiority.
    • Brilliance of Ro (+20 effective casting level) and Intellectual Superiority (+6) stack.
    • Hybrids have an innate fizzle reduction.
    Questions:
    • Are bards flagged as hybrids? Do they get the innate fizzle reduction? I'd guess they do, since bards (like knights, rangers and BLs) don't get specialization skills or the Spell Casting Mastery AA line.
    • Does Brilliance of Ro add 20 points to a bard's effective casting skill, or 100? @solar said 20 here and 100 here.
    • Is effective casting skill subject to a cap?
    • Is the contribution of DEX and CHA to missed-note reduction subject to a cap?
    Again, I have zero expectation of info sharing here. Just figured I'd post this on the off chance the summary helps other players or @solar feels like divulging some seekrets.
     
  2. solar

    solar Administrator Staff Member

    Messages:
    1,194
    I initially implemented that Brilliance of Ro effect incorrectly. It's simply +20 to your abjuration, percussion, whatever skill is being considered. Same for the buff versions of it like Intellectual Superiority.

    I am not certain about this, as it's from my memory and I may be confusing AK and live servers, but there was a bug where if a bard bought the first level and only the first level of the fizzle AA (Mastery of the Past I think), they would never fizzle any song. I know for sure this worked because I (ab)used it but I don't remember if it was that way on AK or just on live servers, or what the timeline was for this. This may account for people not remembering missed notes being a thing. I don't think it's interesting to reproduce that bug because it would completely remove this mechanic from the game and we couldn't have interesting discussions like this one :)

    I'll try to describe how it works. I pulled this logic from analyzing the client code. I may have made mistakes, but this is my understanding of it.

    - If you have Mastery of the Past type AA, check that against the spell level and give 100% to succeed if appropriate. That's all for those.

    - If a spell doesn't have a fizzle adjustment ( example http://lucy.alkabor.com/spell_1196.html ) and you aren't being hindered by a debuff like THO's, you have the maximum chance to succeed. For a bard and other melees that's 95%, for the 7 classes with specialization and SCM that's 98% (see below). That's it, no DEX/CHA or anything else involved.

    - The logic below only applies for spells that have a fizzle adjustment or when you have a THO-like debuff on you. I mentioned the fizzle adjustment value being overridden here, but at this point the decision to run the check has already been made. The fizzle adjustment is a factor in the chance, so it's the factor value that's being overridden here.

    - Determine the 'fizzle adjustment factor':
    - If the spell level (the level your class can cast it) is 56 or higher, set the fizzle adjustment factor to 0.
    - If the spell is Superior Healing and you are not a Cleric (DRU/SHM/PAL) then the fizzle adjustment factor is set to 0. This is because non clerics gets this at a higher level which is also a factor in this logic, so the higher level would otherwise punish them with more fizzles for the same spell - a spell that was a staple healing spell in Kunark. This helps DRU/SHM fizzle this spell just as rarely as a CLR.
    - If you are a PAL/RNG/SHD and the spell's level is 41 or higher, set the fizzle adjustment factor to 0. This does not apply to BST or BRD.
    - If you are a BRD and the fizzle adjustment factor is greater than 15, cap it to 15. This doesn't do anything because there aren't any spells like this, they are all 15 max in the data already, but it seems whoever did this wanted to make sure that bard spells have a cap on how hard they are to sing even if a designer made a spell that's more difficult.

    - Compute the 'prime stat' factor. This is simply WIS, INT or (CHA+DEX)/2, divided by 10. With 255 stats you end up with 25 here. If you had 150 CHA and 150 DEX you'd get a 15 here.

    - Compute the 'effective spell level' factor. This is the level to cast the spell minus 1, capped at 50. A level 60 spell would get a value of 50 here.

    - Compute the 'effective spell casting skill' factor. This is your skill in Abjuration/Percussion Instruments/etc plus your Brilliance of Ro effects. This is not capped. Normally you would get a 235 here because that's the cap on skills, plus 20 from the VT item, plus whatever buffs you have like familiars and such.

    - Determine the 'random penalty' factor. This is a random 0-10 roll.

    - Add up the factors to generate a chance value:
    spellLevelAdjustment = 5 * (18 - effectiveSpellLevel);
    int chance = 0
    + effectiveSpellCastingSkill // + 235
    + (spellLevelAdjustment + primeStatBonus) // + -135 (-160 + 25)
    - randomPenalty // - 10
    - spellFizzleAdjustment; // - 0
    - Apply some caps. For bards, the lower limit is 1% and the upper limit is 95%. For everyone else it's 5-95.

    You can see here and if you study the fizzle adjustments in the lower level spells, that they intended for there to be a difficulty curve. Fizzles are a huge problem at low levels, and the biggest factor seems to be your skill level. The enchanter fizzle buffs are very powerful at low levels, relatively speaking. Since higher level spells have their fizzle adjustments ignored and people's casting skills are 235, fizzles are mostly gone at max level, though that doesn't stop people from pointing out the uncommon instances where they fizzle 2 or 3 times in a row.

    - Finally, consider specialization and SCM AA. This check happens even if the fizzle adjust was 0 and the spell already had a 95% chance to succeed.
    - SCM adds 2/5/10% to the chance, specialization skill adds 21 for your 200 level skill and 6 for the others.
    - The cap is allowed to go to 98% instead of 95% if you have specialization.

    - Roll 100 to determine success/failure. That's all.

    I didn't crunch all the data for specific spells but maybe someone else can do that for each class and it would be more clear on how big/small a problem it really is. When I say spells > level 41 or whatever, it's really only a handful of spells that a paladin or ranger would use, and if you look at the adjustment values, for the most part, fizzles are already not a problem at max level. People notice bards because they're casting a lot more than they do on other classes, and because it disrupts their flow. It's also possible I messed up, or somehow the code got messed up after I tested things, and it's not actually giving people the 95% that was intended. If we have more information on how to improve this, with some supporting evidence, I'd be happy to work on it again and make it better.
     
    Pithy, Ravenwing, Hove! and 2 others like this.
  3. showstring

    showstring I Feel Loved

    Messages:
    3,332
    I very often see two or three fizzles in a row, the 95% chance does not feel accurate.

    I'm just checking my logs and the amount of double/triple fizzles from all the raids is very common. I had a quadruple fizzle trying to start selos song a few days ago. It feels quite broken.

    upload_2021-8-3_8-45-6.png

    upload_2021-8-3_8-46-36.png

    upload_2021-8-3_8-48-12.png

    upload_2021-8-3_8-49-24.png

    upload_2021-8-3_8-50-29.png



    painful amount of fizzles :(
     
    Last edited: Aug 2, 2021
    Hove! likes this.
  4. Hove!

    Hove! People Like Me

    Messages:
    523
    I just pretend I'm in Vintage and only cast songs level 50 and below so I don't miss notes.
     
  5. solar

    solar Administrator Staff Member

    Messages:
    1,194
    Consecutive fizzles are possible with any non zero fizzle chance. Maybe someone who's good with logs could parse their average success rate on Lcea?
     
  6. showstring

    showstring I Feel Loved

    Messages:
    3,332
    I remember bard twist macros being a thing before /melody was introduced.

    I've never been able to get any sort of song twist macro to even remotely work here due to all the fizzles.

    Also how do we know the "client decompiles" are actually what was used on EQMac? It could just be some sort of legacy code repository that some dev put in years ago, and not actually what was used by the server. Are we just assuming the code was used because it was "in the client", or is there proof?
     
  7. solar

    solar Administrator Staff Member

    Messages:
    1,194
    I found the mental corruption bug in the client code, so at least that part was shared between both. It's possible that the server code deviated from the client code. We know that happened for at least some things.

    As far as a melody macro, if it's just blindly starting and stopping songs without feedback about fizzles and other failures, I don't think it will be very reliable. Likely the people who had success with that were using a more sophisticated macro or they were using that mastery of the past bug I mentioned.
     
  8. Lenas

    Lenas I Feel Loved

    Messages:
    2,968
    The client and the server need to communicate together to work. If they don't agree on the value of something, you get things like LD's, desyncs, etc. Being able to interpret what you see from the client along with information from packets is the only way to make it work from my understanding. The client is basically the source of truth.
     
  9. thucydides

    thucydides I Feel Loved

    Messages:
    800
    I have plenty of success using twist macros for things like 2x resist song or amplification + psalm or whatever. Sure, there are occasional fizzles, and I can think of a few times back in velious that enough fizzles in a row got me dragon feared or gorenaire slowed, but that was pretty rare and in general missing a pulse or two of a song isn't making or breaking my gameplay.
    What songs are you trying to twist that won't work?
     
  10. Pithy

    Pithy I Feel Loved

    Messages:
    2,620
    Whew, thanks for sharing all that, solar! Lotta interesting information there. It'll take me a while to digest, I'm sure.

    A couple of things strike me, though, off the top of my head:
    • DEX, CHA and Brilliance of Ro only matter for songs that have fizzle adjustments.
    • These songs have fizzle adjustments: Selo, pacs, psalms, resist choruses, charms, chants.
    • These songs don't: mana songs, OoS/HoS, DA, mezzes, warsong/McVax, Riz, SoS, Highsun.
    • For songs with fizzle adjustments, BoRo is like adding 200 DEX and 200 CHA.
    • If you have BoRo, DEX and CHA don't affect fizzles as long as your (DEX + CHA)/2 is above 100.
    • If your DEX and CHA are at the Luclin cap of 255, BoRo still helps a bit, but it only gives you 25% of the value it gives a low-stat toon.
    • If you can cap both DEX and CHA at 305 in PoP, BoRo stops mattering at all.
    • No matter what you do, you'll always have a 1 in 20 chance of fizzling any song once, a 1 in 400 chance of back-to-back fizzles, and a 1 in 8000 chance of triple fizzles.
    Assuming I mathed gud, anyway! Other gnerds should check my work.
     
    solar likes this.
  11. Mokli

    Mokli I Feel Loved

    Messages:
    2,455
    I feel like there is a lag component contributing to fizzles. I get them quite often on raids with my Druid on Nature's Touch, yet rarely when simply 3 boxing.
     
    showstring likes this.
  12. Haynar

    Haynar Administrator

    Messages:
    3,637
    Bard missed notes seem way worse than caster spell fizzles by far.

    I don’t remember fizzles being calculated by the client. Not sure how old the fizzle code is in the client or when it was last used. Stuff like that got moved to the server.

    And maybe it was only for stand alone tutorial. Maybe it was never part of the live client.

    Not sure.
     
    Cadsuane and showstring like this.
  13. showstring

    showstring I Feel Loved

    Messages:
    3,332
    Before the "client decompile" patch, I felt fizzles were fairly good and accurate.
    Were they based on Torven's data parses? I'd trust those a lot more...
     
    Cadsuane likes this.
  14. Haynar

    Haynar Administrator

    Messages:
    3,637
    The ones I did were based partly on decompile. And then adjusted with some additional fudge factors to get a good feel. Similar to experiences in the era.
     
  15. solar

    solar Administrator Staff Member

    Messages:
    1,194
    Fizzles only need to be done on the server side, but the spell code and the spell data were kept in sync between client and server. From what I understand they were built from the same code files, but some NPC AI related things were conditionally excluded in the client build. We have some evidence of this with empty stub functions that are present in the client but have no code in them. There is no NPC hate related calculation stuff in the client, not even in the old beta builds I looked at. The spell effect values are computed independently by both client and server. For things like how much damage a nuke deals or whether a spell fizzled, it's all server side, just due to how that works, but buffs, DoTs, durations and other things are done on both sides and expected to match. This is fortunate because we're able to figure out how a lot of things work from the client. It's possible that the spell fizzle was somehow reworked and a special version was used on the server. Maybe only for bards.
     
  16. Walex

    Walex I Feel Loved

    Messages:
    663
    Just ran a test on the dev server. I left a bard afk spamming Lceas for a few hours.

    Total casts: 24,148
    Fizzles: 1,120
    Fizzle Percent: 4.63%

    46 instances of two fizzles in a row
    4 instances of three in a row
     
    Cadsuane, Pithy, solar and 1 other person like this.
  17. Torven

    Torven I Feel Loved

    Messages:
    2,742
    Did a cursory look at an AK bard log. There are plenty of double fizzles in here. Mostly from lulls but some from what look like selos or other songs. It's hard to tell because logs don't capture what is being cast.

    Examples

    [Wed Jun 12 13:40:49 2013] A Needlescale Basilisk appears at ease.
    [Wed Jun 12 13:40:51 2013] Your song ends.
    [Wed Jun 12 13:40:52 2013] You miss a note, bringing your song to a close!
    [Wed Jun 12 13:40:52 2013] Your song ends.
    [Wed Jun 12 13:40:56 2013] An Animated Earthwalker appears at ease.
    [Wed Jun 12 13:40:59 2013] Your song ends.
    [Wed Jun 12 13:41:03 2013] An Earthen Mudslinger appears at ease.
    [Wed Jun 12 13:41:09 2013] An Earthen Mudslinger appears at ease.
    [Wed Jun 12 13:41:10 2013] Your song ends.
    [Wed Jun 12 13:41:14 2013] A Deadly Earth Armadillo appears at ease.
    [Wed Jun 12 13:41:18 2013] Your song ends.
    [Wed Jun 12 13:41:22 2013] A Stone Abomination appears at ease.
    [Wed Jun 12 13:41:27 2013] Your song ends.
    [Wed Jun 12 13:41:33 2013] A Towering Rock Formation appears at ease.
    [Wed Jun 12 13:41:35 2013] Your song ends.
    [Wed Jun 12 13:41:36 2013] You miss a note, bringing your song to a close!
    [Wed Jun 12 13:41:36 2013] Your song ends.
    [Wed Jun 12 13:41:40 2013] A Deadly Earth Armadillo appears at ease.
    [Wed Jun 12 13:41:44 2013] Your song ends.
    [Wed Jun 12 13:41:45 2013] You miss a note, bringing your song to a close!
    [Wed Jun 12 13:41:45 2013] Your song ends.

    [Wed Jun 12 14:27:14 2013] Your song ends.
    [Wed Jun 12 14:27:15 2013] You miss a note, bringing your song to a close!
    [Wed Jun 12 14:27:15 2013] Your song ends.
    [Wed Jun 12 14:27:16 2013] You miss a note, bringing your song to a close!
    [Wed Jun 12 14:27:16 2013] Your song ends.
    [Wed Jun 12 14:27:22 2013] Your song ends.
    [Wed Jun 12 14:27:22 2013] Your target is out of range, get closer!
    [Wed Jun 12 14:27:24 2013] Your target is out of range, get closer!
    [Wed Jun 12 14:27:26 2013] You are out of food and drink.
    [Wed Jun 12 14:27:26 2013] You miss a note, bringing your song to a close!
    [Wed Jun 12 14:27:26 2013] Your song ends.

    [Wed Jun 26 12:16:23 2013] You have entered Plane of Earth.
    [Wed Jun 26 12:16:27 2013] It begins to rain.
    [Wed Jun 26 12:16:35 2013] You miss a note, bringing your song to a close!
    [Wed Jun 26 12:16:35 2013] Your song ends.
    [Wed Jun 26 12:16:37 2013] You miss a note, bringing your song to a close!
    [Wed Jun 26 12:16:37 2013] Your song ends.
    [Wed Jun 26 12:16:42 2013] Your feet move faster.

    I checked for skillups and he appears to be at max skill
     
    Break likes this.
  18. Break

    Break People Like Me

    Messages:
    610
    I'd be interested to hear from bards if this was their experience on AK. I'm curious why you would not want this in if it was the case on AK. It seems to me that /melody was introduced ~2 years after our timeline. If the fizzle AA was really giving bards 100% chance of completing a cast on AK, TAKP would be putting bards at a disadvantage that they most likely never saw during or after our timeline.
     
    Devour_Souls and showstring like this.
  19. Smudge

    Smudge People Like Me

    Messages:
    258
    Are you asking why you wouldn't want to recreate a bug that allows bards to spend 3aa to never fizzle a song level 1-65 when the actual ability only works on songs up to 58?
     
    showstring likes this.
  20. solar

    solar Administrator Staff Member

    Messages:
    1,194
    Maybe this can be the new monk AC meme?
     
    Mechaike likes this.
  21. Break

    Break People Like Me

    Messages:
    610
    I understood the purpose of this server was to recreate Al'Kabor. I never played a bard there, but I'd definitely like to play one in the same style that was available.
     
  22. Break

    Break People Like Me

    Messages:
    610
    Well, I was actually thinking that if you needed to make a sacrifice to the class balance gods for making bards never fizzle, you could just shave 5 more ac off the monk soft cap.

    Then everyone wins.
     
    John Stark likes this.
  23. Walex

    Walex I Feel Loved

    Messages:
    663
    Monk AC getting fixed!? Nice! Thanks, Solar
     
  24. Smudge

    Smudge People Like Me

    Messages:
    258
    From the FAQ

    "Is this server going to be just like AK?
    Short answer, Yes and No. Long answer, While it will be Time locked and support only the clients that were last seen on AK initially, we will fix a number of issues that existed on AK. We plan to have less bugs overall and more completeness to quests for all expansions. We do plan to support additional PC clients or change the client that is considered official as time goes on."
     
  25. Darchon

    Darchon I Feel Loved

    Messages:
    3,627
    What was the DEX/CHA value on this bard? I feel like my bard with 190 DEX/127 CHA fizzles way more than 5%.
     
  26. Pithy

    Pithy I Feel Loved

    Messages:
    2,620
    AKuracy vs. balance is a perennial debate that's taken on a million shapes and forms over the years. The questions are rarely clear-cut or uncontentious, but IMO the devs have done a great job at answering them, on the whole.

    Who knows if a "never miss notes" bug even existed on AK, though?
     
  27. Pithy

    Pithy I Feel Loved

    Messages:
    2,620
    If I'm reading solar's pseudocode right, at that DEX/CHA with no BoRo you're looking at about a 15% fizzle chance, or 1 per 6-7 songs on average.

    Edit: that's for songs with fizzle adjustments, like pac and Selo. You should hit the 5% chance (lowest possible) on songs without fizzle adjustments, like Lcea, OoS, mez, DA, Denon.
     
    Last edited: Aug 4, 2021
  28. Darchon

    Darchon I Feel Loved

    Messages:
    3,627
    Yea that sounds like about the rate I am experiencing. Sounds like I need to acquire 60 DEX and 120 CHA somehow!
     
  29. showstring

    showstring I Feel Loved

    Messages:
    3,332
    I think it's a fair question. I'd also ask the same question. If this functionality existed on EQMac then why isn't it being reproduced here?
     
    John Stark likes this.
  30. Walex

    Walex I Feel Loved

    Messages:
    663
    Yeah this bard was 255/255 but since I was singing Lceas it didn't matter. I'll try to emulate your dex/cha and see what i come up with.