当たらないもの
Sさんは同人ゲームのデバッグをしていた。同人というとサークルを思い浮かべる人もいるだろうが、彼は個人で開発をしていた。無論その分やらなくてはならないことは増える。出来る限りフリー素材などを利用して作っていたのだが、RPGを作っていたためどうしても必要になるのが実際のプレイだ。
本来は素材を用意してそれには事前に当たり判定が付いていたりするものだが、ゲームエンジンの唐突な規約変更などもあり、圧倒的に資金力に差があるためエンジンの使用を断念し、自分でスクリプトを書くことになった。
RPGを作るなら、バランス調整が必須だ。ある程度の量、敵モンスターを作ったらあとはそれらが適切なレベルのエリアに配置されているか確認しなくてはならない。序盤でやたら強い敵が出てきたり、終盤なのに普通の武器で一度殴っただけで倒れるようなモンスターを使ってはならない。その上、倒して得られるお金や経験値なども調整しないと所謂『狩り場』などが出来てしまう。
そのため普通に通しでプレイするだけでは無く、普通はしないようなプレイをしなくてはならない。
最低限敵が強すぎて倒せないことも無いし、極端なモンスターはいないようなのでこれはある程度上手くいった。しかし問題は次の当たり判定のところで出た。
一般的に衝突判定があればキャラがそれ以上進めないようにするのだが、不思議なことにきちんと設定しているはずのゴーストキャラの方向にキーを入れるとするっとすり抜けてしまう。
彼はソースコードがどこか間違えているのではないかと思い、該当キャラの属性をチェックした。そこではきちんと当たり判定のあるオブジェクトとして設定されている。
そのはずなのに実際にプレイすると何度やってもそのキャラをすり抜けてしまうのだ。こういう再現性の無いバグほどたちの悪いものは無い。きっとどこからかフラグが書き換えられているのだろうと見当を付け、衝突判定のフラグが使用されている場所を全て当たっていった。しかしどこにもそれを書き変えているものは無い。
どうやってもそのキャラをすり抜けてしまうため、彼は『まさかコイツが幽霊だからすり抜けるのか?』と考え、死んでいるキャラから死にかけて彷徨っているキャラに変更した。すると実際に起動してプレイするとそのキャラをすり抜けることが無くなった。どう考えても説明も何も付かないのだが、一応はそれでゲームとして完成した。それをリリースしてプレイした人から感想をもらいいい気になっていたのだが、ある時バグ報告で、そのすり抜けなくなった瀕死のキャラがゴーストになってすり抜けられるようになっていると報告があった。
その間一度もそこのソースを触っていなかったのであり得ないことだ。不気味になった彼は、公開していたゲームを取り下げ、データを一応バックアップを取り、鍵付きの箱にUSBフラッシュを放り込んだそうだ。
彼によると『もうあれを検証する気は無い』らしい。