Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

オンラインゲームの遅延の話

2,683 views

Published on

高専カンファin奈良2資料

  • Be the first to comment

オンラインゲームの遅延の話

  1. 1. 会社でゲーム作ってて 思うこと 高専カンファ in 奈良2大阪府立大学工業高等専門学校5年 kyubuns
  2. 2. 自己紹介• 名前:kyubuns (きゅぶんず) • 最近、”枠の人”とか呼ばれている • Twitter : @kyubuns • Skype : kyubuns • Steam : kyubuns • GitHub : kyubuns
  3. 3. 自己紹介• 大阪府立大学工業高等専門学校• プログラミング研究会• 5年 電子情報コース • 授業構成 • 電気:電子:情報 = 4:4:2
  4. 4. 自己紹介• 大阪府立大学工業高等専門学校• プログラミング研究会• 5年 電子情報コース ← まだ学生 • 授業構成 • 電気:電子:情報 = 4:4:2
  5. 5. 自己紹介• 株式会社Aimingでアルバイト。 • 内定いただきました。• 週4日、学校終わってから。
  6. 6. Aimingの紹介• なんかtwitterで某A社とか言われてるアレ。
  7. 7. Aimingの紹介• オンラインゲーム作ってます。 Copyright © 2011 Aiming Inc. All Rights Reserved.
  8. 8. Aimingの紹介• ゲームプログラマ志望の方へ。 • Boost, C++11使えます。 • Unity使ってます。 • git, gerrit, jenkins使ってコードレビューやってます。 • iPhone, Android向けのゲームも作ってます。 • 新しい技術どんどん取り入れていきます。 • {社内|社外}勉強会も積極的にやってます。 • 以上の単語にピン!と来た方、 インターン受け付けてるよ!!!( ^o^)ノ
  9. 9. 会社でゲーム作ってて 思うこと 高専カンファ in 奈良2大阪府立大学工業高等専門学校5年 kyubuns
  10. 10. 今からオンラインゲームプログラミングの話をします。 (╹◡╹ )
  11. 11. と思ったけれど、一部の変態以外みんな寝てしまう。 (╹_╹ )
  12. 12. なので(╹⌓╹ )
  13. 13. (▰╹◡╹)プログラミングの話 しません!!!聞きたい人は後で来てください。懇親会も行きます。
  14. 14. 高専カンファ in 奈良2のwikiより
  15. 15. 高専カンファ in 奈良2のwikiより
  16. 16. オンラインゲームの現実
  17. 17. オンラインゲームって嘘だらけです。
  18. 18. 分かりやすい例 ザコ敵の位置は同期を取っていない。 敵がどこにいるかは、みんなバラバラ。
  19. 19. 分かりやすい例 同じ試合なのに、 プレイヤー毎に対戦結果がバラバラ。
  20. 20. ???• どういうこと??? • みんな、見てる世界が違う。
  21. 21. ???• どういうこと??? • みんな、見てる世界が違う。• なんで??? • そこにネットがあるから。
  22. 22. ???• どういうこと??? • みんな、見てる世界が違う。• なんで??? • そこにネットがあるから。 ネットは遅い
  23. 23. ネットは遅い• どれくらい遅いの?? • 無線とか挟んで通信すると100msとか行く。 例えば
  24. 24. KさんとSさんが仲良く遊んでいるところに Kさん Sさん
  25. 25. _人人人人人人人人人人人_ > 突然のツインエビフライ <  ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄Kさん Sさん
  26. 26. Kさん Sさん
  27. 27. SさんKさん
  28. 28. SさんKさん
  29. 29. Kさん Sさん
  30. 30. Kさん Sさん
  31. 31. Kさん Sさん
  32. 32. 100msぐらいいいじゃん別に
  33. 33. ↓100ms前の位置にいる
  34. 34. アイテムとったよー!ってデータをお互いに送り合う
  35. 35. ネットは遅いから、嘘の情報を表示せざるを得ない。
  36. 36. 対策• アイテムを取っていいか他の人に確認しにいく。
  37. 37. 対策• アイテムを取っていいか他の人に確認しにいく。 • だからマインクラフトでブロック拾うのは重い。
  38. 38. 遅いだけじゃなくて意外と送れるデータ数は少ない 帯域についてはググれ。
  39. 39. 具体的に言うと、位置情報を1秒に数回しか送れない
  40. 40. つまり
  41. 41. Kさん Sさん
  42. 42. !? シュッ SさんKさん
  43. 43. !? シュッKさん Sさん
  44. 44. ? ←普通に歩いてきたつもりKさん Sさん
  45. 45. 位置情報が送られてきたのでここに表示した↓ SさんKさん
  46. 46. 歩いて位置変わったけど情報を送れない↓ SさんKさん
  47. 47. やっと次の位置情報送れた!↓Kさん Sさん
  48. 48. !? シュッ SさんKさん
  49. 49. !? シュッKさん Sさん
  50. 50. 対策• 一定時間はその方向に向かって歩いている ことにする
  51. 51. 対策• 一定時間はその方向に向かって歩いている ことにする この辺からオンラインゲームの嘘が生まれる↑
  52. 52. 左上に向かって歩き出す。
  53. 53. 左上に歩き出したよ!という情報が届く
  54. 54. 位置情報こないけど、恐らく同じ方向に歩いているだろう しかし、実際は突然のUターン
  55. 55. 位置情報、Uターンしたよ!情報が飛んでくるが、既に本来Uターン開始した位置を過ぎていた!!!ておくれや!! 本来
  56. 56. ↓予測して表示してしまった位置 本来
  57. 57. 本来本来の現在位置、移動方向からして今から1秒後はここにいるはず!
  58. 58. 今度は、この方向で移動させる。 本来いるはずの位置に できるだけ速く自然に補間する。
  59. 59. こういうごまかしがオンラインゲーム作るときの難しさ
  60. 60. こういうごまかしがオンラインゲーム作るときの難しさごまかしの結果、みんなバラバラの画面を見ることに・・・

×