大量発生するバグを撃墜せよ
セガが取り組んだ「ゲーム開発のプロセス改善策」
家庭用ゲーム機の進化に伴い、より高品質かつ短納期での開発が求められるゲームソフト開発だが、開発プロジェクトの規模の拡大に伴う課題も多く存在する。セガが取り組んだ改善策を紹介する。
家庭用ゲーム機の劇的な進化がゲーム開発をより困難にしている?
1983年に任天堂の「ファミリーコンピュータ」が登場し、社会現象を巻き起こしてから約26年。家庭用ゲーム機は飛躍的に進化を遂げ、現在の最新機であるソニーの「プレイステーション 3」(以下、PS3)、マイクロソフトの「Xbox 360」などでは、CGを駆使してまるで実写のようなリアルな映像が楽しめるゲームタイトルが次々と生み出されている。
こうした家庭用ゲーム機の進化に伴い、ゲームソフトの開発を手掛けるメーカーにとっては「より高品質なゲームタイトルを、より短納期に開発する」ことが求められるようになった。そのため、その開発プロジェクトも従来とは比べものにならないくらい規模が大きくなった。これが「開発工数とプログラムコード行数の増大によるバグの大量発生」など、さまざまな問題を引き起こしており、ゲーム業界全体の重大な課題となっている。
こうした課題の解決に積極的に取り組み、ゲーム開発の効率化を実現したのがセガである。セガといえば、パズルゲーム「ぷよぷよ」を始め、格闘ゲーム「バーチャファイター」シリーズ、ロールプレイングゲーム(RPG)「ファンタシースター」シリーズ、アクションアドベンチャー「龍が如く」シリーズなど、幅広いジャンルで多くの人気タイトルを抱えている。同社では現在、年間10本以上のゲームソフトを自社内で開発している。
しかし、次世代機が登場した当時の開発プロジェクトでは、前述したような問題が山積していたという。同社はどのようにこうした問題を解決したのだろうか。
ゲームソフトの開発プロセスとは
ゲームソフトの開発プロジェクトは、まず企画を立ち上げて、ゲームの世界観を構成する各素材のデザインとそのデータ化、プログラミングを進める。その後に、チェック部門によって動作検証などのバグチェックが行われる。
「プロジェクトが大規模になればなるほど、バグの量も増加するため、チェック部門の作業負荷が増大し、最終的なゲーム品質や納期にも影響を及ぼす恐れがある」と語るのは、CS研究開発本部 CS R&D推進部 部長の庄司 卓氏だ。
セガではこうした事態を避けるためにも、開発段階でのバグのチェック体制を整備していた。
しかし、実際には、ソースコードのコンパイル後に構文チェックを行う、またペアプログラミングで開発を進めるなど「手作業でのバグチェックが中心となっていた」と同氏は当時の状況を振り返る。
大量発生するバグを撃墜せよ
従来のゲーム機では、このチェック体制でも対応できていた。しかし、次世代ゲーム機の大規模開発プロジェクトではプログラムコードが100万行を超えることもあるため、手作業のバグチェックではもう限界だった。その結果、チェック段階でも想定以上のバグが発生するようになってしまったのである。そこで、同社では解消策として静的解析ツールを導入し、バグチェックの自動化と早期段階でのバグ発見・改修を目指した。
静的解析ツールの導入に当たっては、複数のツールを検討した結果、コベリティの「Coverity Prevent」(以下、Prevent)を採用した。庄司氏は「他社のツールの場合、コーディング規約違反までバグと判断し、大量のエラーやワーニングメッセージが出てくるため、効率的なバグチェックとまでは至らなかった。Preventでは誤検知が少なく、バグの原因調査も容易に行えるようになった」とその導入経緯を説明する。
実際に同社では、2007年から次世代ゲーム機の大規模開発プロジェクトにPreventを導入した結果、開発効率化および品質向上の面で大きな成果を挙げているという。
セガの第三CS研究開発部 プログラムセクション テクニカルディレクターの節政暁生氏は「アクションRPG『ファンタシースターZERO』では、開発の初期段階からPreventを導入し、フル活用することで、非常に順調に開発プロジェクトを進めることができた」と振り返る。
具体的には、新たに作成したプログラムコードを毎晩Preventで自動バグチェックを行うデイリービルドを実施。翌日、バグとして指摘された部分を修正することで、効率的にコード修正が行える体制を整えた。
節政氏によると、この改善策によって「チェック部門が動的チェックを行う段階で、ゲームがフリーズしたり、メモリを破壊してしまうような致命的なバグがなくなった」という。また、チェック担当者は映像や音声などのデータバグやゲーム進行に直接影響を及ぼすフラグバグ、さらにはゲームバランスの調整など「よりゲームの質を高めるチェック作業に注力できるようになった」と説明する。
ファンタシースターZEROでは、チェック部門から「これほどスムーズにチェックが進んだゲームタイトルはなかった」と評価されたほど、改善効果は大きかった。その導入効果については「チェック部門での作業工数で換算すると、2、3人月分は効率化できた」(節政氏)と強調する。
“スーパープログラマー”だけに頼る開発は、もはや限界に
家庭用ゲーム機の歴史は、8ビットのファミコンから始まり、16ビットの「スーパーファミコン」「PCエンジン」「メガドライブ」、次の世代がPS、「セガサターン」「NINTENDO64」、そして2000年前後にはPS2、「ドリームキャスト」「ゲームキューブ」が登場している。
「この時代までは開発プロジェクトの中に“スーパープログラマー”が数人いれば、1つのタイトルを開発することができていた」(節政氏)という。
しかし、開発プロジェクトの規模が大きくなるにつれて、1つのゲーム開発に携わるプログラマーの人数も増加してきた。現在ではプログラマーだけで20~30人、全体では100人規模に達するプロジェクトもある。ここまで規模が大きくなると、少数のスーパープログラマーだけの力ではどうにもならなくなる。同社が大規模ゲーム開発プロジェクトにおける課題としていたのが「プログラマーの技術レベルの底上げ」であった。
この点についてもセガでは、ツール導入が大きな効果を発揮しているという。デイリービルドによって毎日バグチェックを行うことで、新メンバーやコーディングスキルが高くないプログラマーによる“致命的なバグ”が未然に防げる。加えて、バグが検知された時点で「そのプログラムコードを作成した担当者が誰で、どこが悪かったのか」が確認できるため、ミスした本人にとってはその原因を即座に理解し、技術レベル向上に役立てることができる。
また、ある程度経験を積んだプログラマーでもバグになりやすく、癖のあるプログラムコードの書き方が身に付いてしまった場合があるという。
「これまで他人に指摘されてもなかなか直せなかった人でも、チェック段階で自分の書いたプログラムコードに何度もバグが発生していることが分かれば、おのずと書き方を修正する」(節政氏)
こうした取り組みの結果、セガのゲームタイトルの多くは「バグになりやすいコードがほとんどない、非常にきれいなプログラム」になっているというのだ。
セガでは、静的解析ツールの活用によって「大規模ゲーム開発プロジェクトにおけるプログラムコードに関するバグ問題はほぼ解決することができた」としている。庄司氏によると、今後は、次世代機のゲームに欠かせない動画や音声、高品質なCGなど膨大なデータの管理およびバグチェックの効率化に力を注いでいく考えだ。
ゲームソフトの未来像とは?
前述したように、今後のゲームタイトルで使用される動画やCGなどのデータ量は、さらに増えていくと予測される。また、データの複雑化が進み、データそのもののバグ(不適切なデータ)によりゲームソフトのパフォーマンスに問題が発生することも予測される。それらの問題を漏れなくチェックする管理手法を構築していくことが大きな課題になる。
これらの課題を解決することに加えて、庄司氏は「マルチコアプログラミングのコード品質の向上が重要な取り組みととらえ、答えを探していく。さらに、ネットワークゲーム環境での動作テストやバグチェックも、今後必要になるだろう」と語る。
同社の開発改善の取り組みは、既に新たなフェーズに入りつつあるようだ。
ゲーム開発と業務システム開発との共通点
ゲームソフトと業務システムの開発プロジェクトでは、さまざまな面で異なる要素が多い。
ゲームの開発には、映画などのエンターテインメント向けコンテンツ制作と、組み込み開発の両方のノウハウを融合させることが必要である。しかし、開発プロジェクト自体がうまくいったとしても、ゲームの内容そのものが楽しくなければ、もう一度、開発を最初からやり直すこともあるという世界である。
ただ、セガが実践した開発効率化への取り組みは、業務システムの開発部門にも共通して学ぶべきところも多いはずだ。特に「プログラマーのレベルを底上げし、プログラムコードの無駄を省いて、よりきれいなコードにしていく」という取り組みは、参考にしたいポイントだろう。
その実現のためには、静的解析ツールの有効活用やソースコードの構成管理、さらには毎日バグチェックを行うデイリービルドの体制など開発環境を整えるといった「プロジェクト全体で開発効率の向上に取り組んでいく姿勢」が重要だといえる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
2
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
3
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
4
「IBM iはDXのボトルネック」は誤解 意外と知らない今風モダナイズの効果
-
5
「朝8時にバッチが終わらない」データ爆発の危機をJPX総研はどう乗り越えたか
-
6
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
7
AI導入後に発覚する「社内文書を読めない」問題 情シスは何を直せばいい?
-
8
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
9
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
-
10
AIの導入効果はどう測る? DMM.comのエンジニア組織に学ぶ効果検証のノウハウ
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
プログラミング不要で誰でも実現できる、ネットワーク運用管理の自動化とは
-
5
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
6
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
10
“あのファイル転送”で暗躍するノーウェアランサム
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー