1 | |||||||
---|---|---|---|---|---|---|---|
2 | General Information | ||||||
3 | -Researched By: MoonBunnie#0001 & Made Possible By: MHW Modding Discord | ||||||
4 | -Feel free to reach out to me on Discord for more details. Feedback and suggestions are also welcome. | ||||||
5 | -Link for this page: https://bit.ly/MHWEffectsOfFPS | ||||||
6 | -Phemeto previously put together a great video discussing and documenting this topic: https://youtu.be/tfoWlviTRkM | ||||||
7 | -I highly recommend Phemeto's video if you want an overview of how framerate can impact gameplay, in general. | ||||||
8 | -The charts below quantitatively illustrate some of the more noticeable effects of frame rate, including those found by Phemeto. | ||||||
9 | -In general, many aspects related to timing are affected by frame rate, but the degree will vary. | ||||||
10 | |||||||
11 | Data Source and Methodology | ||||||
12 | -Datamined rates and delays used below are taken directly from in-game files for base MHW. | ||||||
13 | -Charts are generated from theoretical calulations based on datamined values or tested in-game values. | ||||||
14 | -Data was tested for accuracy by sampling behavior at various frame rates, but may not be accurate in all situations. | ||||||
15 | -Actual results will vary in-game, due to variance in frame rate when playing, and variance in input timing by the player. | ||||||
16 | |||||||
17 | Conclusion | ||||||
18 | Many aspects of Monster Hunter World were implemented assuming it would run at a stable and exact 60fps. The details below explain two known causes of frame rate having an effect on gameplay in Monster Hunter World, due to this assumption being made. 1) MHW can adapt to other frame rates due to most code working based on time rather than frames, but this can still result in timing errors, due to the discrete nature of frames. MHW does not have any mechanisms to mitigate these effects, such as tracking any extra time spent waiting and letting that extra time roll over to the next calculation. For example, Pierce Ammo Lv3 is defined to tick once every 3 frames (at 60fps). Meaning it must wait exactly 0.05s or more after the previous tick, before it can tick again (similar to a cooldown). At 30fps, 1 frame is 0.0333s, so the ammo always waits for the 2nd frame before ticking again (0.0666s between ticks). At 60fps, 3 frames is exactly 0.050s, so it ticks at the expected rate. At 61fps, 3 frames is 0.0492s, so the ammo always waits for the 4th frame before ticking again (0.0655s between ticks). 2) Some components of Monster Hunter World effectively do not adapt to varying frame rates, and always require a fixed number of frames regardless of current frame rate. This means running at a higher frame rate can speed up certain actions and attacks. Because of these two things, the best advice appears to be to: | ||||||
19 | 1) Run the game at an exact multiple of 60fps to avoid adverse effects 2) Choosing a higher multiple can be marginally beneficial | ||||||
20 | |||||||
21 | Pierce Ammo Lv2 & Lv3 - Tick Rate by FPS | Comparison vs 60fps | |||||
22 | Datamined rate is 20 ticks per second. (1 tick per 3 frames at 60fps) | FPS | Ticks/s | % Delta | |||
23 | 30 | 15.0 | -25.00% | ||||
24 | 40 | 20.0 | 0.00% | ||||
25 | 50 | 16.7 | -16.67% | ||||
26 | 60 | 20.0 | 0.00% | ||||
27 | 90 | 18.0 | -10.00% | ||||
28 | 120 | 20.0 | 0.00% | ||||
29 | 144 | 18.0 | -10.00% | ||||
30 | 180 | 20.0 | 0.00% | ||||
31 | |||||||
32 | |||||||
33 | |||||||
34 | |||||||
35 | |||||||
36 | |||||||
37 | |||||||
38 | |||||||
39 | |||||||
40 | |||||||
41 | |||||||
42 | |||||||
43 | |||||||
44 | Cause #1: Optimal tick rate at multiples of 20fps. | ||||||
45 | |||||||
46 | |||||||
47 | Ele Ammo (non-Dragon) - Tick Rate by FPS | ||||||
48 | Datamined rate is 5 ticks/second. (1 tick per 12 frames at 60fps) | ||||||
49 | |||||||
50 | |||||||
51 | |||||||
52 | |||||||
53 | |||||||
54 | |||||||
55 | |||||||
56 | |||||||
57 | |||||||
58 | |||||||
59 | |||||||
60 | |||||||
61 | |||||||
62 | |||||||
63 | |||||||
64 | |||||||
65 | |||||||
66 | |||||||
67 | |||||||
68 | |||||||
69 | |||||||
70 | Cause #1: Optimal tick rate at multiples of 5fps. | ||||||
71 | |||||||
72 | |||||||
73 | Bowgun Recoil+1 - Fire Rate by FPS | Comparison vs 60fps | |||||
74 | Tested in-game at various frame rates between 15 and 140, using a macro for precise testing. | FPS | Shots/s | % Delta | |||
75 | In all tests, firing interval was found to closely match 42 frames at 60fps + 3 frames at current FPS. (0.70s + 3 frames) | 30 | 1.250 | -6.25% | |||
76 | 40 | 1.290 | -3.23% | ||||
77 | 50 | 1.316 | -1.32% | ||||
78 | 60 | 1.333 | 0.00% | ||||
79 | 90 | 1.364 | 2.27% | ||||
80 | 120 | 1.379 | 3.45% | ||||
81 | 144 | 1.385 | 3.85% | ||||
82 | 180 | 1.395 | 4.65% | ||||
83 | |||||||
84 | |||||||
85 | |||||||
86 | |||||||
87 | |||||||
88 | |||||||
89 | |||||||
90 | |||||||
91 | |||||||
92 | |||||||
93 | |||||||
94 | |||||||
95 | |||||||
96 | |||||||
97 | Cause #2: Due to the fixed component of 3 frames at current frame rate, higher FPS is generally better. | ||||||
98 | Cause #1: Also optimal fire rate at multiples of 10/7 fps (i.e 1.42857fps). Just stick to multiples of 10fps for this one. | ||||||
99 |