한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

ゲームラグ白書 › 同期設計

スキルの先行入力なし No input/spell queue

原因ID sy-no-queue · 主担当 ゲーム開発チーム・クライアント開発 · 副担当 ゲーム開発チーム・サーバー開発

図と実験のあるメインページでこのカードを開く →

前のスキルがサーバーで終わったという確認を受けるまで次のスキルを押せないと、連携のたびに往復時間が挟まります。

なぜ 次のスキル入力を「前のスキルの確定後」にだけ受け付ける → すると スキルとスキルの間に、毎回Pingの分だけ空白の時間ができる → 画面では 連携の間に毎回すき間ができ、Pingが高いほどDPSが下がる

症状
入力遅延, 不発・ロールバック
要因
遅延
誰に起きるか
自分だけ, 特定の機能だけ
いつ
特定の操作をしたとき
担当
主担当 ゲーム開発チーム・クライアント開発 · 副担当 ゲーム開発チーム・サーバー開発
ゲーム開発チームの対応
クライアント:クールタイムが終わる前の一定時間(例:0.3〜0.4秒)以内の入力も受け付けてすぐサーバーへ送る、先行入力の受付時間。サーバー:少し早く届いた入力を拒否せず、クールタイムが終わった瞬間に実行。
数値の目安
クールタイム1秒の連携でPingが150msなら、スキルの間が毎回0.15秒以上空き、同じ時間に使えるスキルが13%以上減ります。
グラフでは
最初から常に高い · スキル間の空白時間、RTT(Ping)
確認箇所
サーバーログに、キャラクターごとのスキルのクールタイムが終わった時刻、次のスキルのリクエストが届いた時刻、実行時刻を記録し、その間の空白時間をユーザーのRTTと比較
該当する場合
クールタイムが終わってから次のスキルが実行されるまで常にRTT程度の空白があり、Pingが高いユーザーほど空白時間が長く、同じ時間に使ったスキル数が少ない
該当しない場合
空白時間がPingに関係なく一定なら、共通クールタイム(GCD)やアニメーションの長さの設計。空白時間がときどきだけ大きく跳ねるなら、ジッター・パケットロスかティックバジェット超過を確認
確認手段
ゲームサーバー・クライアントのログ・メトリクスが必要
もっと詳しく
たとえばWorld of Warcraftは先行入力の受付時間を設け、プレイヤーが設定で調整できるようにしました。受付時間が往復時間より長ければ、連携の間にPingがほとんど挟まりません。

出典

  1. Latency and Player Actions in Online Games (Communications of the ACM, 2006) ACM
    EverQuest IIでは、遅延が大きくなるほどキャラクターが与えるダメージが減って戦闘が長引いた(0→500msで約2分の戦闘が5秒延長)

あわせて読みたい原因

同じ層:同期設計

同じ症状(入力遅延)を起こすほかの層の原因

図と実験のあるメインページでこのカードを見る