オンラインゲームについて...オンラインゲームの分類 mo(multiplayer online)型...
TRANSCRIPT
![Page 1: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/1.jpg)
書籍について オンラインゲームを支える技術
中嶋謙互 (著)
技術評論社
1
![Page 2: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/2.jpg)
渡邊研究室
染川 敦
2
![Page 3: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/3.jpg)
オンラインゲームについて
3
![Page 4: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/4.jpg)
オンラインゲームとは? コンピュータネットワークを介して専用のサーバや他のユーザのクライアントマシン (PC, ゲーム機など) と接続し、同じゲーム進行を共有することができるソフトウェアを含むサービス
ad-hocネットワークを用いたゲームもオンラインゲームに含まれるが今回はインタ-ネットを利用したオンラインゲームに限定する
4
![Page 5: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/5.jpg)
オンラインゲームの分類 MO(Multiplayer Online)型
少人数(2~100人)でリアルタイムなアクションを楽しむゲーム
可能な限りレスポンスを小さくする
扱うデータ量はわずか
MMO(Massively Multiplayer Online)型
大人数(数千人以上)が長期的にマルチプレイするゲーム
大人数を受け入れるためレスポンスをある程度犠牲にする
膨大なデータを扱う
5
![Page 6: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/6.jpg)
物理構造のパターン C/S (Client/Server) 型
クライアント/サーバ間で通信するスター型通信形式
すべての処理をサーバで行う
クライアント側の通信は単純
P2P (Peer to Peer) 型
中央サーバが存在しない端末間直接通信形式
ゲーム処理を行うサーバは補助的なものだけ
多くの機能をクライアントに組み込む
6
![Page 7: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/7.jpg)
オンラインゲームの4つの形式
7
C/S MO型 MORPG
(MO Role Playing Game)
C/S MMO型 MMORPG
(MMO Role Playing Game)
P2P MO型 対戦格闘、レース
P2P MMO型 この形式は実際のゲームにはない
![Page 8: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/8.jpg)
オンラインゲームの特徴
(オフラインゲームとの違い) 通信レイテンシ (遅延) があり、レスポンスが遅れる
サーバマシンが必要で、1台あたり数千のクライアントと同時接続する
セキュリティの問題がある
通信帯域が限られている
8
![Page 9: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/9.jpg)
ゲームのレスポンスの重要性 一般的に人間は「何かした結果、即座に何か変化が起こると興味が継続する」という特性がある
16ミリ秒に1回 (画面更新時間) の繰り返しの時間内に、
ゲーム進行を画面やサウンドで適切に提示して、即座に認知、判断できる
判断した通りに入力操作できる
入力操作をゲーム進行に即座に反映する
9
![Page 10: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/10.jpg)
通信レイテンシの目安 25ミリ秒以下
リアルタイム対戦格闘ゲームや、公式戦が可能な水準のレイテンシ
100ミリ秒以下
FPS(First Person Shooter)や一般的なゲームで必要なレイテンシ
300ミリ秒以下
MMORPGなど、アクション性の少ないC/S型のゲームで必要なレイテンシ
10
![Page 11: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/11.jpg)
レスポンスを上げる方法
11
![Page 12: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/12.jpg)
プログラミング言語の性能差 主な言語とスループット
12
言語 スループット 特性
C/C++ 100 静的言語 ネイティブコード
Java 1~10 静的言語 VM バイトコード
Ruby/Python 0.1~1 動的言語
オンラインゲームのサーバではC/C++が最も使われる
![Page 13: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/13.jpg)
ネットワークトポロジ
13
リング
ライン
メッシュ
フルメッシュ
ツリー
スター
バス
:ノード :エッジ
![Page 14: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/14.jpg)
ネットワークトポロジ(2) ゲームでは耐障害性や全体のスループットよりも、「通信レイテンシを最小にしたい」という要求の優先順位が高い
C/S型のゲームではスターを利用する
P2P型のゲームではフルメッシュ、スター、バスを利用する
14
![Page 15: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/15.jpg)
画面表示ラグを改善する工夫
(C/S MMO型) 工夫なし
15
操作
プレイヤー (クライアント) サーバ
処理終了、結果を送信
操作情報を送信
情報が到着
移動開始通知が到着 描画開始
描画終了
200ms
200ms
500ms
合計:900ms
ネットワーク遅延:200ms 移動の描画にかかる時間:500ms
![Page 16: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/16.jpg)
画面表示ラグを改善する工夫 (C/S MMO型) 工夫あり
16
操作
プレイヤー (クライアント) サーバ
処理終了、結果を送信
操作情報を送信
情報が到着 結果を待たず、描画開始
描画終了
200ms
200ms 500ms
合計:500ms
ネットワーク遅延:200ms 移動の描画にかかる時間:500ms
移動開始通知が到着 移動成功ならそのまま
![Page 17: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/17.jpg)
レイテンシによる問題
17
![Page 18: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/18.jpg)
当たり判定
18
この場合は攻撃成功
:攻撃当たり判定 :キャラクタの攻撃当たり判定
この場合は攻撃失敗
![Page 19: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/19.jpg)
シーケンス図(整合)
19
A=100 B=100 A=100 B=100
A=100 B=100 A=100 B=100
A:攻撃操作
B:回避操作
プレイヤーA プレイヤーB
A:攻撃動作開始 A:攻撃動作開始
B:回避成功 B:回避成功
整合性が維持できている
![Page 20: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/20.jpg)
シーケンス図(不整合)
20
A=100 B=100 A=100 B=100
A=100 B=90 A=100 B=100
A:攻撃操作
B:回避操作
プレイヤーA プレイヤーB
A:攻撃動作開始 A:攻撃動作開始
B:回避成功
不整合が起きる
A:攻撃成功
B=100-10 遅延
![Page 21: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/21.jpg)
結果の整合性を維持する方法 ダメージを与えた側の結果を使う
ダメージを受けた側の結果を使う
21
プレイヤーの満足感が全体で多くなるようにする
どちらの結果を採用してもどちらかに不満が残るが、多くの場合損を受ける側の結果を採用する
![Page 22: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/22.jpg)
まとめ レスポンスはゲームにとって非常に重要であるが、オンラインゲームにはレイテンシがあり、オフラインゲームと比較するとレスポンスが低い
オンラインゲームではレスポンスを上げるため、さまざまな工夫がされる
22
![Page 23: オンラインゲームについて...オンラインゲームの分類 MO(Multiplayer Online)型 少人数(2~100人)でリアルタイムなアクションを楽し むゲーム](https://reader034.vdocuments.net/reader034/viewer/2022042312/5eda1f6bb3745412b570ce25/html5/thumbnails/23.jpg)
参考資料 http://gihyo.jp/book/2011/978-4-7741-4580-8
23