●HDビデオコンテンツを視野に入れたHDD大容量化 MicrosoftはHDDを大容量化し、HDMIインターフェイスを備え、マザーボード設計を一新した第2世代のXbox 360を準備している。「Zephyr(ゼファー)」というコードネームで知られるこのマシンには、いくつかの意味がある。 1つは、今世代ゲーム機では、ハードウェアスペックはどんどん進化して行く点。スペックが固定されたゲーム機という概念は、部分的には通用しなくなっている。もう1つは、ゲーム機が「ゲーム+α」へと展開しつつある点。 Xbox 360の概要が発表される前、Xbox 360には3種類のモデルがあるとウワサされていた。HDDレスモデルと中容量HDDモデル、そして、ビデオコンテンツなども考えた高付加価値モデルだ。Zephyrの位置は、結局登場しなかった上位モデルにやや近い。それは、ゲーム以外の用途を見据えた上での機能拡張に見えるからだ。
Microsoftは、Xbox 360のプロジェクトでは、初期にはビデオ録画機能なども検討したという。しかし、ゲーム以外の用途を強めると、ゲームタイトルが遊ばれなくなる懸念があるため、こうした要素は計画から外されたという。しかし、ラスベガスで開催された今回の家電ショウ「Consumer Electronics Show (CES)」では、MicrosoftはXbox 360をIPTV端末にする構想を発表。非ゲームコンテンツを積極的に推進する構えを見せた。 Xbox 360の現在の戦略がこうした方向にあるとすると、ZephyrでのHDDの大容量化(120GBと伝えられる)は納得ができる。HDビデオを中心としたエンターテイメントコンテンツのダウンロードを視野に入れると、HDDの大容量化が必要だからだ。 Microsoftが、ゲーム+α路線に走り始めたその背景には、欧米でのXbox 360の一応の成功があると推定される。Microsoftは、当初はXbox 360の立ち上げの成功に、確信は持っていなかったと思われる。ゲームにかなり絞り込んだXbox 360立ち上げ時の戦略、「まずゲーム機として離陸しなければ始まらない」という意図だったと推定される。それが、ゲーム+αに変わってきたことは、Microsoft首脳陣が、Xbox 360をより汎用的なエンターテイメントプラットフォームへと広げても大丈夫という手応えを受けたことを意味している可能性が高い。 ●プログラミングモデルも汎用化を視野に入れる ゲーム中心のデバイスから、より汎用的なエンターテイメントセンターへ。Zephyrが示すのは、MicrosoftのXbox戦略が、徐々にシフトしつつあることだ。そして、MicrosoftはXbox 360の汎用化を、プログラミング面でもドライブさせようとしている。 伝統的なゲーム機は、一部の例外を除けばライセンシー以外はソフトウェア開発ができない閉じたプログラミングの世界だった。しかし、MicrosoftはXbox 360では、PCライクな開かれたプログラミング世界に、より近づけようとしている。それも、ゲームだけに留まらない、非ゲームアプリケーションも含めた世界だ。少なくとも、今のMicrosoftには、その土台を造り上げようという意図が見える。それが、Xbox 360の“.NETプラットフォーム化”だ。 MicrosoftのXbox 360戦略の重要な柱は、XNAによるマルチプラットフォームのゲームプログラミングフレームワークの構築だ。XNA全体は、広汎な要素を含むため、漠としていて実態がないように見える。しかし、重要なことは、Microsoftが、WindowsとXbox 360で、マルチプラットフォームのフレームワーク作りを明瞭に目指し始めたことだ。
そして、つい最近、Microsoftは、XNAのプログラミングモデルに大きな変化を加えた。表向きでは、それはビギナー向けのゲームプログラミングキット「XNA Game Studio Express」の提供という形を取っている。しかし、XNA Game Studio Expressには、重要な側面がある。それは、XNA Game Studio Expressの土台が、Microsoftの共通のプログラミングフレームワーク「.NET Framework」である点だ。 Microsoftが新しいプログラミングフレームワークとして推進する.NET Frameworkは、ランタイムでのリアルタイムコンパイルを前提としたJavaライクなフレームワークだ。.NET Frameworkを土台とすることで、プラットフォームに依存しないJavaライクな汎用プログラミングモデルを構築する。XNA Game Studio ExpressのベースとなるXNA Frameworkは、.NET Frameworkの上に構築されている。このキットの提供と同時に、Xbox 360も.NET Frameworkが走るプラットフォームになった。 土台となる.NET Framework自体は、ゲームプログラミングのために作られたものではない。XNAでは、.NET Frameworkを拡張することでXNA Frameworkを構築している。つまり、“ゲームプログラムのため”となっているXNA Frameworkは、一皮むけば、汎用プログラミングフレームワークであり、ゲーム以外のプログラムも走らせることができる。これは、プログラマーがXbox 360向けに非ゲームプログラムを簡単に作ることができるようになることを意味している。 これまで、Xboxの場合、ライセンシーのソフトウェアデベロッパ以外は、ハックしない限りプログラムを書くことができなかった。閉じたプログラミングが、PCとゲーム機におけるソフトウェア開発面でも最大の違いだった。ところが、XNA Frameworkではその枠が取り払われる。PCライクに、素人が低コストにプログラムを書くことが可能になる。
そして、作ることができるプログラムは、ゲームに限らない。Xbox 360向けに、例えば、ワープロソフトだって書ける。「まずはゲームと考えているが、技術的には非ゲームプログラムも書くことが可能」とマイクロソフト、Xbox事業本部ゲームテクノロジーグループ 田代昭博氏は語る。 つまり、.NET Framework on Xbox 360の真の意味は、Xbox 360をより幅広いプログラミングワールドに開く、その第一歩に他ならない。.NET FrameworkはMicrosoftの汎用のフレームワークであるため、WindowsとXbox 360の両方で走る汎用アプリを、.NET Frameworkで単一コードで書くことも可能となる。 ●.NET Frameworkのサブセットの独自拡張となるXNA Framework 現状では、XNA Frameworkは、Xbox 360とWindowsの2つのプラットフォームに提供されている。つまり、XNA Game Studio Expressで開発したソフトは、WindowsとXbox 360のどちらでも走らせることができる。実際には、Windowsではすでに.NET Frameworkが提供されて来たため、Windows向けには拡張であるXNA Framework 1.0を載せた形となる。一方、Xbox 360には、新たに.NET Frameworkと拡張部分であるXNA Frameworkが提供された。実際には、XNA Game Studio Expressで開発したソフトを走らせるランチャー「XNA Game Launcher」の形で提供されている。 .NET Frameworkの実態は、ランタイム動作環境と、共通のクラスライブラリで構成される。Microsoftは、Windows向けに開発したフルセット.NET Framework以外に、Windows CEなどを載せる組み込み機器をターゲットとしたサブセット.NET Compact Frameworkの2レイヤを用意する。Xbox 360に実装される.NET Framework環境は、.NET Compact Frameworkをベースにしたライブラリを載せ、さらにその上に独自の拡張ライブラリを載せたものだ。 「XNA Frameworkでは、Core Frameworkが.NET Frameworkに当たる。こちら側(グラフィックスとオーディオ)側に.NET Frameworkが載り、こちら側(インプット、マス、ストレージ)に.NET Compact Frameworkが載る形になる。その上に、(拡張ライブラリである)XNA Frameworkが載り、さらにその上にXNA game studio expressが載っている」と田代氏は説明する。 サブセットである.NET Compact Frameworkでは、ゲーム向けには機能が不足するため、部分的に.NET Frameworkを使い、その上に、よりアプリケーション寄りのXNA Frameworkを構築しているという。「XNA Game Studio側から叩くのはXNA Frameworkで、ランタイムでハードウェアの差を吸収する方法。コードはC#のマネージドコードになる」という。ちなみに、MicrosoftはManaged DirectXも提供していたが、今回のXNA Frameworkはそれとは異なる。 Windows向けの.NET Frameworkの場合は、マルチ言語対応のランタイム「Common Language Runtime(CLR)」が走る。しかし、XNA Frameworkでは、共通ではない、C#にしか対応しないサブセットのランタイムとなっている。実質的にはC#が.NET Framework時代のプログラミング言語の位置付けとなっており、レガシーのソースを継承する必要がないXbox 360ではCLRは必要ないと判断されたと思われる。 ●.NET Frameworkの上に組み上げたXNA Game Studio Express XNA Frameworkでは、.NET Compact Frameworkを拡張したCore Frameworkの上に、XNAの拡張フレームワークが載っている。これは、プラットフォームをさらに抽象化し、ゲームプログラムの枠組みを提供するものだ。さらに、その上にStarter Kitsが提供されている。これは再利用可能なサンプルゲームコード集だ。 「Starter Kitでは、代表的なジャンルのゲームサンプルを集めようとしている。ソースを提供して、簡単に再利用できるようにする。今後も、キットで提供するライブラリは増やして行く予定だ」(Microsoft、田代氏)という。
Microsoftは、XNA Game Studio Expressはビギナープログラマー向けと位置付けている。Microsoftからライセンスを受けたプロフェッショナルデベロッパは、Xbox 360のネイティブでアクセスできる。パフォーマンス面では、中間レイヤがあるXNA Frameworkを経由する方が、どうしても不利となる。 「バリバリにDirectXを叩いているソフトを持ってくるのは不可能。C#にするとかなりフレームレートが落ちてしまう。中間レイヤが存在する分、どうしてもパフォーマンスは落ちる。プロはネイティブでアクセスできるのが違いとなる」(田代氏) ただし、プロでも、XNA Frameworkを使った方が有利な場合があるという。 「例えば、Live Arcade(Xbox Liveでのダウンロード可能なゲーム)などのゲームは、これ(XNA Framework)で作れば移植性が高くなる。異なるプラットフォームでも、ほとんど修正なく走らせることができる」と田代氏は説明する。 ゴリゴリにXbox 360ハードを叩くゲームは作れないが、カジュアルなゲームはXNA Frameworkで十分に作ることができるというわけだ。「アイデアを活かしたゲームが手軽に作れる」と田代氏は利点を強調する。 ●XNAの当初の構想から含まれていたランタイム環境の提供 これは、XNAの構想を組み立てたJ. Allard氏(J・アラード)氏(Microsoft, Corporate Vice President, Design and Development, Entertainment and Devices Division)の構想とも結びつく。Allard氏は2004年に次のように語っていた。 「『Myst』はゲーム業界を変えたが、Mystのマジックはハイパーカードにあった。素晴らしいアイデアを持った2人の人間がMystとなるゲームのストーリーボードを描き、その世界の概観の最初の15分をハイパーカードで作ってみた。プログラムの書き方もよく知らない2人の男が、素晴らしいゲームを作れることをMystで実証して見せた。 このように、簡単にアイデアを実現できる方法について、XNAでも色々考えている。今、Webではあるレベルのツールがあれば、簡単にWeb雑誌を創刊できる。出版は劇的に簡単になった。でも、ゲームを作り始めるのことは、まだ簡単ではない。私がXNAを考え始めてから、10年越しの夢として考えているのは、まさにそのことだ。XNAでWebのように簡単にゲームを作れるようにする。コンピュータを知らなくても、誰でも簡単にゲームが作れるようにすれば、ベストアイデアが勝つようになる。それがこの業界のイノベーションをドライブするだろう」 Microsoftは、XNAで当初からXbox 360への.NET Frameworkの導入を検討していた。Allard氏は、2004年の3月のインタビューで次のように語っていた。 「我々は、デベロッパがクリエイティングな部分へとフォーカスできるように、プラットフォーム依存を取り去ろうとしている。問題は、どういった方法が(ゲームにとって)適切かだ。CLRのような解が、我々のリストのトップに来るのかどうかまだわからない。しかし、私はこの問題についての議論が(XNAの)リストのトップに来ると思っている。最初に、議論する必要があるのは、どうやればJavaやC#などのハイレベルプログラミング言語をより効率的に統合できるかについてだ」 その後、Allard氏は2004年7月に来日した際に、ランタイムはプロフェッショナルデベロッパ向けではなく、エントリレベルのデベロッパ向けに提供することになるだろう、と語っていた。つまり、エントリ向けの開発環境のために.NET Frameworkを載せる路線は、ほぼ2年前に決定されていたことになる。 ●Xbox 360にはXNA Frameworkに足かせをかける ただし、XNA Frameworkは、Xbox 360にとって危険な諸刃の剣でもある。Zephyrでのビデオコンテンツと同様に、既存のゲームビジネスにとって障害となる可能性があるからだ。これは、ゲーム機に固有で普遍の問題だ。 ゲーム機の場合、ゲームコンテンツのライセンスビジネスや、自社開発ゲームコンテンツの販売の利益に頼る度合いが高い。つまり、そのゲーム機が稼働する時間を、利益の上がるコンテンツの消費に割いてもらわなければ、ビジネスが成り立たない。ここが、PCのビジネスモデルと大きく異なる点だ。XNA Frameworkでのプログラミングが花開いて、ユーザーがXNA FrameworkベースのソフトのためばかりにXbox 360を使うようになると、Xbox 360ビジネス自体が成り立たなくなってしまう。つまり、Xbox 360をオープンにし過ぎると、Xbox 360の根幹が揺らいでしまう。 そのため、MicrosoftとしてはXNA Frameworkの提供に慎重にならざるをえない。実際に、Xbox 360上でのXNA Frameworkには、いくつかの“足かせ”を設けてある。つまり、わざと不便にしてある。例えば、XNA Game Studio Expressでのソフトウェア開発は誰でもできるが、そのソフトをXbox 360で走らせるためには年間9,800円のXNA Creators Clubメンバーシップが必要となる。安いとはいえ、敷居を設け、誰でも使えるようにはしなかった。 さらに、XNA Frameworkベースのプログラムを手軽に他のユーザーに広く配布する手段も現状では提供されていない。例えば、Xbox Liveのマーケットプレイスに、自由にプログラムを配布できる場を設けるといったことは考えていないという。 「セキュリティなどを考えると難しい。自由に提供できる場を設けると、無法地帯になってしまいかねない。その代わりに、XNA Game Studio Expressで作ったゲームのコンテストを開いて、そのコンテストで優勝したゲームを配布できるようにするといったことを考えている」と田代氏は、なんらかのスクリーニングを介することで配布する可能性を示唆する。また、Xbox Liveの登録フレンドにコンテンツを提供する、デベロッパが交流できるフォーラムを設けるといった展開も考えているという。しかし、いずれにせよ、PCのように、自由にソフトウェアをインターネットまたはディスクメディアで配布することは、計画されていない。 ●TCRに縛られないXNA Game Studio Expressの難しさ ちなみに、インターネットに自由にアクセスできるPCに対して、MicrosoftはXbox 360ではあえて閉じたネットワークサービスを選択した。それは、セキュリティを考えた上での選択だったと、あるMicrosoft関係者は語る。実際には、Xbox 360でもWebブラウザ機能は使っているが、それは隠蔽されており、自由なネットアクセスはできない。 この問題には、ビジネスの問題以外にソフトウェアの品質チェックの問題も絡んでいる。大きいポイントは、XNA Game Studio Expressでの開発では、Microsoftの「TCR(Technical Certification Requirements)」の縛りを受けない点だ。Microsoftは、ライセンシのソフトウェアデベロッパに対して、TCRと呼ばれるスペックを設定している。これは、ゲーム開発における要求事項で、例えば、解像度やどんなタイプのゲームが共用されるかもTCRの中に含まれる。技術事項だけでなく、倫理などについても枠がきっちりはめられている、その安心感がゲーム機ソフトの世界にはある。ところが、XNA Game Studio ExpressではTCRが要求されていない。 「Starter Kitに含まれているゲームはTCRは通っている。だから、作法は似てくると思うが、基本的にはTCRは関係無しになってしまう。そうすると、下ネタなども出てくる可能性があり、そこが難しい」と田代氏は語る。 簡単に言ってしまえば、Xbox 360で18禁ゲームを作ることも可能になってしまうわけだ。そのため、容易にXNA Game Studio Expressゲームを流通させる仕組みを作ることができない。ちなみに、XNA Frameworkベースで非ゲームアプリも作ることが可能な理由の1つも、TCRの縛りがないからだ。 Microsoftが足かせを設けたため、Xbox 360での現実のXNA Frameworkは、当面はマニアプログラマー層が、自分たちの作ったソフトを交換して走らせる世界に留まる。正確に言えば、Microsoftは故意にそうした枠に留め置くことで、様子を見る態勢にあると思われる。ただ、記事の最後で述べるが、Microsoftがそうした足かせを取り外す可能性がないわけではない。 ●ポータブルデバイスへも広がるXNA Framework ただし、XNA Framework自体は、WindowsとXbox 360の架け橋に留まらない。少なくともXNA側では、Microsoftの全てのプラットフォームへと広げようとしている。Windows、Xbox 360だけでなく、ポータブルエンタテイメントプレーヤー「ZUNE」やWindowsベースのスマートフォンも含まれる。これらのデバイス間で、同じコードが走る環境を整え、マルチプラットフォームプログラミングを、普及させることが展望だ。 これは、Microsoftが2006年春に掲げたゲームオンラインインフラ「Live Anywhere」と連携している。昨年のE3で、Microsoftは、Windows、Xbox 360、Windowsスマートフォンなどを統合するインフラとしてLive Anywhereの構想を掲げた。Live Anywhereの実態は、.NET FrameworkをベースにしたXNA Frameworkによる共通プログラミングフレームワークと、共通のネットワーキングAPIとバックエンド側サービスだという。CESでは、「Microsoft Ecosystem」という名前で、このコンセプトがさらに明確化された。 ちなみに、Microsoftのポータブルエンターテイメントプレーヤー「ZUNE」は、Xbox 360/Xbox Liveの開発を行なったチームが中心になって開発された。ZUNEでは、初期にゲームプレイをできるようにするかどうかで議論があったという。しかし、開発期間が極端に短かったZUNEは、ハードを開発していては間に合わなかったため、既存のハードをベースする以外に選択肢はなく、現在のコンセプトになったという。Microsoftは早急にiPodに対抗する必要があったため、ZUNE投入を急いだと推定される。もっとも、現実には販売では全くiPodに対抗できていないが、土台となるハードを急ぎたかったものと思われる。 こうした出自を持つため、ZUNEの背後にはXNAとLive Anywhereのコンセプトが色濃く見える。 「エンタテイメントとサービスの両輪のうち、ZUNEはサービスとエンタテイメントの両方を楽しむというコンセプト。Xbox LiveはXboxから始まって、最終的には全てのMicrosoftプラットフォームの中で遊ぶための土台となる。それがLive Anywhereの発想で、XNAに関してもスマートフォンも含めて、全てのMicrosoftのプラットフォームに対応して行く計画がある。ZUNEの上でC#のコードが動くというのも十分にあり。そういう構想だ」と田代氏は語る。 ●Microsoftのプラットフォーム非依存戦略NGWS もっとも、XNA Frameworkで開け始めた構想自体は、Microsoftが過去10年間連綿と構築してきた土台がようやく実り始めたものに過ぎない。 もともと、Microsoftは2000年頃に「NGWS(Next Generation Windows Service)」と呼ぶ構想を唱えていた。NGWSは、その後「Windows.NET」と名前を変えるが、名称的には「Windowsを次世代へと移行させ、オンラインサービスと合体させる」という意味のNGWSの方がわかりやすい。そして、現在、MicrosoftがXNAの一環として進めようとしている共通フレームワーク化は、まさにNGWS構想の具現化にほかならない。 MicrosoftがNGWSのひな形を暖め始めた10年ほど前('97年のPDCで.NET Frameworkの元となるアイデアを説明している)、MicrosoftはJavaの脅威にさらされていた。Javaでは、ランタイムであるJava VMがハードウェアの差異を隠蔽するため、中間コードのJavaプログラムがどのプラットフォームでも走る。そのため、アプリケーションがJavaベースに移行するなら、Java VMの下のOSやハードウェアは何でもよくなってしまう。これがJavaの「Write once, run anywhere(WORA)」思想で、Windowsに固着させることが土台となるMicrosoftの戦略と真っ向からぶつかるものだった。 MicrosoftがJavaに対抗して行なったのは2つの戦略で、一方でJavaつぶしを行ないながら、もう一方で自社プラットフォームのJavaライク化を図るものだった。後者の路線がNGWSで、その実装が.NET Frameworkとなる。Microsoftは、最終的に自社プラットフォームでのプログラミングモデルを.NET Frameworkに移行させようとしている。.NET Frameworkだけを使うならWin32 APIは使われなくなる。.NET Frameworkの下のOSやCPUは、技術的には何でもよくなる。 従来のMicrosoft支配は,アプリケーションが特定のOSとCPUに縛られるため、Windowsから抜けられない点に立脚していた。しかし、それは、Microsoftにとっても移植性の壁となり、ポータブル機器など非PCへの展開の障壁となっていた。そこで、Microsoftは.NET Frameworkでのプラットフォームの再構築を考えた。最終的には、ランタイムの下にあるのがWindowsではなく,ランタイムの上に新たなMicrosoftプラットフォームが構築されるという構図だ。 Microsoftのオリジナルの計画では、もっと早い段階でこうした移行がなされるはずだった。例えば、Windows Vistaでは、プログラミングモデルは、完全に.NET Frameworkベースへと移行するはずだった。その計画通りだったら、Windows Vista世代のアプリは全て.NET Frameworkベースとなり、Xbox 360とのシームレスな連携が取りやすかったはずだ。しかし、現実にはWindows VistaではWin32も拡張されて併存し、.NET Frameworkへの中間ステップとなってしまった。その意味では、ややスケールダウンしているが、逆を言えば、減速していた.NET Frameworkが、XNAのおかげで加速する可能性が出てきたとも言えそうだ。 ●PS3にとって最大の脅威となるXNA Framework .NET Frameworkランタイムを移植してしまえば、そのプラットフォームはマネージドコードについては依存がなくなる。そして、やろうと思えば、非Microsoft系のハードウェアプラットフォームにも、.NET Frameworkを載せることができる。 「もし、どこかのミドルウェアデベロッパが、PLAYSTATION 3(PS3)向けの.NET Frameworkを作ってしまえば、PS3で(XNAアプリを)走らせることも可能になる。Microsoftはソフトウェア屋なので、何もこばみません」と田代氏は笑う。 PS3 LinuxにXNA Frameworkを載せれば、PS3でXNA Game Studio Expressベースのゲームや、さらに.NET Frameworkベースのアプリを走らせることができるようになる。Windows Vista上で走る.NETアプリが、そのままPS3で走るという展開もありうる。 もちろん、PS3版.NET Frameworkが実現する可能性は極めて薄い。そもそも、現実問題として、現状の.NET Frameworkは、Microsoftプラットフォームのための共通基盤としてしか成り立っていない。しかし、.NET Frameworkの大元のフィロソフィが、Java対抗であるため、技術的にはPS3のような他プラットフォームへの展開が可能であるのも事実だ。 しかし、SCEにとって.NET Frameworkが脅威なのは、もちろんPS3への移植ではない。.NET Frameworkは、MicrosoftがいつでもXbox 360をより汎用途に転用できることを意味している、そのことが脅威だ。 SCEは、PS3をゲーム機やメディアプレーヤーとして成り立たせるだけでなく、長期的にはコンピューティングプラットフォームとして育てようとしている。しかし、そのためのプログラミング環境をSCEが積極的に整えるという態勢にはまだなっていない。オリジナルプランでは、PS3はゲームOSとLinuxの両方を仮想マシンマネージャ上に載せて、汎用アプリを積極的に推進する予定だったと思われるが、現在はそうなっていない。汎用化は、今だ長期ビジョンの中だ。 一方、Xbox 360は.NET Frameworkが載ってしまうと、あとは、Microsoftが「.NET Frameworkで非ゲームアプリを」と推進するだけで、いつでも汎用化に舵を切ることができる。すでに説明した通り、MicrosoftはXbox 360での.NET Frameworkについては、まだ、かなり足かせをかけている。Microsoftの場合、Windows Vistaをリビングにもたらすという戦略もあり、簡単にXbox 360を.NETプラットフォームとして推進することができない。 しかし、もしSCEがPS3を、より汎用プラットフォームへと推進し始めたら、Microsoftは.NET Frameworkによって簡単に対抗することができる。つまり、Microsoftはカウンターの準備ができたということだ。SCEは、ますますモタモタしていられない状況になりつつある。 □関連記事 (2007年1月15日) [Reported by 後藤 弘茂(Hiroshige Goto)]
【PC Watchホームページ】
|