P2P
Download
1 / 28

P2P でマルチプレイヤ・ゲームを行うには : 理想と現実 - PowerPoint PPT Presentation


  • 117 Views
  • Uploaded on

P2P でマルチプレイヤ・ゲームを行うには : 理想と現実. 飯村 卓司. 自己紹介. 電通大出身です 大学にはかなり長い間在籍しました どうやったら長期間在籍できるかは別途ご相談を NAIST 奈良先端科学技術大学院大学と長い名前 現在修士 2 年 NAIST 良いトコ一度はおいで ゲームゲームと浮ついたことを言っていても ちゃんと研究として認めてくれ … ていると信じています. ネットワーク・ゲーム. 一言でネットワーク・ゲームといってもいろいろあります 1人~ 10 人程度まで ルーレット、囲碁、オセロ、麻雀 主にすばやい動作の必要ないもの

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' P2P でマルチプレイヤ・ゲームを行うには : 理想と現実' - calix


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

P2Pでマルチプレイヤ・ゲームを行うには:理想と現実

飯村 卓司


自己紹介

  • 電通大出身です

    • 大学にはかなり長い間在籍しました

      • どうやったら長期間在籍できるかは別途ご相談を

  • NAIST

    • 奈良先端科学技術大学院大学と長い名前

    • 現在修士2年

    • NAIST良いトコ一度はおいで

      • ゲームゲームと浮ついたことを言っていてもちゃんと研究として認めてくれ… ていると信じています


ネットワーク・ゲーム

一言でネットワーク・ゲームといってもいろいろあります

  • 1人~10人程度まで

    • ルーレット、囲碁、オセロ、麻雀

      主にすばやい動作の必要ないもの

  • 数人~数十人、百人程度まで

    • FPS、RTS

      主にすばやい動作が必要なもの

  • 数百人~数千、数万人

    • RPG、アバター(チャット)

      主に多人数ということに重点を置き、他人とのかかわりを重視するもの

      ネットワーク・ゲームのうち、複数人が同時に遊ぶものをMulti-player Online Game (MOG)と呼びます


MOGをとりまく諸所の単語

  • ゲームの種類

    • テーブル, FPS, RTS, RPG, アバター

  • 課金方法

    • 一ヶ月固定料金、アイテム課金

  • サーバの運用形態

    • マッチング・サーバ、中央集権サーバ

  • 外部との連携

    • オフライン・イベント、ピザの宅配、メッセンジャ


1ユーザの立場から…サーバがあると困るんです

  • 今までのゲーム

    • ゲーム機、ソフト、オプションの全てを買うことができた

  • ネットワーク・ゲーム

    • ゲーム機、ソフト、オプションは買えても、サーバは買えないことが多い

      だから、サーバがなくなると

      遊べなくなってしまうんです

      ぶっちゃけ鉄騎大戦のサービスがいつ終わるかと戦々恐々なんです


サーバがなくなると、何が起こる?

  • マッチング・サーバ形式

    • ゲームの進行はユーザ・ノードで行うので、ゲームを続けることができる

    • サーバの管理していたデータは消える

  • 中央集権サーバ形式

    • ゲームの進行役がいなくなるので、ゲームの続行が不可能

      ゲームの進行役が居なくなることと、データが消えることが問題

      ・ゲームの進行役をサーバにやらせてはいけない

      ・ゲームのデータをサーバに持たせてはいけない


サーバをなくそう!

サーバがなくなってもユーザ・ノードはなくならない

何故なら、ゲームを遊ぶためには遊ぶ人、即ち

ユーザ・ノードが必要だから。

ゲームの進行役もデータの保管も

ユーザ・ノードで行う

要するにP2P

最近のゲーム用PCやゲーム機は能力高いものが多いので

なんとかなるかも

とりあえずやってみよう!


当面の目標と解決策

目標

ゲーム進行を妨げる要因を中央集権化させない

  • 消滅することでゲーム進行を妨げる要因

    • ゲームの進行役

    • データの消滅

  • 消滅することでゲーム進行を妨げない要因

    • ユーザへの課金

      ゲームの進行役とデータの消滅を救う


大まかに考えると

  • ゲーム進行役の分散

    • データを分割することでのサーバ機能の分散

    • ゲームのルールを知っているノードによる管理

      その他に必要な事

      • 応答性の重視

  • データ消滅への対策

    • 複数のノードで保持しあう


Zoned federation model

ゲームワールド全体

Zone W

Zone X

X

W

Y

V

Zone Z

Z

Zone Y

Zone V

提案: Zoned Federation Model

  • (1)サーバ機能の分散

    • 局所性と構造を元にデータを分割

    • Zone

  • (2)分割されたデータの一貫性保持

    • 調停ノードの導入

    • Zone owner

  • (3)応答性の維持

    • 調停ノードとデータ要求ノードの直接接続

  • (4)データの保管

    • データの管理と保管を分離

    • DHTを用いてデータ保管


(1)サーバ機能の分散

局所性と構造に着目

  • データおける局所性:あるノードの用いるデータは全体の一部

    • 全体の一部のデータのみを把握することでゲーム世界の共有が可能

    • サーバ機能はデータを単位として分割可能

  • ゲームにおけるデータの構造

    • 座標、方向、数、状態など様々

    • ある程度の関連性を持つ

      • 関連性を基にした分割

    • 柔軟な分割単位の指定

      • 文字列による分割単位へのアクセス

        Zone:データ分割の単位

Game

Map

MapA

川の場所

町の場所

MapB

森の場所

村の場所

プレイヤの現在地

プレイヤA

プレイヤB

ログイン情報


(2)分割されたデータの一貫性保持

ゲーム進行に伴う各Zoneのデータの変更が生じる。各ゲーム参加ノードがデータの変更を要求する。

調停ノードが必要

  • 各分割単位(Zone)ごとに一つの管理ノードが必要

  • 調停ノードがゲームのルールを知っている必要がある

    • ゲーム参加ノードが管理ノードを行う


Zoneの分割統治

  • データ管理ノードの決定

    • 指名制

      • ゲーム参加ノードの事前登録

      • 指名のための複雑化

    • 立候補制

      • ゲーム参加ノードのみが立候補

      • 指名部分を分離による単純化

  • 本提案では立候補制を選択

    • インフラが複雑化することを避ける


(3)応答性の維持

  • ゲームは応答性に敏感

    • 200ms以下での応答性が必要

      • 人間がストレスを感じる

  • クライアント・サーバ形での実現手法

    • クライアントとサーバを直接接続する

      • 中継ノードを介さない

  • 本提案での実現手法

    • 調停ノードとデータを必要とするノードを直接接続する

    • クライアント・サーバ形と同程度の応答性を確保


ゲーム(データ管理)

ゲームA

ゲームB

ゲームC

DHT

データ保管

(4)データの保管

  • データの保管とデータの管理を分割

    • データの保管にデータの管理能力は必要ない

    • 複数ゲームでのデータ保管

  • Distributed Hash Table (DHT) の利用

    • DHT

      • 複数のノードでハッシュ表を共有

      • 検索に対してO(log N)のノードを経由することで検索可能

    • ZoneをHash Keyとする

    • Zoneに関係するデータを全て保存

      • データ管理ノードの決定

      • データ要求ノードの登録

      • Zoneのデータの記録


Game Program

libcookai

Pastry

Network

ちょっと宣伝・・・現在できている実装

  • libcookai

    • ライブラリとして提供

      • C言語にて実装

    • 動作確認済みプラットホーム

      • NetBSD- (1.6, 2.0*)

      • FreeBSD-4.*/ -5.*

      • Vine Linux 2.6

      • Sun OS 5.8

      • Mac OS X

    • http://libcookai.sourceforge.net

  • DHT

    • オンラインゲームに特化させたPastry実装

      • C言語にて実装

      • Hash関数としてSHA-1を使用

        • 破られたというけれど大丈夫?

      • PastryはMS lab. だけどパテント大丈夫?

        • DHTであれば良いのでDHT層は分離可能

  • Distributed Rally-X

    • サンプル実装


問題点

サーバ機能をユーザ・ノードへと分散した時の問題

  • 悪意のあるノード

    • データの改竄

    • チート

    • 個人情報など取り扱い注意データの管理

    • 不正を行ったノードの排除

  • お金の取らせ方

    • 課金情報の管理

    • いろいろな課金方法

  • ゲーム参加ノードの一定量確保

    • 遊んでいる人の数が減った場合のデータ保管

  • サーバ機能の分離による問題

    • 課金無しで遊べてしまう可能性

    • ベンダの手を離れたゲームをベンダは許すのか

  • ゲーム特有の問題

    • 速度の確保


  • 悪意のあるノードの問題(1)

    • データ改竄、チート

      • 中継ノードによる攻撃

        主にDHT層での攻撃

      • 接続したノードそのものからの攻撃

        主に調停ノードとデータを必要とするノードの間での攻撃

    • 対策

      • 相対的に多い(であろう)善意のノードによる監視

        • 多数決論理での排除

          • 機械的判定

          • 人間による判定

        • 善意のノードのふりをする悪意のあるノード群からの攻撃に弱い

      • ゲームベンダなどによる抜き打ち検査

        • 特権ノードを用いての排除

          • 抜き打ち検査用に作業logを記録/報告

        • ゲームベンダがサポートをやめたときの問題の再発

      • その他の対策

        • 複数の経路を使っての防御

          • 完全な乱数とXORしたデータの二つを複数経路を用いて送信

          • データ保管ノードを複数のDHTを用いて検索


    悪意のあるノードの問題(2)

    • 個人情報など取り扱い注意データの管理

      • 自由に検索できることによる問題

      • どこまでが取り扱い注意の個人情報なのか

        • 課金情報

        • 友達情報

        • ハイスコア、個人所有のキャラクタ

          対策

        • 自由に検索できなくする

        • 取り扱い注意データ用サーバの導入

          • 課金情報などの管理

        • 対象鍵暗号などでの個人情報の隠蔽

          • 暗号鍵を所持している者が接続することで解除

          • 手元に持っていることと同じ

          • 実は無意味


    悪意のあるノードの問題(3)

    • 不正を行ったノードの排除

      • DHTオーバレイからの排除

        • 接続時に判定

          • 一時的なIPアドレスによる規制

          • ユーザ名とパスワードの組などでのログインによる規制

        • 発見次第排除


    お金の取らせ方

    お金を稼げないと企業は参入しない

    • 課金情報の管理

      • 個人情報保管問題とかぶる

        • 課金サーバの導入

      • お金はベンダによるサービスに対する対価

        • GMによる監視

        • ベンダ主導イベント

        • 新規要素の追加

          無くても(一応)ゲームの続行は可能か?

    • いろいろな課金方法のサポート

      • 月額課金

        • 接続時に認証

      • アイテム課金

        • 課金を行った者のみが使うことのできるデータ

        • 個々のデータそれぞれに対して認証が必要

          データを分割している場合、個々のデータに対する認証はコスト高

        • 認証を行うデータの保管場所

          • 暗号化などをしない場合は認証されたノードにしかデータを置けない

          • 暗号化をしても不安だとすれば、サーバを用意するしかない?


    ゲーム参加ノードの一定量確保

    • 遊んでいる人の数とデータ保管は反比例

      • プレイ人口の変化

        • 一日の変化

          夜は多いけれど朝には減る

        • 時間のたつにつれて減少するプレイ人口

          さすがに10年も経ってしまったゲームは……

      • 対策

        • データ保存期間の設定

          • 保存する期間の違うデータのサポート(重要なデータはできるだけ取っておくように)

          • お金を払った人のデータは優先して残す

        • 保存期間とユーザ数に対する保存量の比率によるデータ削除

          • ひとつのノードが保持するデータ量を一定量までにする(うまく分散させる必要がある。特にノード数が減った場合)

        • データ保管のみを行うサービス

          • データの保管のみであることから、ゲームベンダである必要は無いISPなどによるデータ保管サービス


    ユーザ

    ゲームベンダ

    ISP

    マネジメント

    コンテンツ

    コンテンツ

    サーバ

    ストレージ

    サーバ

    AAA

    サーバ

    CPU

    サーバ

    ISPも巻き込んだ運用形態

    ネットワーク

    回線の提供

    アカウント管理

    新しいイベントや

    ゲームの提供

    ゲームプレイヤ

    CPU資源

    ストレージ資源

    バックアップ

    耐障害性の確保


    サーバ機能の分離による問題

    • 課金無しで遊べてしまう可能性

      クライアントのみ入手すればユーザ・ノードだけで遊ぶことができる

      • ゲーム本体の販売での売り上げ既存のコピーソフトの問題と同じ問題を抱える

        • ネットワークを用いた認証はしやすい

      • サービスの充実によるユーザの引きとめ

        • ベンダ主導イベント

        • 新要素の定期的な配信

  • ベンダの手を離れたゲームをベンダは許すのか

    • これを許してもらわないことには話を続けられない?

    • ベンダ不在による管理不能状態

      • 不正防止パッチのサポート停止


  • その他の問題

    • ゲーム特有の問題

      • 速度を確保しなければならない

        • PKIを使っての認証は時間がかかる

    • 問題はサーバをなくすだけで解決するのか

      • サービスの停止には怯えるのだろうか

      • 問題の本質は別のところにあったりはしないか

    • P2P的問題

      • 初期ノード問題、NAT越え


    問題点のまとめ

    • 問題山積みです

      • P2Pにすることによる問題

        • 悪意のあるノード

        • 取り扱い注意データ

        • ユーザ数の減少

      • ベンダの存在による問題

        • 課金

        • サーバレスを許さないベンダ

      • ゲーム特有の問題

        • 速度を確保しようとするとPKIは大変カモ

      • 問題はサーバ機能の分散で解決したのか?

        • 結局サービスの停止に怯えるのではないだろうか

        • けれど、(一応)遊び続けることはできそうだ


    未来像

    • 地球の裏側のノードが昼間のゲーム人口減少を支える?

      • データがノードを追って地球をぐるぐると移動していく…

    • 複数ゲームの同じネットワーク・ゲーム・プラットホームの使用

      • ゲーム間での情報共有が容易に

        • 同タイトルの新版へのデータ移行

          • EverQuestとEverQuest2の間で~

        • 別タイトルでのデータ共有

          • ポケモンなんたらとピカチュウなんたらの間で~

            ゲーム人口の特定ゲームへの固定化を避ける

    • 作り捨てMOGの発生

      • アップデートなどが無い、長期のサポートが無い

    • ゲーム以外との情報共有

      • IM (now playing TEKKI TAISEN)

      • ピザ宅配

        いろいろ考えて!そろそろ新しいMOGがほしいよ!


    時間の許す限りディスカッション

    意見募集!

    [email protected]るとうれしいです

    せっかく作ったのにー


    ad