60
ロロロロロロロロロロロ ロロロロロロロロロ 2015.11.28 ロロ ロロ

ログレスの戦闘から見るデータ同期について

Embed Size (px)

Citation preview

Page 1: ログレスの戦闘から見るデータ同期について

ログレスの戦闘から見るデータ同期について

2015.11.28

山藤 智之

Page 2: ログレスの戦闘から見るデータ同期について

本人の説明

• 山藤 智之(やまふじ さとし)• 株式会社 Aiming 所属• 携わった作品– BladeChronicle–剣と魔法のログレス –剣と魔法のログレス – いにしえの女神 –

Page 3: ログレスの戦闘から見るデータ同期について

Aiming ?

• オンラインゲームの会社• 開発から運営業務まで一通り

Page 4: ログレスの戦闘から見るデータ同期について

ログレス?

• 剣と魔法のログレス – いにしえの女神 ––マーベラス様との共同開発– Android, iOS でサービス中– 2013 年末より日本でサービス開始– 2015 年 10 月より台湾でサービス開始–国内累計 700 万 DL 達成

Page 5: ログレスの戦闘から見るデータ同期について

どんなゲーム?

• MMORPG–ストーリーあり–戦闘あり–仲間とチャット

• 常時接続型

Page 6: ログレスの戦闘から見るデータ同期について

戦闘??

• 複数のプレーヤーが共闘• 多彩なスキルをやりくり• コマンド選択方式• リアルタイムで進行

Page 7: ログレスの戦闘から見るデータ同期について

実現したかったこと

• ディレクター–マルチプレイのわいわい感!–ある程度ちゃんとした同期

• エンジニア–操作した際のレスポンスの良さ• 行動毎に止まるとかは嫌!

–全体的にテンポを良く

Page 8: ログレスの戦闘から見るデータ同期について

懸念点

• スマホで作るの初めて–端末の性能の限界がわからない–性能差もわからない–通信の安定度がわからない• 基地局跨いだ時って、接続維持されるの?• どれぐらい遅延があるの?• 常時接続って実際できるの?

–とりあえず動くように作ろう!

Page 9: ログレスの戦闘から見るデータ同期について

実現したかったこと

• ディレクター–マルチプレイのわいわい感!–ある程度ちゃんとした同期

• エンジニア–操作した際のレスポンスの良さ• 行動毎に止まるとかは嫌!

Page 10: ログレスの戦闘から見るデータ同期について

実現したかったこと

• ディレクター–マルチプレイのわいわい感!–ある程度ちゃんとした同期

• エンジニア–操作した際のレスポンスの良さ• 行動毎に止まるとかは嫌!

Page 11: ログレスの戦闘から見るデータ同期について

ある程度ちゃんとした

Page 12: ログレスの戦闘から見るデータ同期について

同期

Page 13: ログレスの戦闘から見るデータ同期について

・・・ってなんやねん!

Page 14: ログレスの戦闘から見るデータ同期について

同期?

• 同期( synchronization )• 複数の事象(イベント)が同時に起こる

こと。単に同時というだけでなく、以下のような意味あいがある。

• 人為的な制御など、原因があって同時に起こっている(起こしている)。

• それぞれの事象に協調性がある• (Wikipedia より )

Page 15: ログレスの戦闘から見るデータ同期について

同期?

• 同期( synchronization )• 複数の事象(イベント)が同時に起こる

こと。単に同時というだけでなく、以下のような意味あいがある。

• 人為的な制御など、原因があって同時に起こっている(起こしている)。

• それぞれの事象に協調性がある• (Wikipedia より )

Page 16: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 同じ戦闘を共有するプレーヤー全員に、同じ結果を見せないといけない–誰かだけ順序が違う–誰かだけダメージが違う

• 誰かだけ・・・は NG !!

Page 17: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 一般のゲーム機に置き換えると…

モニタゲーム機 スピーカ

Page 18: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 一般のゲーム機に置き換えると…

モニタゲーム機 スピーカコントローラープレーヤーがゲーム世界に干渉する為に使う入力機器

Page 19: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 一般のゲーム機に置き換えると…

モニタゲーム機 スピーカ

ゲーム機プレーヤーからの入力を処理しゲーム世界に変化を与える

コントローラープレーヤーがゲーム世界に干渉する為に使う入力機器

Page 20: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 一般のゲーム機に置き換えると…

モニタゲーム機 スピーカ

モニタ/スピーカゲーム機からの入力をえてゲーム世界に起こった事象を視覚(聴覚)情報としてプレーヤーに伝えるゲーム機プレーヤーからの入力を処理しゲーム世界に変化を与える

コントローラープレーヤーがゲーム世界に干渉する為に使う入力機器

Page 21: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 一般のゲーム機に置き換えると…

モニタゲーム機 スピーカ何かを入力

Page 22: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 一般のゲーム機に置き換えると…

モニタゲーム機 スピーカ入力に基づいた処理を行った結果

Page 23: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 一般のゲーム機に置き換えると…

モニタゲーム機 スピーカ結果を確認

Page 24: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 一般のゲーム機に置き換えると…

モニタゲーム機 スピーカ結果を確認結果を観測できて初めて同期!!

Page 25: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• 一般のゲーム機に置き換えると…

モニタゲーム機 スピーカ

Page 26: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• スマホのゲームに置き換えてみる…

インターネット

何かを入力

Page 27: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• スマホのゲームに置き換えてみる…

インターネット

入力に基づいた処理を行った結果

Page 28: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• スマホのゲームに置き換えてみる…

インターネット

結果を確認

Page 29: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• スマホのゲームに置き換えてみる…

インターネット

Page 30: ログレスの戦闘から見るデータ同期について

ログレスの戦闘で言う同期?

• ちょっと置き換えてみる–コントローラー =>  クライアント–ゲーム機 =>  サーバー–モニタ/スピーカ =>  クライアント–配線機器 =>  通信

• 同期を取るのは、出力するクライアント

Page 31: ログレスの戦闘から見るデータ同期について

どうやって同期?

• やりとりするデータを検討–誰が?–何をする?

Page 32: ログレスの戦闘から見るデータ同期について

どうやって同期?

• やりとりするデータを検討–誰が?–何をする?

• とりあえず考えてみよう…

Page 33: ログレスの戦闘から見るデータ同期について

どうやって同期?

インターネット攻撃します!

Page 34: ログレスの戦闘から見るデータ同期について

どうやって同期?

インターネット攻撃します!

Page 35: ログレスの戦闘から見るデータ同期について

どうやって同期?

インターネット攻撃します!

攻撃しました! 攻撃しました!

!?

Page 36: ログレスの戦闘から見るデータ同期について

どうやって同期?

• やりとりするデータを考えてみる…–瞬間的に「何かをしろ!」ではマズイ–少し受信が遅れたりしても、おかしな事に

なってしまう

Page 37: ログレスの戦闘から見るデータ同期について

どうやって同期?

• やりとりするデータを考えてみる…–瞬間的に「何かをしろ!」ではマズイ–少し受信が遅れたりしても、おかしな事に

なってしまう–少しだけ未来の情報ならズレる事は少ないは

ず?–未来の情報を貰うとなると…

Page 38: ログレスの戦闘から見るデータ同期について

どうやって同期?

• やりとりするデータを再検討–何時?–誰が?–何をした?

Page 39: ログレスの戦闘から見るデータ同期について

どうやって同期?

• やりとりするデータを再検討–何時?–誰が?–何をした?

• よし!これでいける!!

Page 40: ログレスの戦闘から見るデータ同期について

どうやって同期?

インターネット03:00に攻撃します!

00:00

Page 41: ログレスの戦闘から見るデータ同期について

どうやって同期?

インターネット03:00に攻撃します!

01:00

Page 42: ログレスの戦闘から見るデータ同期について

どうやって同期?

インターネット03:00に攻撃します!

02:00

Page 43: ログレスの戦闘から見るデータ同期について

どうやって同期?

インターネット03:00に攻撃します!

攻撃しました! 攻撃しました!

攻撃しました!

03:00

Page 44: ログレスの戦闘から見るデータ同期について

どうやって同期?

インターネット03:00に攻撃します!

攻撃しました! 攻撃しました!

攻撃しました!

03:00

できたー!

Page 45: ログレスの戦闘から見るデータ同期について

どうやって同期?

• クライアントが行動実行時間を送ると…

Page 46: ログレスの戦闘から見るデータ同期について

どうやって同期?

• クライアントが行動実行時間を送ると…• チートできちゃうよなぁ…–やりたいタイミングでやりたい行動ができて

しまう

Page 47: ログレスの戦闘から見るデータ同期について

どうやって同期?

• クライアントが行動実行時間を送ると…• チートできちゃうよなぁ…–やりたいタイミングでやりたい行動ができて

しまう• 待機時間はサーバが持とう

Page 48: ログレスの戦闘から見るデータ同期について

どうやって同期?

• 少し未来の情報をやりとりした結果–行動選択後、キャラクターがボッ立ちする–なんか戦闘のテンポが悪い?–待機時間を減らす?• 環境によっては行動がズレる

Page 49: ログレスの戦闘から見るデータ同期について

どうやって同期?

• 少し未来の情報をやりとりした結果–行動選択後、キャラクターがボッ立ちする–なんか戦闘のテンポが悪い?–待機時間を減らす?• 環境によっては行動がズレる

• 何か良い解決作は…

Page 50: ログレスの戦闘から見るデータ同期について

それなりに見せる手法

• 行動前の不自然な時間をどう表現しよう?–不自然に待つのもわざとらしい

Page 51: ログレスの戦闘から見るデータ同期について

それなりに見せる手法

• 行動前の不自然な時間をどう表現しよう?–不自然に待つのもわざとらしい

• 構えたら格好良くない!?–それ格好良いかも!!

Page 52: ログレスの戦闘から見るデータ同期について

それなりに見せる手法

• 技術には限界がある

Page 53: ログレスの戦闘から見るデータ同期について

それなりに見せる手法

• 技術には限界がある–通信速度そのものは簡単には速くできない–できる / できない の線引を!

Page 54: ログレスの戦闘から見るデータ同期について

それなりに見せる手法

• 技術には限界がある–通信速度そのものは簡単には速くできない–できる / できない の線引を!

• 無理なところはどうするの?

Page 55: ログレスの戦闘から見るデータ同期について

それなりに見せる手法

• 技術には限界がある–通信速度そのものは簡単には速くできない–できる / できない の線引を!

• 無理なところはどうするの?–プランナーやデザイナーと相談しましょう–エンジニアだけで悩まない

Page 56: ログレスの戦闘から見るデータ同期について

余談

• ディレクターが出張中、新幹線でプロトタイプをプレー–時速300 Km で移動してても動いた!• サーバは大阪にあった

–基地局を跨いでも通信が切れる事もなかった• イタリアからでもプレーできた!

Page 57: ログレスの戦闘から見るデータ同期について

余談

• ディレクターが出張中、新幹線でプロトタイプをプレー–時速300 Km で移動してても動いた!• サーバは大阪にあった

–基地局を跨いでも通信が切れる事もなかった• イタリアからでもプレーできた!• 携帯キャリア様、 ISP 様!ありがとうございます!!

Page 58: ログレスの戦闘から見るデータ同期について

仲間募集!

• Aiming ではエンジニアに限らず、各職種人材を募集しております!

• 一緒に面白いゲーム作りましょう!!

Page 59: ログレスの戦闘から見るデータ同期について

御清聴ありがとうございました

Page 60: ログレスの戦闘から見るデータ同期について

質疑応答