✓英語|韓国語(한국어)
Pikachu Bolleyball(対戦ぴかちゅ~ 対戦ぴかちゅ~ 対戦ぴかちゅ~)は、1997年に「(c)Sachi Soft / Sawayakanプログラマー」と「(c)Satoshi Tauchouchi」によって開発された古いWindowsゲームです。
Pikachu Bolleyball P2P Onlineは、ゲームのピアツーピアオンラインバージョンです。インターネットを介して他の人と遊ぶことができます。これは、元のゲームをリバースエンジニアリングすることによって作成されたPikachu BolleyballのOffline WebバージョンにWeBRTCデータチャネルを統合することによって開発されました。
ウェブサイトでPikachu Bolleyball P2Pをオンラインでプレイできます:https://gorisanson.github.io/pikachu-volleyball-p2p-online/en/

オフラインバージョン:すべてのオフラインWebバージョンソースコードファイルは、ディレクトリsrc/resources/js/offline_version_js/にあります。これらは、https://github.com/gorisanson/pikachu-volleyball/tree/main/src/resources/jsのソースコードファイルと同じです。オンラインバージョンは、これらに基づいて開発されています。
WeBRTCデータチャネル:WeBRTCデータチャネルを利用しているピアツーピアオンライン関数はsrc/resources/js/data_channel/data_channel.jsに含まれています。 (Firebase Cloud Firestoreは、Webrtcを介してピアツーピア通信を確立するための調停者として使用されます。部屋の作成者がジョイナーに送信する部屋IDは、それらの間で共有されるクラウドファイアストアドキュメントのIDです。
クイックマッチ:クイックマッチサーバーとの通信はsrc/resources/js/quick_match/quick_match.jsに含まれています。 (Google App Engineはクイックマッチサーバーとして使用されます。クイックマッチサーバーは、クイックマッチを待っている人によって作成された部屋のIDを送信します。
ゲームで使用されているRNG(乱数ジェネレーター)を除いて、ゲーム状態はユーザー(キーボード)入力に対して決定論的です。したがって、RNGが両方のピアで同じ場合、ピア間で同じゲーム状態を維持するためにユーザー入力のみを通信する必要があります。このP2Pオンラインバージョンでは、RNGはデータチャネルオープンイベントの両方のピアで同じものに設定され、ユーザー入力はデータチャネルを介して通信されます。
その他の詳細については、 src/resources/js/main_online.jsのコメントを参照してください。