Results 1 to 2 of 2
  1. #1
    Player
    Aurelle_Deresnels's Avatar
    Join Date
    Oct 2021
    Posts
    80
    Character
    Aurelle Deresnels
    World
    Jenova
    Main Class
    Goldsmith Lv 90

    Total Cast Time of Actions Affected by Frames per Second in an Unintended Way

    Date & Time: Still current as of May 25, 2022; starting as far back as ARR launch
    Frequency: Many times during every fight (every action taken, though most noticeable for those on the global cooldown (GCD))
    World name: Jenova, and all other Worlds
    Character name: Aurelle Deresnels, and all other characters
    Retainer name: Not affected
    NPC name: Not affected
    Monster name: All
    Class/Level: All Disciples of War and Disciples of Magic, Level 1-90
    Party or solo: Both solo and party content
    In-game time: Any
    Area and coordinates: Any
    Housing: Not affected
    Steps:
    1. Repeat this experiment once on a system locked to 60 FPS using the in-game setting (System Configuration -> Display Settings -> Frame Rate), and once on a system locked to 51 FPS by external means such as a graphics card control panel. Alternatively, repeat this experiment once on a system locked to 15 FPS using the in-game setting, and once on a system with very high (at least 100+) unlocked FPS. These can be the same system with different settings, in order to eliminate variables other than FPS.
    2. To aid comparison between the different experimental conditions, it may be easiest to video record the gameplay under both experimental conditions and play back both videos simultaneously.
    3. For ease of demonstration and worked example, conduct this experiment on a MNK with gear that produces a 1.94s GCD length (shown as the weaponskill recast time) under Enhanced Greased Lightning III (the level 76 trait, also known as Greased Lightning 4 among players). While this bug does appear on every combat job, level, animation lock length, and GCD length, different GCD lengths interact differently with any given FPS value, so it is easiest to demonstrate with an example that players have already worked through (as it is a commonly recommended Best in Slot GCD for 6.1 MNK). Further, caster tax complicates the issue where it applies, so the math is easiest on a job without full-length cast times.
    4. Use any GCD action, such as Dragon Kick.
    5. While the global cooldown is still on hold, queue up another GCD action - such as Twin Snakes - so that the client executes it as soon as it can do so.
    6. The client applies an uneven delay after the global cooldown concludes, depending on its FPS. This effectively produces a longer GCD length than the tooltip states for recast time of weaponskills. Icy Veins provides a summary description of this effect: "the game waits until the next frame is rendered after your GCD is up to execute the action you currently have queued." (Scroll down to section 7.5.) Detailed discussion of this effect would become unwieldy to place under reproduction steps, so it will be handled separately in a bonus section below.
    7. Observe the delay in the execution of the next GCD.
    8. While the global cooldown is still on hold, queue up another GCD action such as Demolish.
    9. Again observe the delay described in step 6, compounded by the previous delay.
    10. Continue executing GCD actions until the difference in delays is clearly visible. Performing a level 90 MNK rotation would be a suitable demonstration, as long as clipping the GCD by means other than the new frame delay is carefully avoided.

    This issue has been widely reproduced and well documented in raiding communities across all regions, particularly as a disadvantage to players on consoles and/or older systems. It will only become more pressing as microchip shortages continue and the patch 7.0 graphical update is applied. Players are already being forced to choose between wearing weaker gear than their fellow players or losing entire GCDs out of buff windows and/or fights, hampering their ability to perform at a high level.

    Much like the accepted bug that action cast times are dependent on connection speed (latency, sometimes referred to as "ping"), this issue disadvantages players purely due to properties of the Earth systems upon which they play the game. Likewise, this bug is also straightforward to fix. In fact, there are two straightforward solutions that are very common in game design:
    1. When starting a new action on a new frame, account for the elapsed time between the end of the global cooldown / animation lock and the new frame, crediting that time towards the progress of the newly started action.
    2. Instead of starting actions only on new frames, handle all actions on a separate "physics update" cycle independent of frame rate and use frames only for graphical display. (If physics updates happen with sufficient granularity, purely local games can get away with starting new actions only on new physics updates, treating the update rate as the "Planck time of the game". This game being distinctly client-server, it would be necessary to still account for the elapsed time between the end of the global cooldown / animation lock and the new physics update, in case of any system issues disrupting the update rate.)


    Connection Specs

    Irrelevant - occurs across all connections

    ■ PC Specs

    To obtain the system information, open the FFXIV launcher and select Config → System Information → Display.

    -=-=-=-=- System Information -=-=-=-=-

    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    Irrelevant - occurs across all systems (though to varying degrees as detailed)


    Bonus Section: Details of FPS Dependence

    Observant readers may have noticed that new GCD actions starting on new frames suggests that 50 FPS should perform well for a 1.94 GCD, not 51 FPS. Unfortunately, the recent trend in public player resources discussing this issue has been to simplify explanations, as we saw with the Icy Veins guide, or to barely discuss it at all in favor of referring to an unnamed third-party tool as The Balance's website does.

    To get into the details of what players have discovered and documented, we must instead look back to the FPS section of a player-made 5.3 MNK optimization guide. This guide was hosted and maintained as a Google Document, so providing a clear reference is a bit tricky:
    • The Internet Archive can provide an authoritative reference, but the page will try and fail to load certain elements - reloading won't work and will send you back to the top, so just "send an error report" and cancel the report to get rid of the popup, at least for a while.
    • The original Google Document provides the best reading experience, but is vulnerable to the removal of the relevant content.
    • For an archive that doesn't suffer from the popups getting in the way, there's this Imgur album. It's not authoritative, but you can read it without the popups and cross-reference it with the Internet Archive snapshot.

    This guide works through the issue in detail and with visualizations, including server corrections to the GCD and the impact on buff windows. It also confirms that this issue applies to all actions, not just GCD actions, though it is easiest to demonstrate with GCD actions. (Honestly, the whole thing is a pretty neat read.) However, being written for a previous iteration of MNK, it works through the 1.95s GCD that was recommended for MNK at the time; this does not showcase the effect on current play as directly, hence my choice of the currently recommended 1.94s GCD for the replication steps.

    And the reason for locking at 51 FPS? Turns out that's not about the game, but about the fact that FPS limiters have small inconsistencies and generally wind up locking slightly lower than advertised, so telling a system to lock at 51 FPS winds up producing slightly over 50 FPS in practice, which is pretty good. Telling a system to lock at 50 FPS winds up producing slightly over 49 FPS in practice, which is very bad due to waiting almost a whole frame every GCD.
    (9)

  2. #2
    Player
    Asuka-Hykiri's Avatar
    Join Date
    May 2013
    Posts
    88
    Character
    Mad Hybrid
    World
    Diabolos
    Main Class
    Reaper Lv 90
    Be interesting if SE can parse DPS from console players to see how bad it could be against PC gamers with higher end gear too.
    (2)