タグ

mmoに関するokhraのブックマーク (1)

  • 通信対戦 - primitive: blog

    完全な同期について真剣に考え出したところで、今までとは違うアプローチの、より良いかもしれない方法を思いついた。 ・クライアント側は、常にゲーム内時間をサーバー側とは20フレームくらい遅らせて進行させる。(20フレームは適当。クライアントとの通信速度を元に適切な数値に設定するのが理想) ・やりとりする情報はマウスやキーボードの操作から起こったイベントのみ。(また、そのイベントが起きた時間も情報に含める) ・サーバー側は、クライアントからイベントがきたら受信した瞬間にそれを実行する。 ・クライアント側は、サーバーから来たイベントは未来で起こるものであるはずなので、受信したら一旦それをキューに突っ込んでおき、実行すべき時が来たときに実行する。サーバーから来た情報が既に過去のものなら、同期エラーと見なす。 ・これでサーバー/クライアントで常に同じ時間に同じイベントが実行されるはず。各プレイヤーがロ

    通信対戦 - primitive: blog
  • 1