ゲームのプランナーの仕事をしていると、かなりの頻度「デバック」と書かれているのを書類やメールで見かけます。
というのを書いていたら──今「でばっく」とタイピングしたところで、
ATOKさんが【「デバッグ」の誤り】とおっしゃいました。
そういうわけで、バグを見つけて修正するから「デ【バッグ】」なわけで。
バクを見つけるわけでは。なくて。まぁ単なる間違いです。
■デバッグとは何をすることなのか?
名称はそれほど大事ではないのです(気になるけど)。
それより危険なのは、
ゲームにおけるデバッグ=ゲームをひたすらプレイしてバグを見つける
だと認識している人がけっこういる。気がする。
だからデバッガーさんは一日中ゲームをプレイしているんだろ、と。
ゲームが動いたらデバッグ会社さんにお願いして、バグを見つけてもらうんだろ、ってことなのでしょう、けれど、も。
半分合ってて半分まちがい。
正確には、
『仕様書』と『実装』が合っているかをチェックする
のがデバッグです。
スマホなら
・ゲームの仕様書
・絵素材やテキスト素材のリスト
・パラメータなどの設定ファイル
・DVD なり apk なり ipk なりのビルド=実装
などをデバッガーさんに渡して、仕様通りに実装されているかを確認してもらうわけです。
だからずっとゲームをプレイするのはまぁ、正しい。
そのとき、デバッガーさんは仕様書片手に、その仕様書通りに実装(動作とか絵とか音とかテキストとか)されているかを確認しながらゲームをチェックします。
仕様書があって、それを元に作ったわけで、仕様と実装は同一のはずです。
この大前提を持って、デバッガーさんはチェックをします。
じゃないと、初見のゲームの実装だけを見て、ある動作が正しい(仕様=制作者の意図通り)のか、不具合なのかは判断ができません。
フリーズしたとかアプリがクラッシュしたとか、誰が見ても「不具合だろ」というものは仕様書が無くても分かります。
■デバッガーさんの思考
たとえば。「RPGの最初の戦闘で、敵を倒したらレベルが2個上がった」場合。
別に普通じゃん?とか、ちょっとサービスしすぎ?とか考えるかもしれませんが、それはプレイヤーの視点です。
今デバッグプレイしているのは、「完成前の、バグや実装ミスがあり得るゲーム」なのです。すべての挙動が(言葉通りの「すべて」です)仕様書通りなのかをチェックしないといけません。
・最初の戦闘で出るべき敵の種類を仕様書で確認
・出現する設定通りの敵なら、手に入った経験値を確認
・キャラクターの経験値/レベルの資料を確認
・レベルが一度に2個上がることがしようとして許容されているか確認
……などなどのチェックを経て、問題なければ「この動作は仕様通り」となって次のチェックに進みます。
さらっと飛ばしましたが、「レベルがいっぺんに2個上がるのは正常か異常か?」というところが気になるかどうかは、そのデバッガーさんの感覚です。
いっぱいゲームをプレイして、脳内にあるデータベースにそのプレイデータが蓄積されています。
その中から「この状況はあまり見たことが無いのでもしかしたらバグかも」というのがあれば、そこから仕様書の確認などが始まるわけです。
こういう「ゲームプレイヤーとしての経験値」が必要なのは、デバッガーさんもプランナーさんも変わりません。まぁどっちも同じ開発者ですから。
デバッガーさんから「仕様書をください」と言われるのは、今にして思えば当然です。だって、ROMだけあっても停止バグのチェックくらいしかできませんし。
でも、僕がゲームの仕事を始めた18年ほど前は「仕様書と実装をつきあわせてチェックする」のがデバッグだと認識していなかったのでした(品証のみなさますみません)。
ということで。
デバッグってのは、『仕様書』と『実装』が合っているかをチェックすること、です。自戒を込めて。
あ。
タイトルの「エリ草ー」は、「エリクサーってどんな草なんですか?」と聞かれたことがあったから。この視点は無かった。
薬草は回復するでしょ、エリクサーも回復するでしょ、だからなんかの草なんでしょエリクサーって、というロジック。素敵なセンスだと思うー。