ATARI Jaguar用の2Dゲームエンジンが公開される

昨日、ATARI Jaguar向けの2DゲームエンジンであるRAPTORがリリースされた。もっとも、以前からいくつかのRebootによるHomebrewリリースに使用されていたものにドキュメントを付けたものと見られる。
このエンジンにはソースコードが付いてこない。単にGPU/DSPで動作するbinary blobの形で提供される。DSPによるパーティクルや衝突検出は珍しい機能かもしれない。
(ソースコードのあるライブラリとしては、Remover's library( https://github.com/sbriais/rmvlib )が有る(LGPL)。こちらも基本的に2D機能のみ提供している。)
今のところ、GPUを活用した良いコードはあまり知られていない。例えば、id直々の移植であるJaguar移植はソースコードが公開されていて( http://www.atariage.com/Jaguar/archives/DoomSource/ )、BSPベースの例のレンダラがGPUアセンブラに書き下されている。GPUコードはセットアップと割り込みベクタの定義を行うgpubaseと、phase1からphase9までのマイクロコードに分割されている。同時代のコンソール(SFC、MD、...)がスプライトドライバをSDKで提供しなかったのと同じように、AtariGPUのための良いライブラリを提供しなかったので、GPUの活用法はタイトルによって多岐に渡る結果になった。
Jaguar版のDOOMは同時に32X(MARS)版のDOOMとしても開発されるなど歴史的に興味深いportと言える。(後で書く)

U-235のサイトでも言及されているように、Raymanのような一部のゲームはGPU/DSPで書かれている。が、通常のゲームはこれを行わず、マイクロコードを都度localメモリにロードする実装としているか、単にRAPTORのようなシンプルなディスプレイハンドラを常駐させ、68k部分をCで書いて高速な2Dコンソールとして使用した。(ちなみにRaymanは日本ではRabbids関連くらいしかゲームが出ていなかったが、最近はレイマンオリジン/レジェンドが日本でも発売されるなど息の長いシリーズになっている。Rayman Legendsは当初WiiU独占のゲームだったが後に撤回され他のプラットフォームでも発売されている。これは初代RaymanがJaguar独占であったが後に様々なプラットフォームに移植されたのを彷彿とさせる。)
歴史のifと言う意味では、AtariはどのようなSDKを提供すれば、そのハードウェアの可能性を3rdに活用させることができたのだろうか。... もっとも、難しい問題はATARI自身もこのハードウェアを活用していたとは言い難い点だろう。AVGNで言及されているようにJaguarDOOMは(3DOやSuperFXや32Xのような同時代のコンソールportと比べて)良い移植だったが、同レベルの操作性と3D表現を持つゲームはAvPくらいしか無いように思える。TEMPEST2000等は別のベクトルで良いゲームでは有るが。。Raymanフランチャイズが今でも続いていることから解るように、真新しい2Dプラットフォーマーを切り開いたという事実も有る。
"悪いプログラマビリティがゲーム機を失敗させる"ケースは多い(ATARI7800、N64PS3、...)。しかし、プログラマビリティの制約が良い結果を生むとも限らない(GCPSP、Vita、...)。
ひとつは、N64のように公式のマイクロコードを2Dゲーム向けのものと3Dゲーム向けのものに用意するべきだったのかもしれない。とにかくタイトル数を揃えてロンチを成功させるためにはデベロッパを勧誘する努力が必要で、そのためには動作するコードを提示する必要が有る。当時は現代ほど"ロンチ工学"が発達していなかったわけで同情の余地は有るが。。