Upload
satoshi-yamafuji
View
18.542
Download
0
Embed Size (px)
Citation preview
ログレスの戦闘から見るデータ同期について
2015.11.28
山藤 智之
本人の説明
• 山藤 智之(やまふじ さとし)• 株式会社 Aiming 所属• 携わった作品– BladeChronicle–剣と魔法のログレス –剣と魔法のログレス – いにしえの女神 –
Aiming ?
• オンラインゲームの会社• 開発から運営業務まで一通り
ログレス?
• 剣と魔法のログレス – いにしえの女神 ––マーベラス様との共同開発– Android, iOS でサービス中– 2013 年末より日本でサービス開始– 2015 年 10 月より台湾でサービス開始–国内累計 700 万 DL 達成
どんなゲーム?
• MMORPG–ストーリーあり–戦闘あり–仲間とチャット
• 常時接続型
戦闘??
• 複数のプレーヤーが共闘• 多彩なスキルをやりくり• コマンド選択方式• リアルタイムで進行
実現したかったこと
• ディレクター–マルチプレイのわいわい感!–ある程度ちゃんとした同期
• エンジニア–操作した際のレスポンスの良さ• 行動毎に止まるとかは嫌!
–全体的にテンポを良く
懸念点
• スマホで作るの初めて–端末の性能の限界がわからない–性能差もわからない–通信の安定度がわからない• 基地局跨いだ時って、接続維持されるの?• どれぐらい遅延があるの?• 常時接続って実際できるの?
–とりあえず動くように作ろう!
実現したかったこと
• ディレクター–マルチプレイのわいわい感!–ある程度ちゃんとした同期
• エンジニア–操作した際のレスポンスの良さ• 行動毎に止まるとかは嫌!
実現したかったこと
• ディレクター–マルチプレイのわいわい感!–ある程度ちゃんとした同期
• エンジニア–操作した際のレスポンスの良さ• 行動毎に止まるとかは嫌!
ある程度ちゃんとした
同期
・・・ってなんやねん!
同期?
• 同期( synchronization )• 複数の事象(イベント)が同時に起こる
こと。単に同時というだけでなく、以下のような意味あいがある。
• 人為的な制御など、原因があって同時に起こっている(起こしている)。
• それぞれの事象に協調性がある• (Wikipedia より )
同期?
• 同期( synchronization )• 複数の事象(イベント)が同時に起こる
こと。単に同時というだけでなく、以下のような意味あいがある。
• 人為的な制御など、原因があって同時に起こっている(起こしている)。
• それぞれの事象に協調性がある• (Wikipedia より )
ログレスの戦闘で言う同期?
• 同じ戦闘を共有するプレーヤー全員に、同じ結果を見せないといけない–誰かだけ順序が違う–誰かだけダメージが違う
• 誰かだけ・・・は NG !!
ログレスの戦闘で言う同期?
• 一般のゲーム機に置き換えると…
モニタゲーム機 スピーカ
ログレスの戦闘で言う同期?
• 一般のゲーム機に置き換えると…
モニタゲーム機 スピーカコントローラープレーヤーがゲーム世界に干渉する為に使う入力機器
ログレスの戦闘で言う同期?
• 一般のゲーム機に置き換えると…
モニタゲーム機 スピーカ
ゲーム機プレーヤーからの入力を処理しゲーム世界に変化を与える
コントローラープレーヤーがゲーム世界に干渉する為に使う入力機器
ログレスの戦闘で言う同期?
• 一般のゲーム機に置き換えると…
モニタゲーム機 スピーカ
モニタ/スピーカゲーム機からの入力をえてゲーム世界に起こった事象を視覚(聴覚)情報としてプレーヤーに伝えるゲーム機プレーヤーからの入力を処理しゲーム世界に変化を与える
コントローラープレーヤーがゲーム世界に干渉する為に使う入力機器
ログレスの戦闘で言う同期?
• 一般のゲーム機に置き換えると…
モニタゲーム機 スピーカ何かを入力
ログレスの戦闘で言う同期?
• 一般のゲーム機に置き換えると…
モニタゲーム機 スピーカ入力に基づいた処理を行った結果
ログレスの戦闘で言う同期?
• 一般のゲーム機に置き換えると…
モニタゲーム機 スピーカ結果を確認
ログレスの戦闘で言う同期?
• 一般のゲーム機に置き換えると…
モニタゲーム機 スピーカ結果を確認結果を観測できて初めて同期!!
ログレスの戦闘で言う同期?
• 一般のゲーム機に置き換えると…
モニタゲーム機 スピーカ
ログレスの戦闘で言う同期?
• スマホのゲームに置き換えてみる…
インターネット
何かを入力
ログレスの戦闘で言う同期?
• スマホのゲームに置き換えてみる…
インターネット
入力に基づいた処理を行った結果
ログレスの戦闘で言う同期?
• スマホのゲームに置き換えてみる…
インターネット
結果を確認
ログレスの戦闘で言う同期?
• スマホのゲームに置き換えてみる…
インターネット
ログレスの戦闘で言う同期?
• ちょっと置き換えてみる–コントローラー => クライアント–ゲーム機 => サーバー–モニタ/スピーカ => クライアント–配線機器 => 通信
• 同期を取るのは、出力するクライアント
どうやって同期?
• やりとりするデータを検討–誰が?–何をする?
どうやって同期?
• やりとりするデータを検討–誰が?–何をする?
• とりあえず考えてみよう…
どうやって同期?
インターネット攻撃します!
どうやって同期?
インターネット攻撃します!
どうやって同期?
インターネット攻撃します!
攻撃しました! 攻撃しました!
!?
どうやって同期?
• やりとりするデータを考えてみる…–瞬間的に「何かをしろ!」ではマズイ–少し受信が遅れたりしても、おかしな事に
なってしまう
どうやって同期?
• やりとりするデータを考えてみる…–瞬間的に「何かをしろ!」ではマズイ–少し受信が遅れたりしても、おかしな事に
なってしまう–少しだけ未来の情報ならズレる事は少ないは
ず?–未来の情報を貰うとなると…
どうやって同期?
• やりとりするデータを再検討–何時?–誰が?–何をした?
どうやって同期?
• やりとりするデータを再検討–何時?–誰が?–何をした?
• よし!これでいける!!
どうやって同期?
インターネット03:00に攻撃します!
00:00
どうやって同期?
インターネット03:00に攻撃します!
01:00
どうやって同期?
インターネット03:00に攻撃します!
02:00
どうやって同期?
インターネット03:00に攻撃します!
攻撃しました! 攻撃しました!
攻撃しました!
03:00
どうやって同期?
インターネット03:00に攻撃します!
攻撃しました! 攻撃しました!
攻撃しました!
03:00
できたー!
どうやって同期?
• クライアントが行動実行時間を送ると…
どうやって同期?
• クライアントが行動実行時間を送ると…• チートできちゃうよなぁ…–やりたいタイミングでやりたい行動ができて
しまう
どうやって同期?
• クライアントが行動実行時間を送ると…• チートできちゃうよなぁ…–やりたいタイミングでやりたい行動ができて
しまう• 待機時間はサーバが持とう
どうやって同期?
• 少し未来の情報をやりとりした結果–行動選択後、キャラクターがボッ立ちする–なんか戦闘のテンポが悪い?–待機時間を減らす?• 環境によっては行動がズレる
どうやって同期?
• 少し未来の情報をやりとりした結果–行動選択後、キャラクターがボッ立ちする–なんか戦闘のテンポが悪い?–待機時間を減らす?• 環境によっては行動がズレる
• 何か良い解決作は…
それなりに見せる手法
• 行動前の不自然な時間をどう表現しよう?–不自然に待つのもわざとらしい
それなりに見せる手法
• 行動前の不自然な時間をどう表現しよう?–不自然に待つのもわざとらしい
• 構えたら格好良くない!?–それ格好良いかも!!
それなりに見せる手法
• 技術には限界がある
それなりに見せる手法
• 技術には限界がある–通信速度そのものは簡単には速くできない–できる / できない の線引を!
それなりに見せる手法
• 技術には限界がある–通信速度そのものは簡単には速くできない–できる / できない の線引を!
• 無理なところはどうするの?
それなりに見せる手法
• 技術には限界がある–通信速度そのものは簡単には速くできない–できる / できない の線引を!
• 無理なところはどうするの?–プランナーやデザイナーと相談しましょう–エンジニアだけで悩まない
余談
• ディレクターが出張中、新幹線でプロトタイプをプレー–時速300 Km で移動してても動いた!• サーバは大阪にあった
–基地局を跨いでも通信が切れる事もなかった• イタリアからでもプレーできた!
余談
• ディレクターが出張中、新幹線でプロトタイプをプレー–時速300 Km で移動してても動いた!• サーバは大阪にあった
–基地局を跨いでも通信が切れる事もなかった• イタリアからでもプレーできた!• 携帯キャリア様、 ISP 様!ありがとうございます!!
仲間募集!
• Aiming ではエンジニアに限らず、各職種人材を募集しております!
• 一緒に面白いゲーム作りましょう!!
御清聴ありがとうございました
質疑応答