SATOXのシテオク日記

~ふもっふ、ふもふも~

ゲーム系開発者のちょっとした苦悩

PS2は2つのCPUが載っており、音声やメディアI/O関連はIOPという旧PSのCPUにぶら下がっています。メインのEmotionEngine(EE)とIOPとのやりとりが複雑な上、IOPのプログラムはドライバのような形でプロセスを書かないといけないんですね。このEEとIOPの同期が大変なんです。
これまでのゲームプログラムはメインルーチンと割り込み駆動という形でがっちりプログラムが書かれていたのですが、PS2ではぐだぐだのPC-OSのような作りで、基本的にスレッド駆動、スレッドプライオリティやセマフォなどを使ってスレッド間の同期を取る必要があるわけです。簡単に言うと、プログラミングが難しく、トラブりやすい。PS2はとても難しいのです。しかもSCEが提供する開発環境は基本的にLinuxのコンソール。何年前のデバッグ手法をやらせるんだか。
それに比べ、素直なH/WとAPIGAMECUBE。さらにGUI統合環境のCodeWarriorが開発者に無償で提供されるので大変作りやすい。そしてXboxに至ってはPCの開発環境として使い慣れているVisualStudioがそのまま使え、もちろんデバッグも可。APIもPCでおなじみのDirectXにちょっと手を加えれば動いてしまうので、PC/Xbox間の親和性が大変高くていい感じなのです。
何が言いたいのかというと、マルチコアになり複雑になってくる次世代機。プログラマが作りやすい、栄えてはゲームプランナーさんが思った通りのものを作れる環境を用意していただきたいです。
 
ぼーっと思うんだけど、廉価ゲームシリーズなんかもXboxGAMECUBEで作る事ができれば、ハードウェアスペックとは別にもう少しいいものができると思います。難しいPS2だと、コマ落ちなんか当たり前。手間暇掛ければコマ落ちなんて無くなるけど、それを取り除いている時間とコストは掛けられないんですよね。
プログラマが開発しやすい環境があれば良作のゲームが出てくるんです。作りにくい環境でダメゲームをまともにする暇があるのなら、普通のゲームを良作のゲームにする方に時間を費やせるんです。それをご理解いただきたい。
 
いろんなゲーム開発会社で話を聞く機会があるのですが、みんな言ってますよ「PS2なんて早くなくなればいいのに」と(笑)。これ、ホントです。「売れてるんだから、しょうがないねー」って、みんな言ってます。SCEの方も自ら「PS2の環境は現行のプラットフォーム中、一番難しい」おっしゃってましたので間違いない………。
PSP環境はずいぶんこなれてる感じですけど、スレッドだらけなのは相変わらず。