モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

<mini> ネットコードを書くのは難しい [Splatoon]

 ネットコード開発って大変なんですね…… あちらを立てればこちらが立たず,みたいな。

1. 2.1.0 当時の実装

 まずはこの動画をご覧ください

 スプラトゥーン無印でも多分この不具合あったんだと思います。詳しくはわからないけれど。

 基本的にホストロストによるホスト判定の引き継ぎによって誰も乗っていないヤグラがゴール側に進むという不具合です。

f:id:mntone:20181015120839p:plain

(わかりづらい図ですみません)

2. 4.1.0 (最新版) のホストによるヤグラ再判定が実装されているが……

 まずはこの動画をご覧ください

 多分以下の状態でヤグラが急加速してます。

f:id:mntone:20181015122529p:plain

 ちなみに誰がホストになってもいいようにヤグラ判定自体は全クライアントで行なっていると思います。ただ,実際にホストを切り替える処理に時間がかかってしまうためこんな状態になったのではないのかな? と。

 まあわからないですけど。少なくとも,ホスト不在状態でクライアントがヤグラ判定を進めており,新しいホストの状態反映が有効になることで急加速した,という仮説と動画の状況は一致しそうですが。

まとめ

 ネットコードって書くの難しそうだなーって思いました。

 一ついじっただけで同期ズレが起きたりとかほんと大変そうです…… むしろバグなく動いてることがすごいな,って思いますね。