fc2ブログ

デバッグについてつらつらと語るよ!

デモンズソウル2週目突入に合わせてオンラインプレイにも挑戦したと~ふだよ!
誰かに召喚されたいんだけど、上手い具合に呼んでくれる人がいません・・・orz
まぁ、生身に戻ってもPK目的の黒ファントムに侵入されて殺されちゃうから、すぐソウル体に戻っちゃうんだけどね!
スト4のオンライン対戦もやって見ましたが戦績は12戦1勝11敗です・・・。同じ強さの人募集で、ここまで負けるとは・・・。デュアルショック3でプレイしてるんですが、スティックコントローラーが必須かなぁ・・・と、最近思い始めていますよ。

さてさて、今回はデバッグについてですね。
 ●任天堂のデバッグスタッフのアルバイト募集
 ●360バーチャロンのコラム『■2009.04.14:PASS!!』
この辺の話題を見ててデバッグについて語って見ようかと思ったんですよ。
まず『デバッグと言うのはどういったモノなのか?』という事なんですが、本来はバグを探して修正する作業をデバッグと言います。
『探す』『修正』この2つはセットなんですが、最近では『探す』部分だけでもデバッグと呼んでいるケースが多いです。
前述の任天堂のアルバイトの方も『探す』方のスタッフ募集ですね。
実を言うと僕もデバッグの『探す』作業の方の経験があります。
僕の時は契約などの公式的な時は『テストプレイ』と呼んでて、業務中や仲間内では『デバッグ』と呼んだりしてました。

それはさておき。
デバッグと言うのはゲームの開発の中でも最終工程になります。
ゲームに入れるべきデータが入力された状態で
『ゲームが正常に動くのか?』
『異常があれば修正する』
『修正後正常にゲームが動作するのか確認する』

といった作業を行います。

『正常に動くのか?』
この作業は分かりやすいですね。実際にプレイをして正常に動作している事を確認する作業です。
バグを探す事はもちろんなんですが『異常なく仕様通りに正常に動作しているのか?』という事も確認しなくてはなりません。
『異常』を探すだけでなく『正常』を確認する必要があるわけです。まぁプレイすれば正常であるかは確認出来ますがね。
RPGが一番例にしやすいんですが『魔法の効果が正常か確認する』というのがありますね。
『確率』で発生するモノが本当に確率通りなのかとか、『攻撃力何%アップ』だったら本当にその『何%通りに強化されているのか?』とかも確認するわけです。
確率モノって結構大変で、100回や200回同じ事を繰り返してようやく『おおよそ確率通りかな?』と言うのが見えてきます。
正しい確率を確認しようとしたら1000回や2000回は最低必要でしょうね。

『異常があれば修正する』
『探す』作業だけのテストプレイの場合は『発見した異常を担当プログラマーに報告する』となります。
さて、この時大切なのは『実際に異常を確認していない人に自分の見た異常を伝える』という事です。
『バグを見つけました』だけじゃダメなんですよ。
『いつ』『どこで』『何を』『どうすると』『どうなる』と言う俗に『5W1H』となる部分は当然なんですが、他にも『再現はするのか?』『再現する場合の再現率は?』『他の操作や進め方などの他パターンの場合発生するのか?』といった事も確認して報告しないとなりません。
症状によっては『類似のシーンでは発生するのか?』といった事まで確認します。
『見つけました』だけだと、プログラマーが『何をどう修正すればいいのか?』と言うのがハッキリせず、プログラマーにその辺りを確認させる事になってしまい、手間が掛かってしまうんですよ。
特に再現率の低いものは確認するだけで時間がかかってしまい、結果として修正するまでに時間が掛かってしまいます。
なので『探す』作業を行う場合、可能な限りの詳細な情報を『報告』する必要があるわけです。

『修正後正常にゲームが動作するのか確認する』
プログラマーがバグを修正した後は、修正の確認をする必要があります。
たまに、修正したつもりでも修正されていない事があるんで、ちゃんと修正されているか確認が必要になります。
特に『異常があれば修正する』で書いた『再現率』が低いモノだと『本当に修正されているのか?』と確認する事が難しい為、念入りに何度も確認する必要があったりします。
まぁ、誤字脱字程度なら見てすぐに分かるんで確認が楽なんですけどね。

大体の流れは以上のようになります。
また、デバッグの最中にもゲームのバージョンと言うのはどんどん新しいものに変わって行きます。
開発中のゲームは『スタートからエンディングまで全てのデータが入力し終わってからデバッグが開始される』事は滅多にありません。殆どが『後半、もしくは一部分が完成していない状態』でデバッグが始まります。(DQ9発売延期の社長の発言とか『えー?』とか思いましたがね)
そうなると、当然『新しいデータが入力』されればバージョンが新しくなります。この辺はケースバイケースですが、バージョンが新しくなった場合『ゲームが正常に動くのか?』『異常があれば修正する』『修正後正常にゲームが動作するのか確認する』と言う工程はやり直しになる事もあります。

『新しいデータが入力される』『バグが修正される』このどちらかの時にゲームのバージョンがどんどん新しくなります。
そして、バージョンが新しくなった場合『探す』『修正確認』の作業もやり直しになったりします。
具体的な例にすると、
『異常を見つけて詳しい事を確認していたら、新しいバージョンになって、もう一度異常を確認したら、発生しなくなっていた』
『RPGでラスボス戦で異常を確認。修正確認をしていたら新しいバージョンに変わり、今までのセーブデータが使用出来なくなったので、ゲームをスタートからラスボス戦までもう一度進める必要が出てくる』

なんていう事もある訳です。
稀なケースとしては
『前に発見し、報告、修正されたバグがもう一度発生している』
って、事もあったりします。
こんな事もあるので、滅多にある訳じゃありませんが、ひどい時は
『最新のバージョンで今まで発生したバグが本当に発生しないのか、もう一度全部確認する』
なんて事もあったりします。
これって本当に大変なんですよ・・・。
僕が経験したのだと、PS2のRPGで報告されたバグの数が8,000と言うのがありましたね。
しかも、開発陣でもデバッグを行っていて、そちらからも数千の報告があったと言う事です。
1万を超えるバグがちゃんと修正されているかどうかをもう一度一から全部確認するって事ですよ。
気ガ遠クナル話デスヨ・・・。

実はこれらの作業が全て終了しても、まだ『マスターアップ(ゲームが完成した状態の事)』とは呼べないんですよ。
ここで、バーチャロンのコラムネタです。
デバッグが終了したらハードメーカー・・・360ならマイクロソフト、PS系ならSCE、DSやWiiなら任天堂ですね・・・に審査に出します。これがコラムで書かれているテストって奴ですね。
このテストで合格しないと『そのハードで発売する許可』が下りない訳です。360とPS3のマルチタイトルなんかは、マイクロソフトとSCEのそれぞれに審査に提出する事になります。
具体的にどのような審査が行われるかは、極秘事項に該当する為、僕も詳しくは知りません。
ずいぶん昔に聞いた話ですが、PS1のソフトで『セーブ中にメモリーカードを抜いたらゲームがフリーズしたので、開発がやり直しになった』という話を聞いた事があります。そのソフトのデバッグを担当した人が『デバッグ期間が2ヶ月延長になった・・・』と嘆いていました。しかもそのデバッグ中は『色々なシーンでメモリーカードの抜き差しを繰り返す』と言う奇妙な作業が増えたそうです。

話がそれました。
この『ハードメーカーの審査』で合格すると、ようやく『マスターアップ(ゲームの完成)』となります。
マスターアップ後は工場での量産となる訳です。
バーチャロンのコラムの『ガッツポーズ』と言うのは開発側にいた人には共感できる部分だと思いますよ。僕にも似たような経験があります(笑)。

余談ついでですが、ゲームの量産には約1ヶ月くらい掛かるので、発売日の1ヶ月くらい前にはマスターアップしていないと発売日に間に合わず、発売延期となります。
タイトルによって量産の期間は微妙に変わってきますが、1ヶ月くらいが目処になります。
まぁ、PS2ソフトで5月末発売予定でゴーデンウィーク終了時にマスターアップしたタイトルもあるんで、PS2なら3週間ほどで量産出来るのかもしれません。
発売まで1ヶ月を切っても発売延期の告知が無い場合は『発売延期は無い』と考えて良いと思いますよ。

・・・ふぅ疲れた。意外と長くなりました。
本当なら、バグとユーザーサポートとの関係についても語りたい所ですが、こっちはこっちで長くなりそうなんで、またの機会にします。
今日はここまで。
スポンサーサイト



この記事のトラックバックURL

http://azto.blog35.fc2.com/tb.php/20-82edeeb7

コメント

最近はオンライン機能のあるゲームも増えているので、チェックも難しいですよね。
自分がやった経験のあるテストでは、オンライン機能をチェックするためにLAN環境でやっていたときがあって、凄い快適なんで安心していたら、試しに外部からネット経由で試したときにラグがひどすぎて急遽発売延期……なんてのもありました(笑)
>20090421 | ばーばぱぱ さん
僕はオンライン関係のテストプレイは参加していませんが、相当大変みたいですね。
Wii・PS3・360のサーバーはそれぞれのハードメーカーが管理してくれているので、多少ラグなどのチェックはしやすいんでしょうけど、PS2などは各ソフトメーカーがサーバーの設置・管理を行う為、ラグやサーバー負荷テストが難しいと聞きました。
おかげで、PS2のオンライン対応ソフトの多くがかなり早くサービス終了に陥るみたいです。

コメントする

管理者にだけ表示を許可する

Template Designed by DW99