タイムアタックを回線に左右させない設計メモ
公開日:2026年10月15日
HIT & BLOW - 10 ROUNDS TIME ATTACKは、10問の合計タイムを競うゲームです。タイムアタックで通信の遅れが記録に混ざると、速く解いた人ではなく、回線が速い人が有利になってしまいます。そこで、プレイ中は通信しない作りにしました。
方針:プレイ中はブラウザの中だけで完結させる
サーバーとやりとりするのは、開始のときと終了のときだけです。開始のときに、サーバーから、出題のもとになる値(seed)と、時刻の署名を受け取ります。そのあとの、出題、入力の判定、タイムの計測は、すべてブラウザ側で行います。1問ごとにサーバーへ確認を取ることはありません。そのため、電波が不安定な場所でも、通信の遅れでタイムが変わることはありません。
終わったあとに、サーバーが検証する
終了した時点(10問をクリアしたとき、または時間切れのとき)に、プレイの内容(入力と結果)をサーバーへ送ります。サーバーは、その申告内容を最初から最後まで通して検証します。プレイ中に正誤をその場で返すのではなく、あとから整合性を確かめる仕組みです。サーバーは Cloudflare Workers で動かしています。結果をシェアしたときだけ、その内容を Workers KV に保存します。
割り切ったところ
判定をブラウザ側で行う以上、答えを計算で逆算して即座にクリアするような遊び方は、技術的には可能です。ただ、結果には、入力ごとの判定と、残り候補の数、かかった時間まで表示されます。不自然な解き方は見れば分かるので、厳密な対策よりも、遅延のない遊び心地を優先しました。
重複入力を許した理由
入力は、同じ数字の重複を許しています。判定のルールも、答えの数字を使い切った扱いにしない独自のものです。同じ数字を重ねて「その数字が含まれるか」だけを調べるなど、タイムを縮めるための戦略に幅を持たせたかったからです。ルールの詳細は、遊び方とルールにまとめています。