Contents — 6 sections

RicochetTanksで2つのVRChatアカウントを同じ部屋へ入れた。

両方のClientが起動。

同じWorldへ入る。

戦車も見える。

画面だけ見ると、かなり「Multiplayerが動いた」ように見える。

でも、そこまでは言わなかった。

理由は単純。

同じ部屋に入れたことと、対人ゲームが成立することは別だから。

確認できたこと

当時確認できたのは、

  • 2アカウントが同じroomへ入る
  • 両ClientでWorldが表示される
  • 見た目のAssetが読み込まれる

あたり。

これは意味のある前進。

少なくとも、2Client起動と同室までは通る。

確認できていないこと

一方で、

  • Seatの交代
  • Player間の戦車同期
  • 砲塔同期
  • 弾の同期
  • hit判定の権威
  • human-vs-human
  • round進行
  • 勝敗同期

は別。

実際、M0時点では戦車や砲塔は相手側へ同期していなかった。

それは次のM1 scope。

Screenshotは強く見えすぎる

2画面に同じWorldが映っているScreenshotは、かなり説得力がある。

でも画像だけでは、

「同じ部屋にいる」

以上のことは分からない。

同期しているか。

同じStateを見ているか。

対戦できるか。

そこは別のEvidenceが必要。

Multiplayer QAは段階を分ける

たとえば、

  1. 2Client起動
  2. 同一room参加
  3. Avatar / World表示
  4. Object sync
  5. Seat / ownership
  6. projectile sync
  7. damage authority
  8. round state
  9. human-vs-human

と分ける。

途中までPASSでも、最後まで行ったことにはしない。

「動いた」の意味を狭くする

開発報告で一番危ない言葉の一つが、

「動いた」

だと思っている。

2Clientが起動した。

動いた。

同じ部屋へ入れた。

動いた。

でも、それぞれ意味が違う。

だからRicochetTanksでは、何が通ったかを細かく書くようにした。

いまの結論

2アカウントが同じVRChat roomへ入った。

それはPASS。

でも、

対人戦が成立した、ではない。

Multiplayerは「接続できた」から先の方が長い。

PicoTowaでは、その途中経過も完成扱いせずに残していく。

Signal / 観測記録

この記録への観測を送る

反証、再現失敗、追加で試してほしいこと。届いた SIGNAL は非公開で保存し、次の実験候補として扱います。