「全ファミ。」ブログ編

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

レースゲームでバグを出す話

 バグ出しの基本は、「いつでもどこでもあらゆることを試す」ことであるが、そんなことを言われても想像できない人が多いと思う。そこで、ファミコンの『F1レース』を例に上げて、バグ出しの基本を書いていくことにする。なお、『F1レース』が特別にバグが多いといったことは全くなく、あくまでも例である。
 まずあなたは、ファミコンにカセットを挿して電源を入れるだろう。そして、おもむろにスタートボタンを押して、「さぁて、いっちょバグを出してやっか!(CV:野沢雅子)」などと気合いを出すかもしれない。が、その時点であなたは不具合のチェックポイントを見逃している。ずばり、スタート画面である。
スタート画面で出来るのは、せいぜいスタートボタンとセレクトボタンを押すことくらいと考えがちだが、そんなことはない。まず、セレクトボタンを押してみよう。すると、カーソルが下のモードに移る。さらに押すとその下に、さらに押せば1番下のモードに当ってくれる。
 ここからが重要だ。もう一度セレクトボタンを押すと、カーソルは1番上のモードに戻っただろうか? さらに、カーソルが最初の位置に戻った時、スタートボタンでゲームが正常にスタートするだろうか?
 そのどちらも、「ループ処理」という基本的な処理の一つである。ループ処理が出来ていなければカーソルは1番上に戻らないし、たとえカーソルが1番最初のモードに当たっていても、スタートすると1番下のモードが始まってしまったりするのだ。
ちなみに二つ目のバグは、「カーソルがループした際、カーソルの見た目の位置と内部的な位置がずれてしまう」ことで起こっていると考えられる。ありていに言えばプログラミング時のケアレスミスだが、それゆえに、いつどこで起こるかまったく予想することができない。だからこそ、この類の不具合を見つけるにはしらみつぶしに当たるしかないのだ。
 この他にも、セレクトボタンだけでできるデバッグとして「セレクトボタン連打」がある。セレクトボタンを連打していると、だんたんとカーソルの動きが遅くなってくるという類のバグを見つけることができるかもしれない。
ちなみに、そのバグを称して「それはキーだまりだね」などともっともらしく言うとかっこいいので、色々なゲームでキーだまりが起こるまで連打をしてもらいたい。
 では、スタートボタンでのバグ出しについて考えてみよう。普通、スタートボタンを押せばゲームが始まる。……のだが、実を言えば始まらないタイミングがある。みなさんご存知の「デモ画面」である。デモ画面中にスタートボタンを押せば、普通はスタート画面に戻るかそのままゲームが始まるかのどちらかである。だから、狙いどころは別にある。ずばり、「デモ画面が始まるのと同時に」スタートボタンを押すのだ。さらに細かく言えば、デモ画面の始まる直前と、デモ画面が始まった直後の両方のタイミングも試すといい。運がよければ、デモ画面から抜けず、ゲームも始まらない現象が発生してくれることだろう。さらにおいしいパターンとして、その後、一切のスタートボタン操作が効かなくなる現象さえ見つかるかもしれない。その手のバグを見つけるとかなりビビるのだが、原因を特定できた時の喜びは大変に大きかったりする。ちなみに、ファミコンの『ガーフィールドの一週間』には、本当にスタートボタンでゲームが始まらないバグが存在している。スタートボタンだからといって軽く考えていてはいけないのだ。
 なお、スタートボタンもセレクトボタンも押さないバグ出し方法もある。何を隠そう、「デモ画面」そのものだ。ずっとデモ画面を見続けていると、そのままバグってしまう……。そんなのあるわけないじゃんと思うだろうが、ファミコンの『戦場の狼』は、デモ画面を見続けていると本当にバグってしまう。これはきっと、当時テストプレイをした人達がみんなせっかちさんで、ゲームから離れている時は電源を切っておいたに違いない。今で言うエコロジーの走りだったのだろうから、これはもう仕方のないバグだと言える。地球に優しい仕様と言い切ってしまおう。
 
 ……まったくゲーム本編に触れていないのだが、それどころか別に『F1レース』でなくてもいいような気もしてきたのだが、それだけバグ出しは奥が深いのだ。たかがスタート画面、されどスタート画面。ゲームを起動した直後からバグ出しは始まっているのだ。

---------
ゲームのバグを出す話

ゲームのバグだしについて考える。
レースゲームでバグを出す話
『F1レース』で基本的なバグ出しをしよう。
デバッガーに向く人、向かない人
じゃんけんマシンが史上最強すぎる件
バグ出しを暮らしに生かす話
ロマサガ2のひらめきに思うこと

ゲームのバグだしについて考える。

Wiiのホラーアクション、『零 ~月蝕の仮面~』で、いくつかの不具合が発見されており、任天堂からおわびも出ているようだ。私自身もかつてはゲームのデバッガーだったこともあるので、バグそのものの話ではなく、「ゲームでバグを出す」ことについて書いてみたい。

私が「生涯1デバッガー」宣言したのはもう10年も前の話。ちょうどその頃、3ヶ月間、1人でRPGのデバッグをしていた。労働時間も月に300時間、400時間、その次は517時間である。労働時間はともかく、ゲーム専門デバッグ会社がある今から考えれば、1人でRPGをデバッグするなんてムチャな話だ。ただ、だいたい当時のちっこいゲーム制作会社なんてのはそんなものだった。

ゲームの開発とともにチェックすべき項目が増えてきて、時間も人手も足りない中で、「いかに効率よくバグを見つけるか」ということにだけ頭を絞ることにしていた。具体的には、「ある状態や条件の中で、最もバグの出やすいことをする」のだ。バグというのは、仕様漏れであれプログラミングミスであれ、大半はプログラムの処理が出来ていないことが原因で起こる。プログラムの処理が出来ていないところを探すには、プログラマーなりプランナーなりが考えていないこと(=ユーザーがやらなさそうなこと、できなさそうなこと)からやっていくのが手っ取り早い。誰でも見つけられるのは、ただのテスターにでも出来る。フリーズやリセットやハマリなどの重いバグを大量に出して、高慢ちきな美人ディレクターにギャフンといわせたい完成度を高めたいという必死な思いがあったのだ。

ただ、後から職場に入ってきたデバッガーは、これができないことが多かった。簡単に言えば、フツーにゲームを楽しんじゃう。普通に製品版を遊ぶところからゲームに携わっているから、「バグを出す」という発想自体がそもそも皆無で、あまつさえゲームバランスがどうこうなどと言い出す始末。だから、当時のゲーム業界は、デバッグなんざ学生のあんちゃんを安い給料で使って、最低限のことだけをさせればいいやという風潮がすごくあったと思う。だから、プレステ黎明期のSCEが「フリーのデバッガー募集」なんて広告を出した時に、「お、ようやくデバッガーの重要性に気がついてくれたのか……!」などと感慨深い気持ちになったものである。

閑話休題。
ゲームはプレイヤーが自由に操作できるという性質上、どこで何をされるか分からない。だから、どこであれいつであれ、ユーザーやデバッガーの好みやら趣向やらはいっさい関係なく、その場その時に出来ることはすべてやらなければならない。当時はインパクトの大きいバグ出しから入ったけれども、今ならもっとピンポイントでバグが出やすい環境を構築してのバグ出しが出来ると思う。RPGなら毒を受けつつ歩きつつ、HPが0になったところでダメージゾーンに入り、それと同時に戦闘開始、とかね。でも、こんなことばっか考えながらゲームしていると、いきなり「あ、ここでこうすればバグが出るだろ……やっぱり! だが、最終面直前での仕込みはないだろうUPLさんよう!!」とかいうことになりかねないので、バグ出しに関するスイッチは切っておくようにしておいたりする。

---------
ゲームのバグを出す話

ゲームのバグだしについて考える。
レースゲームでバグを出す話
『F1レース』で基本的なバグ出しをしよう。
デバッガーに向く人、向かない人
じゃんけんマシンが史上最強すぎる件
バグ出しを暮らしに生かす話
ロマサガ2のひらめきに思うこと
前のページ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。