雑記です。
最近、ゲームのインフラに興味があります。
きっかけは、「3DSのオンラインサービスが終了する」ことに伴う、モンハン4Gの協力プレイの終了でした。
モンハン4Gは、10年前のゲームながら、未だに根強い人気があるタイトルです。その協力プレイの終了ということで、ちょっとした話題になっていました。
以下はその時に書いた記事です。
思い返すと、モンハン4は、個人的には初めての、ネットワーク越しのオンラインプレイだったんですよね。
その前のモンハン3rdは、「アドホック通信」で友達とプレイしていました。
アドホック通信とは?
アドホックモード(英:ad hoc mode)とは
1対1で無線通信するときに使う無線LANのモード。
もう少し具体的に書くと
無線LANの通信方式のひとつ
であり
「無線LANアクセスポイントを介さないで通信しますよ」モードのこと
です。
なるほど、「アドホック」というのは一般的な用語だったんですね。
bluetoothとの違いは?アドホック通信を選択した経緯は?等、気になります。
初代モンハンの通信方法は?
モンハンは、最初からオンラインプレイを前提として開発されています。
ネットワークを通じてユーザー間のコミュニケーションが楽しめる「誰でも参加できる多人数協力アクションゲーム」をコンセプトに、次代を見据えたタイトルとして企画されたのが『モンスターハンター』であった。
発売されたのは2004年。
私は幼稚園児の年で、その当時のインターネット事情を知りません。
オンラインプレイというのはどの程度普及していたのでしょう?その中でモンハンは何が画期的だったのでしょうか?気になります。
当時を知る手がかり
ゲームの通信の進化
「ラグ」=「遅延」+「帯域」+「パケットロス」
この分解は非常にわかりやすいです。
遅延は処理のシステム洗練によって
帯域は物理層の技術の進歩によって
パケットロスはRUDPによって対応している
というその後の話がよくわかります。
TCP / UDPのイメージができた
TCP / UDP、知識だけはなんとなーくあったんですが、
「どっちがどっち」問題
TCPは普通に使われてるみたいだけど、UDPは何に使われてる?問題
これが解決しました。
UDPとは,パケットを一方的に送りつけてそれで終わりという,ごく単純な仕組みのもので,パケットロスなどが発生して相手に届かなかった場合でも知らんぷりをするので,信頼性は低い。また後から送ったものが,先に送ったものより先に届くこともあって困りものだが,その分処理が速いという特徴がある。
それに対しTCPはもう少し複雑で,パケットが届かなかった場合には,再送が行われる仕組みになっている。郵便で言うところの書留のような仕組みで受信の確認が行われるので,信頼性が高い半面,処理はどうしても遅くなる。メールやブラウザなど,ゲーム以外の通信用途では,ほぼこちらのTCPが使われていているのだが,ゲームのような処理スピードがシビアに要求されるものでは,それでは間に合わない場合があるのだ。 とは言うものの,ちゃんと届いたかどうか分からないUDPでは,ゲームでも困ることも多い。そこで考案されたのが,RUDP(Reliable-UDP,Reliable=信頼できる)という仕組みだ。
RUDPでは,受信の確認はいちいち行われないものの,次に送信するパケットには「これまで相手から受け取ったパケットの番号」が記載されることになっている。相手から送られてきたパケットを見れば,相手がどこまでこちらのパケットを受け取っているか分かるので,抜けがあったら再送すればいい。プレイ中,常に相互に通信が発生するゲームならではの方式といえるだろう。 また再送が必要な重要なデータと,再送の必要がない,あまり重要でないデータをくっつけて送るなんてことも可能で,まさにUDPとTCPのいいとこどりの通信方式だ。
モンハンは、80体を同期
ネットワークゲームは、オフラインのゲームと比べて制約が多く、要素の取捨選択が重要になりますが、『モンスターハンター』では“同期させるモンスターは大型のみ”と決め、プレイヤーがキャラクターを正確に動かせることを優先し、マルチプレイながら、快適に遊べるアクションゲームを目指しました。
と、大型モンスター一体の同期から始まったモンハンでしたが
従来はホストに担わせていたデータ管理を、各メンバーに分散処理するなど、徹底した効率化が図られ、その結果によって世界中のユーザーを対象に、最大で80体ものモンスターが跋扈する世界で狩りを楽しめる世界が構築されたというわけだ。
現在は上限80体ほどを同期できているようです。
次回作は「見える範囲で」30匹ほど映し出されています。
(0:27 くらい)
MHWが「フィールド全体で」80匹だったと考えると、とてつもない進化ですね。どのような仕組みで実現しているのでしょうか。
マシンパワーが上がったから、ゴリ押し?通信の改良?気になりますね・・・
CEDEC 2024 行ってみようかな・・・
今回の紹介した記事は、悉くCEDECというイベントのものだったんですよね。
ゲーム系の技術イベントらしい。今年は8/21 - 8/23 @パシフィコ横浜で開催するみたい。
本職以外の参加ができるなら、行ってみようかな・・・
以上、最近の興味・学んだことでした。
お読みいただきありがとうございました☺️