今日は他の人が作ってるゲームのコードレビューに参加してきた*1。

 一つどうしても取れないバグがあると言うことで、みんなで原因を探る、探る。これじゃないかと言って直して動かしてはエラー発生。ライフ3の敵が、なぜか1ダメージ与えただけで哀れ撃墜。

 それほど厄介な処理があるわけでも無い小さなSTGなのに、これがなかなか直らない。

 途中、コンソールに変数の中身を出力しようと言う話になって、そしたら最初からライフが削れてるじゃんと言うところまで発覚するも、なんで削れてるのかが分からない。
 
 でもって、さらにあーだこーだやってたら、何度目かの私の指摘でついにヒット。

 スタートした瞬間、弾丸と敵の位置を初期化する直前に一発貰ってたらしい。

 詳しく言うと、そのゲームはあらかじめ適当なところに敵と弾丸を置いといて、スタートした瞬間に所定の位置に持っていってから使うようにしてたんだけど、その段階での弾丸と敵の位置がたまたま重なってたせいで、スタートしてから敵と弾丸が位置を変えるまでの瞬間に当たり判定が発生してた(ちなみに2ダメージの弾丸)。

 どうりでコード見てもわからないわけだ。

 そんなのよく分かったねって誉められたけど、やーそれは単に私が凄いから…(はあと)

 いや、けっして今までに同じようなバグを何回も食らったことがあるとか言うことじゃないし、あまつさえ、直近ではCivil作ってるときに敵味方100人の魔法使いの爆発魔法がフィールド中央に一点集中して、開始早々、敵味方200人を越える戦士がバッタバッタと犠牲になったりなんてしてないから!(しかも触れた瞬間に即死)

 やられると血を吹いて倒れる上に死体が残るって演出を切る前だったから、ちょっぴり凄惨だった。


 *1) コードレビュー。つまり、互いにプログラムを見せ合って意見を貰う会議。ちなみに、文中に出てくるほかの人のゲームの内容については、多少変えて書いてます。

0 コメント: