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

514
-1

Published on

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

Published in: Engineering
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
514
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

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

    Clipping is a handy way to collect important slides you want to go back to later.

×