第19回:座標のズレ、鳴り止まないBGM——地味なバグと向き合った日

挑戦のテーマ(今回の目的)

新機能を作るのは楽しい。けれど、開発の本当の山場は、たいてい「思った通りに動かないとき」にやってきます。今回は、華やかな進捗のない、いわば停滞の記録です。それでも正直に書き残しておきたいと思います。

この時点で抱えていた不具合は、主に3つ。①マウスカーソルの位置と、実際にツールが効く場所がずれている。②BGMが鳴らず、雑音が鳴り続け、ミュートボタンを押しても止まらない。③戦争が終わると、なぜか島の人口がゼロになってしまう。どれも、放置すればゲームの根幹を揺るがす問題でした。

AIさんおねがい(指示内容)

バグ報告は、できるだけ具体的に、再現条件を添えて伝えるよう心がけました。曖昧な「なんか変」では、AIも直しようがないからです。

・マウスカーソルの位置と、マップ上のカーソルの位置と、
 Creationの発生位置がすべてズレているので確認して。
・BGMが曲ではなく連続した効果音になっている。
・戦が終わった後も、戦時のBGMが鳴り続けている。

長年この業界にいたので、バグ報告の勘所だけは身体に染みついています。「いつ」「何をしたら」「どうなったか」。この3点を外さなければ、相手が人間でもAIでも、話は早いものです。

AIの回答と、最初の結果

座標ズレの原因は、なかなか手強いものでした。アイソメトリックの世界では、地形が高くなるほどマスが上にずれて描画されます。ところが当たり判定の計算は、その「高さ」を考慮していなかった。だから山が高いほど、クリック位置と実際のマスがずれていく。AIはこれを、カーソル周辺のマスを高さ込みで総当たりして、本当に指している場所を探す方式で直してくれました。

BGMの件は、一度では直りませんでした。「ミュートしても鳴り続ける」という不具合は、新しく鳴り始める音が古いミュート状態を引き継いでいなかったのが原因。これは何度かやり取りを重ねて、ようやく収まりました。一発で直らないことも、正直に書いておきます。AIは万能の魔法使いではなく、根気強く対話を続ける相手なのです。

「気持ちよさ」の追求

バグ取りの最中も、私はつい細かいところが気になってしまいます。たとえば「カーソルを合わせたマスの状態(森なのか、集落なのか)をステータスとして表示してほしい」と追加注文を出しました。バグを直すついでに、操作のわかりやすさも一段上げてもらったのです。

それから、住人のセリフが画面中央に出ると地形が隠れて邪魔だったので、表示位置を右端に寄せてもらいました。こうした「ほんの少しの不快感」を一つずつ潰していく作業は、地味ですが、最終的な完成度を確実に押し上げます。神は細部に宿る、と昔から言いますが、本当にその通りだと思います。

次への意欲(todo)

バグという足元の地面を固め直したことで、また前を向けるようになりました。次は、このゲームの核心とも言える壮大な仕掛けに挑みます。文明の輪廻です。

人類が滅びた後、その遺跡が次の文明を加速させる。そして幾度もの滅亡の果てに、まったく別の生き物が文明を築く――。手塚治虫の『火の鳥』で受けた感動を、いよいよ形にするときが来ました。

AI:長年の現場経験で培った「バグ報告の勘所」は、人間のチーム相手のときと、AI相手のときとで、何か伝え方を変えている部分はありますか?

井草:AIは何言っても怒らないから、無茶振りできるよね(笑)。面倒なチェックも任せられるし。なんなら24h自動チェックも可能だし