1.まえがき
ソフトウェア開発で、最も面倒で時間がかかる作業がソースコードのデバッグです。要求仕様書や設計書の品質が悪いと、これまで快調に進んできた(ように見えた)プロジェクトも、デバッグ工程で本性を現し、なかなか前に進みません。これまで怠けてきた分のツケが一挙に回ってくるのです(プロジェクトマネージャーは、デバッグフェーズに入った3日目ぐらいで、「今回はうまく行きそうだ」とか「かなり苦労しそうだ」と予想ができます)。
デバッグ工程では、「バグは悪者」であり、バグを徹底的に叩き出し、品質を上げようとします。今回、組み込み系システムの人気分野であるゲームを取り上げます。同じ組み込み系でも、ゲーム系は非常に特殊な状況にあります。ゲーム界において、バグとは何か?全てのバグは悪か?をテーマに話を進めます。
2.ゲーム系のバグ
2014年8月、カナダのアルバータ大学で、ビデオゲーム関係の学会がありました。全部で100人以上が参加し、ゲームそのものだけでなく、ゲームの先進国である日本文化の分析、認知科学、新しいゲームの可能性、開発技術に至るまで、発表の範囲は非常に広く、「ビデオ・ゲームの百貨店」状態でした。
ゲーム機も一種の「組み込み製品」です。デバッグを実施して、品質を上げることは非常に重要ですが、一般の組み込み系ソフトウェアに比べて、バグに大きな違いがあります。
(1)ゲームに重大なバグがあっても、使用者の生命や財産に影響しません。
(2)最悪のバグは、「ゲームに魅力がない」。
(3)ゲーム系のバグの中には、「魅力のあるバグ」があります。
以下、それぞれについて概要を説明します。
2.1 ゲームのバグは使用者の生命や財産に無影響
組み込み系の製品にバグがあると、使用者の生命や財産に大きく影響する場合が少なくありません。「走る組み込み製品」と言われ、数百個のマイクロプロセッサをネットワークで繋げている自動車、飛行機、船舶、医療系の製品は、バグがあれば使用する人の生命に甚大な被害を起こします。
一方、ゲームのバグ、例えば、弾が当たったのにエイリアンが死なない、先程まで道を歩いていたゲームキャラクタが川の上を歩いている、ベッドがリビングルームの空中に浮いているなどのバグがあっても、プレーヤーの生命や財産に損失を与えません(例外として、パチンコやスロットマシンの制御ソフトウェアにバグがあると、利用者に被害を与える場合があります)。
画面がフリーズして再起動しなければならないとか、キャラクタの制御不能など、深刻なバグでないかぎり、プレーヤーは「しょうがないなぁ」と思いながら、ゲームを続けることでしょう。航空機管制や列車運行系のソフトウェアのような大事故と背中合わせのプログラムを開発しているエンジニアには、少しうらやましいかも知れません。
2.2「ゲームに魅力がない」バグ
通常の組み込み製品で、最悪のバグは「無関係の人の生命や財産に危害を及ぼしたり、環境を破壊する」です。例えば、大陸間弾道弾が勝手に飛んで行ったり、化学薬品の製造工程で発生した有毒なガスを解毒せずに排出してしまうなどが相当します。ゲーム系のプログラムでは、身体や財産に影響するバグはありません。
ゲームメーカーが最も恐れるバグは、「ゲームが魅力的ではない」です。面白くないと買ってもらえません。
ゲーム系のソフトウェアの開発コストは非常に高価で、数十億円規模の物も少なくありませんし、開発に数年かかります。例えば、10億円の開発コストは、通常のソフトウェア作成の場合、50人で20カ月もかかる巨大プロジェクトに相当します。
この開発コストを回収するのは容易ではなく、「魅力のないゲーム」、すなわち、買ってもらえないゲームは、会社の存続問題に直結します。「売れなければ即倒産」のヒリヒリ感は、ゲーム開発エンジニアには非常に大きなプレッシャーになります。ゲーム系のプロジェクトマネージャーには、顧客が決まっていて、売り上げが確実に見込める航空機管制や列車運行系ソフトウェアの技術者が羨ましく思えるでしょう。
2.3「魅力のあるバグ」が存在する
通常、開発技術者がプログラムのバグを検出したり、バグによる動作不良を使用者から指摘されると、必ずバグを修正します。バグが多すぎて修正する時間がない場合、「修正予定バグ一覧」に載せて、次のバージョンで修正します。「バグは悪」なのです。
ゲームの場合、バグは必ずしも「悪」ではありません。バグにより、「生命力が増えた」「相手の弾が当たっても自分はダメージを受けない」「エイリアンが入れない場所があって、そこにいると敵から見つからない」など、プレーヤーが少し得をすることがあり、このようなバグは、歓迎されます。同じゲームでプレイする仲間内でこのバグが有名になると、「バグ」ではなく、「ゲームの特徴」あるいは、「ゲームのウリ」になったりします。これが、「魅力のあるバグ」で、一般の組み込み製品には見られない特徴です。
Copyright© 2014 ITmedia, Inc. All Rights Reserved.