|
|
|
|
「一つのゲームに対して、通常50万から75万行ほどのコードが書かれるんだ、」Westlake の代表である Phil はそう話した。「ゲームには莫大な CPU パワーが必要だが、私たちの仕事は出来る手段なら何でも使って、ソフトウェアにそのパワーを提供することなんだ。ヘイローでは、ゲームテクノロジーの限界を押し広げることができた—斬新なグラフィックと頂点フラグメント プログラミングの広範な活用で、ヘイローは本当に素晴らしいゲームに仕上がった。マーケットにある他のどんなゲームにも勝るグラフィックとパフォーマンスを実現する必要があったんだ。」 ヘイローは Mac と、Mac OS X に付属の開発ツールセット Xcode を用いた OpenGL に最適化されている。Westlake は Xcode 、特にハードウェア解析ツール Shark や OpenGLツールのプロファイラー、ドライバーモニターを使用してまず元々 Mac 用にデザインされたゲームを取り込み、それから Xbox 、 Windows 版へと進み、非常に短い時間で新しい魅力的な Mac バージョンを開発した。「Windows バージョンは9月に完成したんだ、」 Phil は言う。「それからクリスマス前に間に合うように開発を終える必要があった。冒険だったけど、優れたツールやアップルの開発サポートにかなり助けられたよ。」 ヘイローは Mac と、Mac OS X に付属の開発ツールセット Xcode を用いた OpenGL に最適化されている。Westlake は Xcode 、特にハードウェア解析ツール Shark や OpenGL ツールのプロファイラー、ドライバーモニターを使用してまず元々 Mac 用にデザインされたゲームを取り込み、それから Xbox 、 Windows 版へと進み、非常に短い時間で新しい魅力的な Mac バージョンを開発した。「Windows バージョンは9月に完成したんだ、」 Phil は言う。「それからクリスマス前に間に合うように開発を終える必要があった。冒険だったけど、優れたツールやアップルの開発サポートにかなり助けられたよ。」 近年のゲームは頂点フラグメント プログラミングを採用し、ハイエンド グラフィックカードに直接データを送信する形をとっている。それにより開発者はより鮮やかで特別なエフェクトを作り出すことができるようになった。こういったエフェクトは、主にピクセルレベルでエフェクトをコーディングすることで得られる(このため、この手法は「ピクセル シェーダー」または単に「シェーダー」と呼ばれることがある)。 「ヘイローの水面がいい例だ、」 Westlake のシニア デヴェロッパーでデヴェロップ部門の部長である Ken Cobb は教えてくれた。「非常にリアルなさざ波のエフェクトを加えてある。本物の水のように光を反射するし、反射している物体や見る角度によって色が変わるんだ。これらはシェーダーで実現されている—全体の反射エフェクトを考慮して、ひとつひとつのピクセルがどのように見えるべきかを計算するよう、実際にピクセルごとにプログラミングするんだ。テクスチャでも同じだ。テクスチャを貼る時には、そのテクスチャの各ピクセルがシーンに応じて適切に反射するようにプログラムする。」 ピクセルシェーダーを使うと、従来の問題を解決した金属光沢のエフェクトを実現することもできる。「とてもクールな輝きを与えることができるんだ。最先端のライティングエフェクトはオブジェクトに活気と命を吹き込む。」 Ken は言った。ヘイローは最初にピクセルシェーダーを利用した Mac 商用ゲームとなった。 最強のツール: SharkWestlake は CPU 命令レベルでプログラムがどのように実行されるかを Shark で詳細に見ることができた。「Shark は驚くべきツールだ、」 Phil は語る。「ソフトウェアの中で他よりもコードの実行が遅いエリアをはっきりと示し、各コマンドが何をしているのか教えてくれるんだ。そのおかげで焦点を合わせ、最適化するべき場所をピンポイントすることができ、CPU パワーを最大限に引き出せるようにコードを調整することができた。」 Shark は コードの概略化と分析を行い、最適化のためのアドバイスを示すツールで、最小限の手間で使用できるようにデザインされている。 「ヘイローのベータ版で発見されたあるバグについてなんだが、」 Phil は話した。「ある画面解像度だと Quicktime ムービーがひどく途切れたりフレーム落ちするというバグがあった。そこで Shark を使ってプログラムの実行フローをたどっていき、ビデオカードのドライバがフルモーションビデオのデコーディングに時間をかけすぎていることを発見したんだ。すべてのムービーを、異なる再生パラメータ設定でもう一度圧縮するのには一時間しかかからなかったよ。それからというもの再生はシルクのようになめらかになった。 Shark の素晴らしい点は、どの Quicktime API の呼び出しが、ムービー再生を遅くしているかをはっきりと示し、問題を突き止めて素早く解決する手助けをしてくれたことだ。」 グラフィックの可能性を広げる OpenGLOpenGL は Macintosh、Unix、Windows などのプラットフォームに存在する、クロスプラットフォームなグラフィック標準技術だ。二次元および三次元データを扱うことができ、Mac においてはどの API よりも適切に素早くグラフィックカードにデータを送ることができる。これによりスクリーンに映像を素早く映し出せるようになった。OpenGL の三次元アプリケーションにはゲームや分子モデリング、アニメーションなどがある。 OpenGL を効果的に利用するには、グラフィックカードへ送るデータフローの最適化がカギとなる。OpenGL プロファイラーは開発者にデータフロー使用のシナリオを与え、最適な状態でデータを記憶できるようにする。その間ドライバーモニターはグラフィックカードとその利用効率を監視している。 Westlake はヘイローの移植に両方のツールを活用した。 ヘイローと OpenGLヘイローは OpenGL の処理にほとんどの時間を費やしているため、OpenGL コードの分析とデバッグを行うために OpenGL プロファイラーは極めて重要だと Westlake は考えた。プロファイラーは実行中の OpenGL アプリケーションを監視し、それに関連するさまざまなデータ、たとえば関数呼び出し頻度や性能オーバーヘッド情報などを集める。またアプリケーションを一時停止させて OpenGL ステート マシン、フレーム バッファや読み込まれたテクスチャマップなどの状態を表示することもできる。基本的には各関数に使われる時間の統計を取り、開発者がトラブルが発生している場所を特定できるようにするツールだ。さらにプロファイラーは実行中のアプリケーションに読み出されたリソースを集め、アプリケーションが指定したあらゆるテクスチャや頂点プログラム、フラグメント プログラムを取り込んで解析し、OpenGL ライブラリに渡されるデータの完全性を開発者に対して目に見える形で提供する。 「OpenGL プロファイラーは『リソース』の遷移を記録する。どのテクスチャがロードされたかとかね、」Ken は説明した。「オブジェクトに間違ったテクスチャが貼られて表示されたり、テクスチャが貼られずに表示されたりすることが開発中に何度もあった。OpenGL プロファイラーを使うと、実際にロードされたテクスチャの情報やそのものを確認できたんだ。ヘイローの開発中には何度もお世話になったけど、特にヘイローはただの二次元テクスチャだけでなくボリュームテクスチャやキューブテクスチャ、もちろん普通のテクスチャも使われている。以前ならこんなのは処理できるものではなかったよ。これらの種類のテクスチャが間違いなくロードされているのを確認するのにプロファイラーを使ったんだ。」 Ken は続けた。「OpenGL プロファイラーの機能で他にとても便利だったのは、その時の OpenGL の状態を見られることだ。色やアルファブレンディング、テクスチャフィルタリングなど、文字通り数百もの設定があるからね。プロファイラーを使う以前は、OpenGL のステートにバグが見つかったら、そのステートを表示するためのデバッグコードを書かなくちゃならなかった。その上、どのステートが問題を起こしているのか自分で考える必要があったんだ。時間がかかるし退屈な作業だったよ。でも今はプロファイラーを使ってすべてのステートを一度に見ることができる。もちろん自分でデバッグコードを書く必要もない。素晴らしいことだよ—ヘイローの開発では何度もこの機能に助けられたね。」 OpenGL モニタードライバーは心電図のような方法でグラフィックカードを監視する。カードの心拍を計り、それがシステムの能力にどのように影響を与えているか調査する−グラフィック演算装置(GPU)から派生する、大量のローレベル情報を監視する能力を備えているのだ。カードにロードされているテクスチャの数や残り容量の大きさも調べ、待機状態が長く続いたり逆に処理がオーバーフローしていないか監視する。集めた情報はそのコンピュータで実行されている全ての OpenGL アプリケーションの連携挙動を反映し、最適化すべき箇所を突き止めるための手がかりとなる。「すぐれたゲームパフォーマンスを得る本当のカギは、グラフィックカードへのデータフローをいかに最適化するかだ。そしてそれこそがモニタードライバーが可能にしてくれることなんだ。」 Ken は言った。「作業時間を本当に短縮してくれたし、ヘイローのパフォーマンスも向上させることができた。」 「Mac OS X がピクセルシェーダーを完全にサポートしているおかげで、ヘイローの移植を成功させることができたよ、」 Ken は続けた。「そこれにXcode による OpenGL ツールが組み合わさり、最先端技術を駆使して優れた映像をゲームの中に作り出すことができた。その品質も申し分ない—その全てを本当に短い時間で実現できた。」 Mac の伝統ヘイローは Mac の特徴を多く継承している。これまで長い間 Mac 上で開発を行ってきた Bungie Software が開発したゲームなのだから。 Microsoft の傘下で 2003 年までは Xbox で独占的な開発が行われてきたが、その後 Gearbox の手で PC に移植され、Mac 版においてはさらに強化された形となって登場した。 Macsoft によって発売された Mac 版にはアクションに満ちた戦闘やスリリングなゲームプレイが満載され、世界中のビデオゲームファンの心を捉えることだろう。さらに Mac 版および Windows 版のみで体験できる新機能も多く存在している。 「Mac にとってエキサイティングな時代」Westlake Interactive は1997年に4人の仲間によって設立された、Macへの移植を主に手がける開発会社だ。多くの Mac向けゲーム発売元は大きな Windows ゲーム発売元からライセンスを買い取り、Westlake のような会社とうまく協力してMac 版を製作する。Westlake は他に『シムズ』、『トゥームレイダー』、『マッデンNFLフットボール』、『ハリー・ポッター』、『NASCAR?レーシング』、『ジェダイ ナイト』、さらにあの『アンリアル』なども手がけている。 「私たちがやっていることはほとんど黒魔術みたいなものだよ」 Phil は言う。「Mac 開発者として一流でいなくてはいけないが、他のシステムも熟知していなくてはいけない。 Mac OS X の出現とその OpenGL のサポートのおかげで、Mac に対応するゲ—ムの状況はかつてないほど良好になっている。 Mac に関わる私たちにとってとてもエキサイティングな時代だよ—完成されたツール、ハードウェア、ソフトウェア、それに素晴らしい開発サポート環境があるからね。」 ウェブサイト www.westlakeinteractive.com で Westlake Interactive についてさらに詳しく知ることができます。販売会社 Macsoft については www.macsoftgames.com をご覧ください。 |
|