ネットコード開発って大変なんですね…… あちらを立てればこちらが立たず,みたいな。
1. 2.1.0 当時の実装
まずはこの動画をご覧ください
バグか,ラグか何か知らんけど,明らかにヤグラの上に何ものってないのに自陣ゴールの方向に向かうヤグラ。乗り判定入れたら止まったけど。 #Splatoon2 #スプラトゥーン2 #NintendoSwitch pic.twitter.com/efbxC2PQJi
— モノトーンベッチュー (@mntone) December 18, 2017
スプラトゥーン無印でも多分この不具合あったんだと思います。詳しくはわからないけれど。
基本的にホストロストによるホスト判定の引き継ぎによって誰も乗っていないヤグラがゴール側に進むという不具合です。
(わかりづらい図ですみません)
2. 4.1.0 (最新版) のホストによるヤグラ再判定が実装されているが……
まずはこの動画をご覧ください
あー回線落ちたくさんいるぅヤグラ全然動かないし・・・ホクサイなんかヤバ・・・ウワァァァァァァ#Splatoon2 #スプラトゥーン2 #NintendoSwitch pic.twitter.com/MP21ud7VpD
— あさき (@signalize06) October 13, 2018
多分以下の状態でヤグラが急加速してます。
ちなみに誰がホストになってもいいようにヤグラ判定自体は全クライアントで行なっていると思います。ただ,実際にホストを切り替える処理に時間がかかってしまうためこんな状態になったのではないのかな? と。
まあわからないですけど。少なくとも,ホスト不在状態でクライアントがヤグラ判定を進めており,新しいホストの状態反映が有効になることで急加速した,という仮説と動画の状況は一致しそうですが。
まとめ
ネットコードって書くの難しそうだなーって思いました。
一ついじっただけで同期ズレが起きたりとかほんと大変そうです…… むしろバグなく動いてることがすごいな,って思いますね。