|
■ Direct3D 10.1はWindows Vista SP1にて 初日の9月6日は、DirectX関連のセッションが行なわれたが、内容的にはDirectX 10の基本情報に留まり、セッション中に示された情報は基本的に3月に開催されたGame Developers Conference 2007 (GDC2007) での情報と大差ないものだったので本稿では詳細は省略する。興味がある人はぜひ本連載のバックナンバー「西川善司の3Dゲームファンのための次世代DirectX講座」を参照していただきたい。 最大のトピックとしては、DirectX 10.1 (Direct3D 10.1) が「Windows Vista Service Pack1」にて提供されるということが公式に発表されたことだ。そして、Direct3D 10.1対応GPUが、このSP1リリースに合わせて提供されることがほのめかされたことも注目すべきポイントだといえる。逆にSP1の適用のみがDirect3D 10.1対応CPUの機能を活用できる唯一の方法であることも強調された。 そして、プログラマブルシェーダ仕様 (Shader Model) はDirect3D 10の「4.0」から「4.1」へとマイナーバージョンアップすることも公言された。 追加される機能については、Direct3D 10.1の機能としては過去の連載記事で報じたものそのまま同じという印象だが、簡単に紹介しておこう。 1つはアンチエイリアス処理のプログラマブル対応化だ。アンチエイリアス処理におけるサブピクセルのサンプル位置の指定や対応するサブピクセルレベルの深度値の読み出し、そのサンプル方法までがプログラマブル (コンフィギュラブル) 拡張される。 2つ目はレンダーターゲット同士のブレンディング手法のプログラマブル化 (コンフィギュラブル) 拡張。 そしてDirect3D 10でも利用可能なテクスチャを配列構造で扱う仕組みをさらに拡張し、全方位の6面体構造のテクスチャの「キューブマップ」も配列構造として参照できる仕組みも追加される。 また、今回のカンファレンスでは触れられなかったが、Windows Vista専用のGPUドライバの仕組みであるWDDM (Windows Display Driver Model) 1.0/2.0がさらに拡張されWDDM2.1と進化する予定だ。 Windows Vista SP1のリリース時期は未定となっており、明らかにはされなかったが、AMD(ATI)やNVIDIAの次期GPUのリリースとほぼシンクロして登場すると推察される。
Windows VistaのDirect3D 10自体には潜在的なバグが残っているとされ、SP1への期待は高まりつつある。早期のリリースを期待したいものだ。
■ そもそもXNAってなに?
「XNA」というのはマイクロソフトが提唱するゲーム開発フレームワーク構想の名称。基本コンセプトとしては、「Windowsプラットフォーム、Xbox 360プラットフォーム、将来的には携帯機器に対しての透過的かつ統合的なゲーム開発を行なえるようにする」という概念が提唱されている。 2006年12月には、このコンセプトを.netフレームワークを応用したシステムを利用して具現化する開発フレームワークとして「XNA Game Studio Express1.0 (XNA GSE1.0)」をリリースした。 詳細は本連載のバックナンバー「西川善司の3DゲームファンのためのXNA Game Studio Express講座」を参考にして欲しいが、本誌読者にはXNAに全く予備知識がない方も多いと思われるので、ここでも簡単に解説しておく。
マイクロソフトには「C#」というC言語ベースのプログラミング言語があり、この言語で組まれたプログラムはコンパイルされると「MSIL」(Microsoft Intermediate Language) という中間言語バイナリとして生成される。MSILは直接実行することはできず、これをターゲットプラットフォームでCLR (Common Language Runtime) と呼ばれるランタイム・コンパイラ&ラウンチャで、リアルタイムコンパイルして初めて実行される。 面倒くさい仕組みのよう思えるが、そのプラットフォームで動作するCLRさえ用意すれば、C#のプログラムは機種依存しないでどこでも動作できるのだ。
この「.NET」の仕組みをゲーム向きにカスタマイズし、Windows、Xbox 360向けにCLRを実装することで、同じプログラムがインテル系CPUのWindows PC、PowerPC系CPUのXbox 360で動作できる仕組みを実現したというわけだ。
つまり、XNA GSE1.0は「.NET」ベースのゲーム開発環境と言うことができる。
■ XNA Game Studio 2.0発表 今回、発表されたのは「XNA Game Studio 2.0」(以下XNA GS2.0) で、「Express」というキーワードが姿を消している。 まずはここに引っかかる人も多いことだろう。 これまでのXNA構想では、アマチュア向けのXNA Game Studio Expressとハイエンド/プロ仕様のXNA Game Studio Professionalの登場がほのめかされていたが、今回のXNA GS2.0登場にあたって、ExpressとProfessionalの2バージョンは統合されて提供されることになり、バージョン種別を示すキーワードを省略するネーミング方針が採用された。 「統合」の意味がわかりにくいかもしれないが、簡単に言えばインストール環境によって、ExpressにもProfessionalにもなる……と考えるとイメージしやすいかもしれない。 まず、XNA GS2.0を利用するには、(XNA GSE1.0と同様に) C#プログラミング環境が必要になる。 この環境の入手方法には2通りがあって、1つは完全無料の「Visual C# 2005 Express Edition」、「Visual Studio Express Edition」を導入する方法だ。この環境下で「XNA Framework 2.0/XNA GS2.0」をインストールするといわばExpress版相当のXNA GS2.0環境になる。 一方、有償のフルセット版「Visual Studio 2005」(VS2005) をインストールしている環境下にXNA Framework 2.0/XNA GS2.0をインストールすると、これは当初言われていたProfessional版相当のXNA GS2.0環境になるというわけだ。 逆に言えば、ExpressとProfessionalの違いはC#プログラミング環境の違い……ということができるかもしれない。具体的に言えば、例えばVS2005ベースの方が開発環境やデバッグ環境は、Express環境より充実しており、「この部分の違い」がProfessionalのアドバンテージとなる。 マイクロソフトによれば、この2タイプの環境におけるXNA GS2.0自身の機能の違いは“ほとんど”ないという説明がなされた。なお、VS2005というとC++やVisual Basicのプログラミング環境を連想する人も多いと思うが、VS2005環境下にXNA Framework 2.0/XNA GS2.0をインストールしてProfessional的な環境にしたとしても、プログラミングに用いられる言語はC#のみに限定される。
「XNA GS2.0になってなにが変わったのか」……この部分が最も気になる部分だと思われるが、最も機能実装の要望の強かった「ネットワーク」機能のサポートが今回の目玉になる。
この図に関して説明を補足しておくと、緑の部分がXNA Frameworkの部分で、オレンジの部分はハードウェアの違いを吸収して実際にハードウェアを駆動するような部分になる。
最上段の紫と青の部分は実際に開発者 (XNAユーザー) がプログラミングしたり制作するコンテンツ部分になる。「スターターキット」はマイクロソフトが提供するXNA Framework向きのプログラムサンプルのことで、これにはソースコードやアートセットなども全て含まれており、これを改造してオリジナルゲームに進化させていくという開発スタイルも許容されている。「コンポーネント」は、ゲームプログラムをモジュール化して利用できる仕組みのこと。よく使う自作ミニ・エンジン的なものでもいいし、あるいは他の開発者や企業が制作したプログラムモジュールなどがこのコンポーネントだ。XNAコミュニティが活性化していけば、AIや物理シミュレーション、アニメーションシステム……といった様々なサブエンジンモジュールのようなものがコンポーネントとして提供され、ゲーム開発者は自由にそれぞれを組み合わせて利用できるようになるかもしれない。
■ 「LIVE」を活用したネットワークゲームを開発可能にするXNA GS2.0 XNA GS2.0の最大のトピックはネットワークに対応したというところ。 XNA GSE1.0時代では、Xbox 360で動くネットワークを活用したゲームを開発するのはほぼ不可能だった。Windows PC向けゲームは開発できないこともなかったが、それにはネットワーク処理部分の独自実装が必要であり、この部分は完全にWindowsというプラットフォームに依存して実装するしかなかった (Xbox 360では動作不可)。 WindowsがXbox LIVEに対応し「Games for Windows - LIVE」(G4W LIVE) としてサービスが始まったことで、WindowsとXbox 360のネットワークに対する概念が共通化してきた経緯があり、XNA GS2.0では、Xbox LIVEベースのネットワーク機能を実装することが可能になったのだ。 これにより、XNA GSE2.0ベースで制作したゲームは、WindowsとXbox 360の異種プラットフォーム間で透過的な双方向対戦が可能になる。ゲームプログラム側は、LIVEの様々なサービスや仕組みを利用してのゲームにおけるネットワーク機能実装が行なえるのだ。なお、LIVEを介さないシステムリンクもサポートされるので、ちょっとしたプロトタイプ制作にはこちらを利用するのもアリだろう。 提供されるネットワーク機能は、基本的なデータのやりとりができる通信APIの他、マッチメイキングやセッション管理などの仕組みまで。
使用するプロトコルは信頼性の高いUDPプロトコル。P2Pの仕組みやクライアント/サーバの関係を形成することも可能だ。クライアント/サーバーのシステムで、サーバーとなるマシンが落ちてしまった場合のホスト交代(ホストマイグレーション)などにも対応しており、かなり本格的なネットワーク・ゲーム・セッションが実現できるとしている。
また、嬉しいのは、ボイスチャット機能も標準で提供されること。これはLIVEサービスが標準でサポートしている機能なので、ゲームプログラム側がとくに何か処理をする必要もなく自動的にサポートされてしまう。 こうした、ネットワーク環境の整備はXNA GS2.0の強みであり、また、バックボーンとして提供されるマイクロソフトのLIVEサービスの強みということができるだろう。
ところで、ネットワークゲームの開発で問題となるのは、(LANではなく) インターネットを介した対戦等で伝送データ損失 (パケットロス) や伝送遅延 (レイテンシ) が起こって、これがゲーム進行に影響してしまう際の検証だ。これは一般的な開発環境ではテストが難しいのだが、XNA GS2.0では、パケットロス、レイテンシのシミュレーションが行なえる環境もサポートされる。
また、オンラインチャットや文字入力を補助する「ガイド機能」へのアクセスも許容される。具体的にはソフトウェアキーボードを利用したり、メッセージボックスを開いたりといった機能が簡単に利用できる。通常のネイティブのプログラミング環境では文字を入力してウィンドウを1個表示するだけでも大変だが、XNA GS2.0であれば、そうした機能をゲームに実装するのに簡単なAPIコールだけで済んでしまう。
サポート予定なのは、LIVEにアクセスしている友人へのゲーム招待 (勧誘) 機能、プレイ結果のランキング集計機能、プレーヤーのLIVEにおける活動詳細情報の提供などで、これらはXNA GSの次期バージョン以降に実装されると見られる。
サポートされない機能は、LIVEにおけるプレーヤースキルに対応したマッチメイキングを行なうランクマッチ機能、ゲームプレイ結果を集計する実績機能、ネットワークプロトコルに直接関与するようなRAWソケットAPI群、MMO系のゲームを実現するようなLIVEサーバープラットフォーム機能など。これらは、セキュリティの問題や、ライセンシーの問題などから、一般公開版XNA GSには提供される予定がないというだけであり、マイクロソフトと特別な契約を交わすことで、完全な商用タイトルとして提供する場合にはまた別の話になってくる。
■ XNA GS2.0、その他の機能拡張点
ゲーム開発の効率向上や、さまざまなXNAユーザーコミュニティの盛り上がりを予感させてくれるのがコンポーネントの拡張だろうか。例えばネットワーク対戦のマッチメイキングがXNA GS2.0でサポートされるとはいっても対戦ロビー画面などを作るのが面倒と言うことであれば、どこかのユーザーが作成した対戦ロビーコンポーネントを持ってきて自分のゲームに取り込む……というようなことが容易になる。 グラフィックスに関しては機能的に大きな拡張はないようだが、レンダリングした結果のバッファ (レンダーターゲット) の取り扱いに関しての仕様がWindowsとXbox 360での統一化が図れるなどの改良が行なわれた。 ところで、昨年の時点ではXNA Frameworkのグラフィックサブシステムと、C#環境向けのDirectXであるManaged DirectX (MDX) とがどういう関係性を持って進化していくのかが不明瞭であった。今回、マイクロソフト関係者と話をしたところでは、内部的には、今後はXNA Frameworkの一本化の道を歩んでいくというような情報が得られた。なお、2007年9月現在、マイクロソフトではMDXの開発は休止している。 また、3Dモデル、テクスチャデータなどのアートセットのXNAプロジェクトへの取り込みを行なうコンテンツパイプラインの改良も行なわれた。
無料で利用できる「SOFTIMAGE|XSI Mod Tool」がXNA環境への正式対応を果たしたことなど、最初のXNA GSE1.0が登場してから比べると、ずいぶんとXNAを取り巻く環境は整備されてきたといえる。
■ XNAゲームでXbox LIVE アーケードデビューをするためには
マイクロソフトのWindows、Xbox 360というゲームプラットフォームにおいて、究極のゴールといえるのは、開発したゲームがLIVEを通じてユーザーに有償配信され、開発側がその対価を得る……というような形態だろう。
最後のセッションでは、まさにこの部分に相当する、XNA GSを活用して開発したゲームタイトルの商用展開の可能性についての説明が行なわれた。
Xbox 360では、リテールディスクでの配布は技術的に不可能ではないが、Xbox 360用パッケージソフトではグラフィックス解像度などの厳格な規定があり、XNA GSベースで開発したゲームではこの条件を満たすのは現時点では (不可能ではないが) 厳しいと言うことで、現実的にはXbox LIVEのXbox LIVE アーケードシリーズとして配信する……というのが現実的なソリューションとなりそうだという。
つまり、XNA GS2.0で開発したゲームを、Xbox LIVE アーケードデビューさせる道が2008年には開けそうだ……ということになる。 この件について、マイクロソフト関係者に追加取材を行なったところ、「基本的にはこの仕組みはゲームスタジオやパブリッシャーなどの法人を相手にしたものになるが、個人制作のタイトルでも、優秀作はマイクロソフトがパブリッシャーを代行する考えもある」とのことであった。個人デベロッパでも、ドリームを獲得できる可能性はあるのだ。
XNA GS2.0ベースでXbox 360ゲームを開発するにあたって注意点したいのは「PCだけで動作確認をしつつ開発を進めていき、最終段階でXbox 360にて動作させてみたら遅かった」という事が起こりうるということ。「SCHIZOID」の事例ではまさにこれが起こり、開発進行がストールしてしまったのだという。
なお、Xbox LIVE アーケードで配信する際には、ゲームプログラム側にXbox LIVEへ完全対応するための拡張機能を盛り込む必要があるという。それは、ゲームの実績の機能であったり、ランキング対応のマッチメイキングであったりするわけだが、そうした機能については、マイクロソフトとライセンス締結後に提供されるXbox 360向け開発キット「XDK」を活用して実装することになる。 現時点で、Xbox LIVE アーケードでリリースする予定のタイトルはかなり山積みとなっているそうだが、「日本発のXNAベース開発のXbox LIVE アーケードタイトル」という訴求で優先配信もできなくはない……と言うようなこともほのめかされ、面白いゲームができたのならば積極的に日本のマイクロソフトにコンタクトを取って欲しいとのことであった。
下図は予定されている、Xbox LIVE アーケードデビューまでのプロセスだが、「1」の段階で既に企画書ではなく、プレイできるプロトタイプの提示が望ましいという。
■ まとめ Xbox LIVE アーケードデビューへの道が示されたことで盛り上がりそうなXNA GSコミュニティだが、課題がないわけではない。 Xbox LIVE アーケードでリリースされたタイトルはマーケットプレースから購入しただけで即プレイ可能だが、そうではないアマチュアが作成したXNA GSベースで開発したゲームをプレイするのはかなり面倒だ。 Xbox 360でこれをプレイしようとすると、まず、PCが必要で、そのPCにXNA環境(Microsoft XNA Game Studio Express 1.0 Refresh)をインストールして、Xbox 360とPCをネットワーク接続し、PCからゲームをXbox 360へ転送する。そのままでは動作しないので、Xbox 360で動作するXbox Framework環境(Xbox 360版CLR)を入手しなければならない。
ゲームがどんなにカジュアルでわかりやすい内容であっても、Xbox360でゲームが遊べるようになるまでのプロセスがヘビーなのだ。
これは「XNA Game Launcher」という名称で無料提供されるのだが、使用するのが有償であり、実質的には有料と考えていい。 XNA Game Launcherの使用権はXbox LIVE マーケットプレースから「XNAクリエイターズ・クラブ」メンバーシップを購入することで提供される。価格は1年間有効の「年間メンバーシップ」が9,800円、4カ月間有効の「4カ月のお試し版」が4,800円。もちろん、メンバーシップ期間が切れると利用できなくなってしまう。気に入ったゲームがあっても、メンバーシップが切れればプレイできなくなる。 つまり、Windowsベースで遊ぶならばインストールこそ面倒なものの無料で事が済むが、Xbox 360だと有料ということになる。カジュアルにゲームを楽しめるはずの家庭用ゲーム機でプレイするのが一番面倒だという矛盾があるのだ。 PCとの接続やデバッグ機能を省いた、ゲームをプレイするだけに必要な機能だけにしたXbox 360エンドユーザー向け無料版XNA Game Launcherは欲しいところだが、その提供の予定は現時点ではないとのこと。おそらく、マイクロソフトの管理が行き届かないところで、内容が不確かな無料ゲームコンテンツが氾濫するのは何としてでも防ぎたいということで、このような対応になっているのだと思うが、少なくとも、Xbox LIVEのフレンド間のみで、XNAゲームが交換して簡単に実行できるような仕組みは欲しい気はする。 とはいうものの、Xbox LIVE アーケードデビューへの道が示されたことは開発コミュニティにとっては明るいニュースといえる。
日本発のXNAベースのXbox LIVE アーケードタイトルの早期登場にも期待したいところだ。
(2007年9月10日) [Reported by トライゼット西川善司]
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp Copyright (c)2007 Impress Watch Corporation, an Impress Group company. All rights reserved. |
|