Best Input Buffer Explained - Rocket Science

Rocket Science
26 Feb 201908:00

Summary

TLDRこの動画では、新しい入力バッファ設定について解説しています。パッチ1.58で物理学は変わらず、わずかな変更がVulcanの当たり判定に適用されました。また、パッチにより全員のピングが下がった理由として、サーバー間のデータ移動時間を測定するだけで他のレイテンシ要因は除外するよう変更されたと説明されています。入力バッファは、安定しないインターネット接続を考慮してサーバーが複数の入力をバッファに保持する機能です。レガシーモードではサーバーがバッファを管理し、新しいモードではゲーム自体がバッファサイズを維持します。STSは通常のゲーム速度で動作し、バッファが空の場合にはわずかにゲーム速度を上げることがあります。CSTSは、安定した接続では通常速度を保ちながら、不安定な接続ではゲーム速度を細かく調整しますが、安定した接続では余計な速度変化が生じる可能性があると結論づけています。

Takeaways

  • 🔍 パッチ1.58で物理学は変わらず、Vulcanの当たり判定が微調整された。
  • 📶 パッチ後の通信改善で、プレイヤーのピングが下がった理由は、測定対象が変更されたため。
  • 🎮 オンラインでのゲームプレイでは、入力バッファが安定したゲーム状態を保証するために使用される。
  • 🛠️ レガシーモードでは、サーバーが入力バッファの維持を行い、遅延が発生する可能性がある。
  • 🔄 新しいモードでは、ゲーム自体が入力バッファのサイズを維持し、ゲーム速度を微調整して安定性を確保する。
  • 🔉 STSモードは、通常のゲーム速度で動作し、バッファが空の場合にはわずかにゲーム速度を上げる。
  • 🚦 CSTSモードは、入力バッファのサイズを厳密に維持し、安定した接続でゲーム速度を常に調整する。
  • 📊 ネットワークパフォーマンスステータスを開くと、現在の入力バッファサイズやターゲットサイズ、入力バッファミスカウンター、ゲーム速度が分かる。
  • 💻 安定した接続では、レガシーモードとSTSモードがほぼ同じバッファサイズで動作し、CSTSはより低いターゲットを設定する。
  • 🛡️ 不安定な接続では、CSTSが最もバッファミスを減らし、最適なネットワークパフォーマンスを提供する。
  • ⚖️ 接続状況によって最適なモードが変わるが、安定した接続ではSTSが適していると思われる。レガシーモードはSTSに劣る可能性がある。

Q & A

  • パッチ1.58で物理学はどのように変化しましたか?

    -パッチ1.58では物理学は全く変化していませんが、Vulcanのヒットボックスが少し変わりました。

  • パッチで誰のpingが下がった理由は何ですか?

    -Psyonixがping測定に含まれるものを変えたためです。これにより、サーバーとデータを往復する時間のみが表示され、レイテンシーをもたらす他の要素は除外されます。

  • 入力バッファ設定とは何ですか?

    -オンラインでRLをプレイする際、ゲームはサーバーに入力を送信し、サーバーはそれに基づいてゲーム状態を計算して結果を送り返します。インターネット接続が安定していないため、サーバーは入力が正確な時間に到着するとは考えられません。そのため、サーバーは複数の入力のバッファを維持します。

  • レガシーモードでのバッファの維持方法とは何ですか?

    -レガシーモードでは、サーバーがバッファの維持を行います。前の入力を複製したり、2つの入力を結合したりしてバッファのサイズを調整します。

  • 新しい方法でバッファサイズはどのように維持されますか?

    -新しい方法では、サーバーから送られる現在のバッファサイズに基づいて自分のゲームでバッファサイズを維持します。ゲームの進行速度を微妙に増加または減少させて、バッファサイズを調整します。

  • STSモードとCSTSモードの違いは何ですか?

    -STSモードは通常のゲーム速度でほとんど時間を過ごし、バッファが常に空のときや入力が失われたときにのみ、ゲーム速度をわずかに増加します。一方、CSTSモードは、入力バッファのサイズを常に同じに保つよう努め、サーバーからの絶えずフィードバックを利用してゲーム速度を調整します。

  • 安定した接続でどのモードが最適ですか?

    -安定した接続では、CSTSが無駄な速度変化を引き起こす可能性があるため、STSの方が少し優れています。

  • 不安定な接続でどのモードが最適ですか?

    -不安定な接続では、CSTSが最も優れていますが、ゲーム速度の絶えず微調整が必要になるため、プレイヤーによってはわずかな影響を受ける可能性があります。

  • レガシーモードの欠点は何ですか?

    -レガシーモードは、STSと同じ状況でゲーム速度を増加させるだけで、入力を複製する必要がありますが、入力を複製することはゲーム速度の1%の変化よりも明らかに悪くなります。

  • 自分の接続状況を知るために使用できる統計情報は何ですか?

    -ネットワークパフォーマンス統計を開くと、現在の入力バッファサイズ、接続がどのように機能してきたかに基づいてターゲットとするバッファサイズ、サーバーで入力が複製されたり結合されたりした回数をカウントする入力バッファミスカウンター、そして現在のゲーム速度(デフォルトは120)を見ることができます。

  • パケットロスをシミュレートした場合、最初に何が起こりますか?

    -パケットロスをシミュレートすると、最初に入力バッファミスが発生します。ゲームが接続が良くないことに気付くと、ターゲットのバッファサイズを増やして不一致を吸収しようとします。

  • 動画が役に立った場合どうすればよいですか?

    -動画が役に立った場合は、周囲で共有してください。また、支援者の方々には、必要なソフトウェアを購入できるようにしてくださったことを感謝しています。もし手伝ってくれるなら、サイトで少しだけ利益を得られます。

Outlines

00:00

🚀 パッチ1.58の物理学とネットワークの変更点

HalfwayDeadが新しい入力バッファ設定について説明。パッチ1.58では物理学が変わらず、Vulcanのヒットボックスが微調整された。また、ネットワークの変更として、すべての人のpingが下がった理由が説明されており、それは測定対象が変更されたからである。入力バッファとは、オンラインでゲームをプレイする際に、サーバーがあなたの入力を保持し、ゲームの状態を計算し、結果を返して正しい情報を確認する仕組みである。インターネット接続が安定していないため、サーバーは入力が正確な時間に到着することを仮定できない。入力バッファは、入力が遅延や失われないように、複数の入力をバッファとして保持する。レガシーモードではサーバーがバッファの維持を行い、新しい方法では自分のゲームがバッファサイズを維持し、ゲーム速度を微調整してバッファを管理する。STSとCSTSは、ゲーム速度を変化させずにバッファを維持する手法であり、CSTSは安定した接続で最も効果的であるが、ゲーム速度の微調整が多く行われることがある。

05:01

📊 不安定な接続での入力バッファのパフォーマンス

HalfwayDeadは、安定した接続と不安定な接続での入力バッファのパフォーマンスを比較。通常の接続では、レガシーモードとSTSのターゲットバッファサイズは7で、CSTSは4であったが、実際のバッファサイズは常にターゲットより低かった。不安定な接続シミュレーションでは、入力バッファミスが増加し、ゲームはターゲットバッファサイズを増加させて不一致を補正する。レガシーモードでは120回、STSでは15回、CSTSでは8回の入力バッファミスが確認された。CSTSは不安定な接続での最適な選択肢であり、ゲーム速度の微調整が行われることが多く、安定した接続ではSTSの方が適していると結論づけた。また、サポート者への感謝の言葉と、今後の動画への期待を述べている。

Mindmap

Keywords

💡入力バッファ設定

入力バッファ設定とは、オンラインゲームでプレイヤーの操作がサーバーに伝わる仕組みを指します。ゲームは安定しないインターネット接続を考慮して、入力をバッファに蓄えてからサーバーに送信します。この設定は、ゲームの安定性とネットワークの安定性に大きく影響を与えます。

💡パッチ1.58

パッチ1.58は、ゲーム「Rocket League」のアップデートの一つであり、物理学エンジンの変更やVulcanのヒットボックスの調整などが含まれています。また、このアップデートでは、通信の改善にも取り組むことで、プレイヤーの接続状況に応じた入力バッファの改善が行われています。

💡Ping

Pingは、ネットワークの待ち時間を測定する指標で、ゲームのネットプレイで重要な役割を果たします。Pingの値が低いほど、ゲームのラグや遅延が少なく、スムーズにプレイできます。パッチ1.58では、Pingの測定方法が変更され、より正確な値を表示するようになったとされています。

💡ラグ

ラグは、ゲームの進行が滑らかでなく、操作と画面の反映の間に遅延がある状態を指します。インターネット接続の不安定さ、パケットロス、フレーム落ちなどが原因で発生し、プレイヤーの游戏体验に悪影響を及ぼします。入力バッファ設定の最適化がラグを減らす助けになる可能性があります。

💡サーバー

サーバーは、オンラインゲームの中心的な役割を果たし、プレイヤーの操作を集約してゲームの状態を計算し、結果をプレイヤーに返します。入力バッファの管理もサーバーによって行われ、安定したゲームプレイを実現するために不可欠です。

💡パケットロス

パケットロスは、ネットワーク経由で送信されたデータが失われる現象です。ゲームプレイでは、入力の遅延やラグの原因になり得ます。入力バッファ設定は、パケットロスが発生した場合でもゲームの安定性を保とうと努力します。

💡レガシーモード

レガシーモードは、入力バッファの維持方法のひとつで、サーバーがバッファのサイズを調整します。安定した接続でない場合、レガシーモードは入力の重複や結合を行ってバッファを維持するため、ゲームプレイに影響を与える可能性があります。

💡STSモード

STS(Standard Third-Step)モードは、新しい入力バッファ維持方法の一つで、ゲーム速度を微妙に調整してバッファのサイズを保ちます。安定した接続でほとんどの時間を通常速度で遊ぶことができますが、バッファが空になる場合、ゲーム速度をわずかに上げることがあります。

💡CSTSモード

CSTS(Constant Third-Step)モードは、STSモードと同様にゲーム速度を調整して入力バッファのサイズを維持しますが、より積極的にサーバーからのフィードバックを利用して調整を行います。安定した接続では微妙な速度変化で遊ぶことができますが、不安定な接続ではより頻繁にゲーム速度を調整する必要があります。

💡ネットワークパフォーマンスタスク

ネットワークパフォーマンスタスクは、プレイヤーが自分の接続状況を確認できる機能で、現在の入力バッファサイズやターゲットサイズ、入力バッファミスカウンター、現在のゲーム速度などが表示されます。これにより、プレイヤーは自分の接続状況を把握し、最適な入力バッファ設定を選ぶことができます。

💡ゲームスピード

ゲームスピードは、ゲームが進行する速さを指します。入力バッファ設定によっては、ゲームスピードが微妙に変動することがあり、プレイヤーの操作感覚に影響を与える可能性があります。安定した游戏体验を提供するために、ゲームスピードの変化を最小限に抑えることが望ましいです。

Highlights

HalfwayDead 确认在 Patch 1.58 中物理效果保持不变,只有 Vulcan 的对齐方式发生了微小变化。

更新后,所有玩家的 ping 值下降,这是由于 ping 测量方式的改变,仅显示数据往返服务器的时间。

Psyonix 调整了 ping 测量,以排除引起延迟的其他因素,使 Rocket League 的 ping 值更符合大多数游戏的测量方式。

输入缓冲区设置允许游戏在不稳定的网络连接下,通过服务器维护多个输入的缓冲来确保游戏状态的正确计算。

在 Legacy 模式下,服务器负责维护输入缓冲区的大小,可能会复制或合并输入以调整缓冲区大小。

新的输入缓冲区方法通过玩家自己的游戏来维持缓冲区大小,通过调整游戏运行速度来适应缓冲区的需求。

STS 模式在大多数时间里以正常游戏速度运行,仅在缓冲区频繁为空或错过输入时,才会略微提高游戏速度。

CSTS 模式尝试保持输入缓冲区大小完全一致,通过服务器的持续反馈调整游戏速度。

在稳定连接下,CSTS 模式下的游戏速度大多数时间保持正常,调整通常在 0.3-0.6% 之间。

CSTS 模式是一种预防性方法,避免缓冲区大小变化,但意味着玩家会经历更多的速度变化。

HalfwayDead 通过不同设置在不同条件下进行了测试,以提供有根据的建议。

网络性能统计可以提供当前输入缓冲区大小、目标大小、输入缓冲区丢失计数器和当前游戏速度等额外信息。

在稳定的私服连接下,所有方法感觉都不错,Legacy 和 STS 的目标缓冲区大小为 7,而 CSTS 为 4。

在模拟 25% 数据包丢失的不良连接下,CSTS 模式的输入缓冲区丢失明显少于 STS 和 Legacy 模式。

CSTS 在网络不佳时表现最佳,但需要不断调整游戏速度,一些调整幅度高达 2.5%。

对于稳定连接,CSTS 可能会进行不必要的速度调整,STS 可能是更好的选择。

Legacy 模式似乎没有太多存在的必要,因为 STS 在相同情况下仅增加游戏速度,而复制输入则更糟糕。

如果视频对你有帮助,请分享它,并关注 HalfwayDead 在 Twitter 或 Discord 上的更新。

Transcripts

play00:09

Hey guys, HalfwayDead here with a video about the new input buffer settings.

play00:14

Before I go on with that, however, I wanna make a quick mention, that I have run my testing

play00:18

tool and confirmed that the physics stayed exactly the same in Patch 1.58.

play00:23

There has only been a small change to the Vulcan, which lines up slightly differently

play00:27

with the hitbox now.

play00:30

Let's get to the networking.

play00:32

One interesting thing you might've noticed with the patch is that everyones ping went

play00:37

down.

play00:38

This isn't black magic.

play00:39

I asked Psyonix Cone about it and he confirmed to me that they just changed what is included

play00:45

in the ping measurement.

play00:47

Now it only shows the time that it takes for your data to travel to the server and back,

play00:53

excluding other things that introduce latency.

play00:56

This was done, because most games do their measurements that way and there were complaints

play01:01

about ping being higher in Rocket League.

play01:03

Judging by what I saw on Twitter, many players were already convinced that it made their

play01:07

connection better.

play01:10

With that out of the way, what are the input buffer settings?

play01:14

When you play RL online the game will send your inputs to the server, which will then

play01:18

calculate the game state based on the actions, then send the result back to you, so you can

play01:23

confirm that you have the correct information of the online game.

play01:28

Because internet connections are never 100% stable, the game can't assume that every input

play01:33

arrives at the correct time.

play01:36

Packets can take longer or shorter, or not arrive at all.

play01:40

If your game stutters and drops frames, that can also cause inputs to arrive late to the

play01:44

server.

play01:46

In order to overcome this problem, the server will maintain a buffer of multiple inputs.

play01:51

That way, it always has some backup to work with.

play01:54

Always, is not true either of course, because if you have some major packet loss or your

play01:59

ping varies a lot, then that entire buffer can run dry and you have a problem again.

play02:05

The difference between the settings lies in how the buffer is maintained.

play02:10

In the Legacy mode, this the task of the server.

play02:13

It has the option to either duplicate a previous input to increase the buffer size, or combine

play02:19

2 inputs to reduce the size.

play02:22

Whenever this happens, there will be a difference between what happens on your screen, and what

play02:27

happens on the server.

play02:29

So we would rather have this happen as little as possible.

play02:32

Generally, it doesn't happen much if you have a stable connection, but with a spotty one

play02:37

it could be different.

play02:39

So, this is where the new methods come in.

play02:41

They maintain the buffer size through your own game.

play02:46

The server will send you the current buffer size and then your game will increase the

play02:50

speed or decrease the speed at which it runs slightly.

play02:54

That will change the buffer size over time, as more or less inputs get generated compared

play02:59

to the default.

play03:00

So, unless the buffer runs completely dry, there shouldn't be a difference between the

play03:05

inputs that you use and the ones that the server uses.

play03:09

This does, however, come at the cost of varied game speed, which is why Psyonix didn't just

play03:14

remove legacy.

play03:16

The difference between the new modes is in how much they enforce the rule.

play03:20

STS will run at normal game speed the vast majority of the time.

play03:26

Only when the buffer is regularly empty or it missed an input, does it seem to increase

play03:30

the game speed by just under 1%, to fill the buffer up.

play03:35

This is similar to how legacy seems to treat the buffer, so the only difference there,

play03:40

seems to be how it fills the buffer.

play03:42

CSTS is significantly different.

play03:46

This method attempts, to the best of its ability, to keep the input buffer at exactly the same

play03:51

size.

play03:52

It uses constant feedback from the server to adjust the game speed.

play03:57

On a stable connection, you'll still have the game running at normal speed the majority

play04:01

of the time, and most adjustments are only a 0.3-0.6% differences in speed, but you rarely

play04:08

stay at standard speed for multiple seconds.

play04:11

In a sense, CSTS is a preventative method that will avoid buffer size changes, but that

play04:18

means you get more speed changes.

play04:21

If you want more info on how exactly these methods work, I've linked 2 videos in the

play04:25

description.

play04:27

That leaves us with the conclusion.

play04:30

Which one is better, which should you use?

play04:33

If the answer was that simple, then Psyonix wouldn't have given us any options.

play04:37

Still, I spent some time playing around with all of these settings in different conditions

play04:42

to give you an educated recommendation.

play04:45

You can get some extra information on your own connection by opening the network performance

play04:50

stats.

play04:51

In there, you will find a few numbers.

play04:53

Your current input buffer size.

play04:56

The size that the input buffer is trying to target, based on how well your connection

play05:01

has been performing.

play05:03

An input buffer miss counter, that will show you when inputs on the server get duplicated

play05:08

or combined.

play05:10

And lastly, the current game speed, 120 being the default.

play05:16

With my usual solid connection to a private server, all methods felt fine.

play05:21

Legacy and STS have a target buffer size of 7.

play05:25

CSTS targeted a buffer size of 4.

play05:29

Regardless of that, the buffer with Legacy and STS was always significantly below the

play05:35

target, so there didn't really seem to be a noticeable difference in the real average

play05:39

buffer size.

play05:40

I played a 5 min solo private match with each method and I only had a single input buffer

play05:47

miss during the entire run, which was likely just random.

play05:51

But what happens with a bad connection.

play05:55

When I simulate 25% packet loss, the first thing that happens are input buffer misses.

play06:01

Quite a few.

play06:03

Once the game notices your connection isn't good, which it does really fast btw, it will

play06:08

increase the targeted buffer size to even out the inconsistencies.

play06:13

With this unstable connection, even after the adjusted buffer sizes, there are more

play06:17

input buffer misses, than with the stable connection.

play06:20

Now, there is a noticeable difference in the amount of buffer misses between the methods.

play06:26

I let each method stabilize for 10 seconds and then counted input buffer misses for the

play06:31

rest of the game.

play06:33

8 with CSTS, 15 with STS, and around 120 with Legacy.

play06:41

CSTS is the king of bad connections.

play06:45

It did have to make continuous adjustments to gamespeed to achieve that though, some

play06:49

being as large as 2.5%.

play06:53

Overall it can be concluded that CSTS is the best from the networking standpoint.

play06:59

The constant tiny adjustments to game speed, however, have the potential to throw you off

play07:03

by a tiny amount.

play07:05

If they don't bother you, then you've got what you want.

play07:08

For stable connections, CSTS will probably make unnecessary changes to speed and you'd

play07:14

be slightly better off with STS.

play07:16

I don't really see the point of legacy anymore since STS seems to only increase game speed

play07:22

in the same situations where legacy duplicates inputs.

play07:26

And duplicating inputs is most definitely worse than a 1% change in game speed.

play07:31

If this video helped you, please share it around.

play07:35

Shoutout to my patrons who support me financially, which allowed me to buy the necessary software

play07:40

without a second thought.

play07:42

If you would like to help out too, you'll also get some small benefits in return, info

play07:46

on the site.

play07:48

To stay up to date, follow me on Twitter or join my Discord and I'll see you soon for

play07:52

the next video.

Rate This

5.0 / 5 (0 votes)

Related Tags
Rocket League入力バッファ通信安定パッチ1.58ゲーム物理学ネットワークラグパケットロスゲームスピードプレイヤー体験設定比較
Do you need a summary in English?