しかし、本格的なPS2ソフトの時代の到来には、それでもまだしばらく時間がかかるだろう。それは、斬新なアーキテクチャのために、PS2ではソフト開発のハードルが高いからだ。SCEIが、ソフト開発を容易にする次の手を打つまでは、中小のソフトベンダーが参入しにくい状況が続くだろう。
●半導体屋の夢、プログラマの悪夢
PS2のハードウェアについては、このコラムでも何回か紹介した。PS2のCPUである「Emotion Engine(EE)」は“半導体屋の夢のエンジン”だ。しかし、同時に“プログラマにとっての悪夢”でもある。その理由は3つある。
EEは、内部にMIPSアーキテクチャを拡張したCPUコアと、2個のベクトル演算ユニット(VPU)、IPU(イメージプロセッシングユニット)を内蔵し、それらを10チャンネルのDMAコントローラで制御する128ビットバスで結んでいる。
EEでのプログラミングが難しい第1の理由は、このVPUが非常に複雑なアーキテクチャでありながら、コンパイラが提供されていない(できない?)ことだ。VPUは、4個の単精度浮動小数点積和算ユニット(FMAC)で構成されるアッパーユニットと、単精度浮動小数点除算ユニット(FDIV)、ロードストアユニット(LSU)、整数演算ユニットなど(VPU1はさらにFMACとFDIVを1組)で構成されるロウワーユニットの、2つの演算ユニットグループで構成されている。このうち、アッパーユニットは、3Dグラフィックスで多用される4×4のマトリックス演算を中心に設計されたもので、1サイクルのスループットで演算が可能だ。ロウワーユニットも、除算のスループットこそ7サイクルだが、除算の間も他の演算器に次々と命令を発行できる仕組みになっている。例えば、除算をしている間に、頂点データのロードをするといったことが可能だ。
そうしたアーキテクチャのため、EEでは各ユニットに連続的に命令を発行できれば、多数の演算ユニットが間断なく稼働し、とてつもないパフォーマンスを発揮できる。ところが、この間断なく働かすということがEEでは非常に難しい。というのは、EEのVPUでは、各演算ユニットに命令を発行するためには、手作業で命令のスケジューリングをしなければならないからだ。それは、ハードウェアのスケジューラ機構も、コンパイラによるスケジューリング最適化もないためだ。
そのため、プログラマは、VPUに関しては各ユニットの各命令のレイテンシとスループットを完璧に頭に入れた上で、命令を手作業でスケジューリングしなければならない。しかも、VPUの命令語はちょっと複雑で、64bit固定長の中にアッパーとロウワーのそれぞれに対応する32bit長の2つの命令を納めたVLIW(超長命令語)となっている。このVLIWに命令を充填することは、かなり難解なパズルで人間コンパイラの才能が必要とされる。できるエンジニアはそれほど多くないし、アセンブラコーディングに熟達したエンジニアにとっても苦痛を伴うものだという。
●デバッグ環境がない状態で開発
EEのプログラミングが難しい第2の理由は、EEには独立したユニットが複数個搭載されていて、それぞれがもっとも効率よく動くようにハンドリングしなければならないことだ。うまい順番でDMAでデータを送り込まないと、どれかのユニットが遊んでしまって、性能をピークに持って行くことができない。このDMAのコントロールが、またかなり煩雑でプログラマを悩ませるタネになっているという。
しかし、EEが難しいもっとも大きな(そして第3の)理由は、デバッグ環境が非常に弱いことだ。4月上旬に取材していた時は、EEのVPUとDMAに関して、デバッグ環境がまったく提供されていない(CPUに関しては提供されている)と、多くのゲーム関係者がこぼしていた。デバッグ環境がないというのは、手探りでプログラムを書くということ。コードを書いて動かしてみて、ダメだったらコードを一行一行チェックするという試行錯誤をしなければならず、生産効率は非常に悪い。もちろん、いつまでもそうした状況が続くとは思えないし、全ての開発者にデバッグ環境が提供されていなかったとも思えない。だが、少なくとも、デバッグ環境が開発者の全てには行き渡っていなかったのは確かなようだ。
このようにプログラマにとってはやっかいなEEだが、もっと困るのは、この暴れ馬は、使う側が扱いに熟達すればとんでもないパフォーマンスを発揮することだ。うまくEEを乗りこなせれば「鉄拳TT」以上のグラフィックスも可能になる。つまり、PS2は開発力の差を如実に反映する、メーカーにとって怖いハードなのだ。
また、EEの思想は、徹底的にフルプログラマブルで柔軟性を持たせることであり、ポリゴン数を増やすだけでなく、様々な使い方ができる。冒頭ではEEをプログラマの悪夢と表現したが、じつは、プログラマの可能性を無限に広げるという意味では、“プログラマの夢のチップ”でもある。ただ、そこへ到達するのが大変というだけの話だ。
●問題はライブラリの欠如
おそらく、大手ゲームメーカーや高い技術力を持つメーカーは、それほど遠くないうちにEEの使い方に慣れ、2~3年したらEEの性能をかなりのところまで引き出せるようになるだろう。彼らにとっては、PS2は高いハードルだが超えられないほどではない。だが、中堅以下の多くのメーカーにとっては、PS2のハードルは一人で超えるにはやや高すぎる。特に、初代PlayStationからゲーム開発に参入したメーカーにとっては、PS2のハードルはきつい。
その理由は、以前にも書いたが、初代PSでは、SCEIから基本的なグラフィックスライブラリが提供されていたからだ。初代PSではハードウェアを隠蔽するカタチで標準ライブラリが提供され、PSのハードウェアをそれほど知らなくてもライブラリを使ってゲームを作ることができた。そのため、少人数の開発者が、ライブラリを利用してアイデア一発勝負のゲームを作ることができた。
ところが、PS2のスタート時点ではそうした標準のライブラリが提供されなかった。その代わり、ライセンシーにはハードウェアの情報がフルに公開され、それを直接叩くようにとされているという。そのため、自社でライブラリを作れないメーカーはPS2に乗れない→ゲームタイトル数がなかなか増えないという状況に陥っているようだ。また、大手にとっても、PS2のハードルを超えることはできるものの、開発費がかかるために、どうしても大作主義に向かってしまう。そこそこの開発費で、実験的なことをやって中ヒットを狙うというスタンスが取りにくい。
もっとも、SCEIもなにも用意しないというコトではなく、ミドルウエアメーカーと提携、サードパーティからPS2用のミドルウエアが提供されるようにした。しかし、こうしたライブラリはまだユーザーであるゲームメーカーの信頼を完全には勝ち得ていないように見える。ゲーム関係者によると、その理由は、ライブラリを使って期待通りの結果が得られなかった場合、ライブラリメーカーがチューンナップしてくれない限り、ゲームメーカー側に打つ手がなくなってしまうからだという。そのため、ゲームメーカーはなかなかライブラリの採用には踏み切れない。特に、PS2のように最適化が難しいハードウェアではなおさらだ。そのため、ミドルウエアメーカーの方もビジネスの展開が見えてこないという両すくみに近い状況になっているという。
もっとも、今後、ライブラリメーカーがPS2に最適化したり、ゲームメーカーが自社向けに開発したライブラリを外販したりといった方向に展開して行けば、この状況はかなり変わってくるだろう。ただし、それにはまだ時間が必要ということだ。
●SCEIの次の手はOSか?
だが、SCEI自身がこの状況を変えてゆく可能性もある。というのは、SCEIが完全にライブラリ提供を止めたとも思えないからだ。そもそも、'99年後半まではSCEIがライブラリを提供し「sファイル」という標準フォーマットができるという情報が流れていた。それがうやむやになったまま、PS2がスタートしてしまったというのが現状らしい。そのため、SCEIから何らかのカタチでライブラリが提供されるのでは、という期待の声は今もある。
今回、SCEIは、おそらくチューンナップが難しいPS2では、高度なゲームを作るメーカーには自社ライブラリを作ってもらった方がいいと判断したのだと思う。その方が、SCEIからライブラリを提供して、それを必ず使うように縛るより、結果としていいと考えたというわけだ。しかし、中堅から下のゲームメーカーやゲーム以外のコンテンツに対しては、別なアプローチを取る可能性もある。つまり、高度にチューンはしてないが、使いやすいライブラリを用意して、手軽に作品を作れるようにする。
もしかすると、SCEIは、単なるグラフィックスライブラリだけでなく、ある程度本格的なOSをPS2用に提供しようと考えているのかもしれない。それが、PS2の発売に間に合わなかったために見切り発車したものの、まだ提供を計画しているのかもしれない。
というのは、SCEIは、PS2を単なるゲーム機ではなく、家庭のエンターテイメントセンターと考えているからだ。例えば、eDistributionとSCEIが呼ぶコンテンツ配信サービスのためには、安定したTCP/IPスタックとおそらくWebブラウザも必要になる。それなら、いっそのこと、ある程度多機能なOSを用意してしまった方がラク……と考えても不思議はない。
では、SCEIがOSを提供するとしたら、そのOSは何になるのか。もっともありそうなのは、ソニー開発のOS「Aperios(アペリオス)」と、PS2のアーキテクチャをベースにしたPS2用開発ハードウェアに搭載されているLinuxだ。ソニーであってソニーでないSCEIが、Linuxを選べば、それはなかなか痛快な展開になる。もし、世界中のリビングルームに入るPS2がLinuxボックスになってしまったら……、同じ場所にWindowsを入れようと考えていたMicrosoftにとっては、とても面白くない展開に違いない。また、PS2対X-Boxの対決は、一転してLinux対Windowsの戦いへと姿を変えることになる。
□関連記事
プレイステーション2 関連記事リンク集
http://pc.watch.impress.co.jp/docs/article/20000221/ps2i.htm
(2000年5月10日)
[Reported by 後藤 弘茂]