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

Loading in 2 Seconds...

play fullscreen
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
slide1

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

飯村 卓司

slide2
自己紹介
  • 電通大出身です
    • 大学にはかなり長い間在籍しました
      • どうやったら長期間在籍できるかは別途ご相談を
  • NAIST
    • 奈良先端科学技術大学院大学と長い名前
    • 現在修士2年
    • NAIST良いトコ一度はおいで
      • ゲームゲームと浮ついたことを言っていてもちゃんと研究として認めてくれ… ていると信じています
slide3
ネットワーク・ゲーム

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

  • 1人~10人程度まで
    • ルーレット、囲碁、オセロ、麻雀

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

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

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

  • 数百人~数千、数万人
    • RPG、アバター(チャット)

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

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

slide4
MOGをとりまく諸所の単語
  • ゲームの種類
    • テーブル, FPS, RTS, RPG, アバター
  • 課金方法
    • 一ヶ月固定料金、アイテム課金
  • サーバの運用形態
    • マッチング・サーバ、中央集権サーバ
  • 外部との連携
    • オフライン・イベント、ピザの宅配、メッセンジャ
slide5
1ユーザの立場から…サーバがあると困るんです1ユーザの立場から…サーバがあると困るんです
  • 今までのゲーム
    • ゲーム機、ソフト、オプションの全てを買うことができた
  • ネットワーク・ゲーム
    • ゲーム機、ソフト、オプションは買えても、サーバは買えないことが多い

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

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

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

slide6
サーバがなくなると、何が起こる?
  • マッチング・サーバ形式
    • ゲームの進行はユーザ・ノードで行うので、ゲームを続けることができる
    • サーバの管理していたデータは消える
  • 中央集権サーバ形式
    • ゲームの進行役がいなくなるので、ゲームの続行が不可能

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

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

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

slide7
サーバをなくそう!

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

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

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

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

ユーザ・ノードで行う

要するにP2P

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

なんとかなるかも

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

slide8
当面の目標と解決策

目標

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

  • 消滅することでゲーム進行を妨げる要因
    • ゲームの進行役
    • データの消滅
  • 消滅することでゲーム進行を妨げない要因
    • ユーザへの課金

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

slide9
大まかに考えると
  • ゲーム進行役の分散
    • データを分割することでのサーバ機能の分散
    • ゲームのルールを知っているノードによる管理

その他に必要な事

      • 応答性の重視
  • データ消滅への対策
    • 複数のノードで保持しあう
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を用いてデータ保管
slide11
(1)サーバ機能の分散

局所性と構造に着目

  • データおける局所性:あるノードの用いるデータは全体の一部
    • 全体の一部のデータのみを把握することでゲーム世界の共有が可能
    • サーバ機能はデータを単位として分割可能
  • ゲームにおけるデータの構造
    • 座標、方向、数、状態など様々
    • ある程度の関連性を持つ
      • 関連性を基にした分割
    • 柔軟な分割単位の指定
      • 文字列による分割単位へのアクセス

Zone:データ分割の単位

Game

Map

MapA

川の場所

町の場所

MapB

森の場所

村の場所

プレイヤの現在地

プレイヤA

プレイヤB

ログイン情報

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

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

調停ノードが必要

  • 各分割単位(Zone)ごとに一つの管理ノードが必要
  • 調停ノードがゲームのルールを知っている必要がある
    • ゲーム参加ノードが管理ノードを行う
slide13
Zoneの分割統治
  • データ管理ノードの決定
    • 指名制
      • ゲーム参加ノードの事前登録
      • 指名のための複雑化
    • 立候補制
      • ゲーム参加ノードのみが立候補
      • 指名部分を分離による単純化
  • 本提案では立候補制を選択
    • インフラが複雑化することを避ける
slide14
(3)応答性の維持
  • ゲームは応答性に敏感
    • 200ms以下での応答性が必要
      • 人間がストレスを感じる
  • クライアント・サーバ形での実現手法
    • クライアントとサーバを直接接続する
      • 中継ノードを介さない
  • 本提案での実現手法
    • 調停ノードとデータを必要とするノードを直接接続する
    • クライアント・サーバ形と同程度の応答性を確保
slide15

ゲーム(データ管理)

ゲームA

ゲームB

ゲームC

DHT

データ保管

(4)データの保管
  • データの保管とデータの管理を分割
    • データの保管にデータの管理能力は必要ない
    • 複数ゲームでのデータ保管
  • Distributed Hash Table (DHT) の利用
    • DHT
      • 複数のノードでハッシュ表を共有
      • 検索に対してO(log N)のノードを経由することで検索可能
    • ZoneをHash Keyとする
    • Zoneに関係するデータを全て保存
      • データ管理ノードの決定
      • データ要求ノードの登録
      • Zoneのデータの記録
slide16

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
    • サンプル実装
slide17
問題点

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

    • 悪意のあるノード
      • データの改竄
      • チート
      • 個人情報など取り扱い注意データの管理
      • 不正を行ったノードの排除
  • お金の取らせ方
    • 課金情報の管理
    • いろいろな課金方法
  • ゲーム参加ノードの一定量確保
    • 遊んでいる人の数が減った場合のデータ保管
  • サーバ機能の分離による問題
    • 課金無しで遊べてしまう可能性
    • ベンダの手を離れたゲームをベンダは許すのか
  • ゲーム特有の問題
    • 速度の確保
slide18
悪意のあるノードの問題(1)
  • データ改竄、チート
    • 中継ノードによる攻撃

主にDHT層での攻撃

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

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

  • 対策
    • 相対的に多い(であろう)善意のノードによる監視
      • 多数決論理での排除
        • 機械的判定
        • 人間による判定
      • 善意のノードのふりをする悪意のあるノード群からの攻撃に弱い
    • ゲームベンダなどによる抜き打ち検査
      • 特権ノードを用いての排除
        • 抜き打ち検査用に作業logを記録/報告
      • ゲームベンダがサポートをやめたときの問題の再発
    • その他の対策
      • 複数の経路を使っての防御
        • 完全な乱数とXORしたデータの二つを複数経路を用いて送信
        • データ保管ノードを複数のDHTを用いて検索
slide19
悪意のあるノードの問題(2)
  • 個人情報など取り扱い注意データの管理
    • 自由に検索できることによる問題
    • どこまでが取り扱い注意の個人情報なのか
      • 課金情報
      • 友達情報
      • ハイスコア、個人所有のキャラクタ

対策

      • 自由に検索できなくする
      • 取り扱い注意データ用サーバの導入
        • 課金情報などの管理
      • 対象鍵暗号などでの個人情報の隠蔽
        • 暗号鍵を所持している者が接続することで解除
        • 手元に持っていることと同じ
        • 実は無意味
slide20
悪意のあるノードの問題(3)
  • 不正を行ったノードの排除
    • DHTオーバレイからの排除
      • 接続時に判定
        • 一時的なIPアドレスによる規制
        • ユーザ名とパスワードの組などでのログインによる規制
      • 発見次第排除
slide21
お金の取らせ方

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

  • 課金情報の管理
    • 個人情報保管問題とかぶる
      • 課金サーバの導入
    • お金はベンダによるサービスに対する対価
      • GMによる監視
      • ベンダ主導イベント
      • 新規要素の追加

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

  • いろいろな課金方法のサポート
    • 月額課金
      • 接続時に認証
    • アイテム課金
      • 課金を行った者のみが使うことのできるデータ
      • 個々のデータそれぞれに対して認証が必要

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

      • 認証を行うデータの保管場所
        • 暗号化などをしない場合は認証されたノードにしかデータを置けない
        • 暗号化をしても不安だとすれば、サーバを用意するしかない?
slide22
ゲーム参加ノードの一定量確保
  • 遊んでいる人の数とデータ保管は反比例
    • プレイ人口の変化
      • 一日の変化

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

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

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

    • 対策
      • データ保存期間の設定
        • 保存する期間の違うデータのサポート(重要なデータはできるだけ取っておくように)
        • お金を払った人のデータは優先して残す
      • 保存期間とユーザ数に対する保存量の比率によるデータ削除
        • ひとつのノードが保持するデータ量を一定量までにする(うまく分散させる必要がある。特にノード数が減った場合)
      • データ保管のみを行うサービス
        • データの保管のみであることから、ゲームベンダである必要は無いISPなどによるデータ保管サービス
slide23

ユーザ

ゲームベンダ

ISP

マネジメント

コンテンツ

コンテンツ

サーバ

ストレージ

サーバ

AAA

サーバ

CPU

サーバ

ISPも巻き込んだ運用形態

ネットワーク

回線の提供

アカウント管理

新しいイベントや

ゲームの提供

ゲームプレイヤ

CPU資源

ストレージ資源

バックアップ

耐障害性の確保

slide24
サーバ機能の分離による問題
  • 課金無しで遊べてしまう可能性

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

      • ゲーム本体の販売での売り上げ既存のコピーソフトの問題と同じ問題を抱える
        • ネットワークを用いた認証はしやすい
      • サービスの充実によるユーザの引きとめ
        • ベンダ主導イベント
        • 新要素の定期的な配信
  • ベンダの手を離れたゲームをベンダは許すのか
    • これを許してもらわないことには話を続けられない?
    • ベンダ不在による管理不能状態
      • 不正防止パッチのサポート停止
slide25
その他の問題
  • ゲーム特有の問題
    • 速度を確保しなければならない
      • PKIを使っての認証は時間がかかる
  • 問題はサーバをなくすだけで解決するのか
    • サービスの停止には怯えるのだろうか
    • 問題の本質は別のところにあったりはしないか
  • P2P的問題
    • 初期ノード問題、NAT越え
slide26
問題点のまとめ
  • 問題山積みです
    • P2Pにすることによる問題
      • 悪意のあるノード
      • 取り扱い注意データ
      • ユーザ数の減少
    • ベンダの存在による問題
      • 課金
      • サーバレスを許さないベンダ
    • ゲーム特有の問題
      • 速度を確保しようとするとPKIは大変カモ
    • 問題はサーバ機能の分散で解決したのか?
      • 結局サービスの停止に怯えるのではないだろうか
      • けれど、(一応)遊び続けることはできそうだ
slide27
未来像
  • 地球の裏側のノードが昼間のゲーム人口減少を支える?
    • データがノードを追って地球をぐるぐると移動していく…
  • 複数ゲームの同じネットワーク・ゲーム・プラットホームの使用
    • ゲーム間での情報共有が容易に
      • 同タイトルの新版へのデータ移行
        • EverQuestとEverQuest2の間で~
      • 別タイトルでのデータ共有
        • ポケモンなんたらとピカチュウなんたらの間で~

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

  • 作り捨てMOGの発生
    • アップデートなどが無い、長期のサポートが無い
  • ゲーム以外との情報共有
    • IM (now playing TEKKI TAISEN)
    • ピザ宅配

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

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

意見募集!

名刺忘れました。[email protected]をメモって頂けるとうれしいです

せっかく作ったのにー

ad