1991年2月 開発スタート。ivとgnu(上)

1991年2月。
東京は市ヶ谷の天外2開発ルームにはマシンが10台以上並び、久保久・松田クン・山根・アルファシステムの長谷川君(ファイティングストリートなど多数)、同じくアルファの藪(大魔界村の移植)、さらにグラフィックの外注をやってもらうウィンズのメンバーが集まり始め、ついに開発はスタートしようとしていた。
そのまだ人が揃いきっていない開発ルームで、僕は、信頼するアルファシステムの長谷川君とシステム設計の打ち合わせをしていた。
これはイース1・2で、そこらへんをキッチリ決めておかないと、CDROMでは、あとでエラい目に会うという事がわかっていたからだ。
…とは言っても、結構打ち合わせは簡単だった。ビルド関係は、イースで作ったものが柔軟性と信頼性を持っていたので、多人数に対応するために若干の調整をする以外は、ほぼ手直しなしで使うことになったからだ。

ビルドは「実行できるゲームを作る作業」ぐらいの意味と思えばいい。
で、ビルドシステムは「実行可能なゲームをどのように組み立てるのか」の設計図のようなもの。
今ならIDEなどが完備していて、プロジェクトを作ればなんとでもなるけれど、当時は、だいたいIDEなんてほぼなかったし、仮にあっても、例えば1フォルダの中にあるファイル数が一定を超えると急速に速度が落ちたり、場合によっては動かなくなるなどの問題があって、みんなIDEみたいなメモリ食うわ、信頼性低いわなんてものは使わず、己の信じるツール(場合によってはDOSのバッチファイルw)で、ビルドシステムを作るのが当たり前だった。
このビルドシステムは、だいたいはUNIX育ちのmakeとmakefileが受け持つのが当たり前だったのだけど、これまた流派がありw borlandのturbo-c付属のmakeを使う人もいればmsのMS-C付属のものを使うヤツもいて、しかもこれら全部に方言があって、まあ大変だった。
そしてプロジェクトの中で扱うファイル数はとんでもない重大事項でたとえば1フォルダ(ディレクトリ)に1000ファイルほどもあると、ほとんどのツールがメモリ不足で動かなくなったり、ハングアップしたり、ともかくとんでもないことになることが多かった。
実際、イース1・2ではROMカートリッジでは考えられないほどの量のファイルを扱うことになり、飛田さんの作ったasもlkもまたturbo-c付属のmakeなども、まるで動かなくなる事態に陥り、7月の段階で一度大規模にビルドシステムを作り直しする、大変な目にあった。
実際のところ、ほとんど1週間ぐらいビルドシステムを作り直しして、emsにスワップ出来るgnu makeでmakefile全部書き直すのは本当に大変だった。
そして、このときのシステムが十分に柔軟性があったので、天外2ではそのまま使えたわけだ(イースで作ったシステムは原理的にEMSがパンクしない限りは絶対に大丈夫だし、複雑なプロジェクト構造になっても耐えられる設計になっていた)。
ちなみに、調整したところは、システムとシナリオ部分を完全に切り離して、多人数が同時に作業しても、問題が起きないようにすることだった。

そして、打ち合わせの途中、長谷川君が僕に言った。
「岩崎さん、天外2ではiv使おうと思うのよ」
「えーっ!? あれはまあ汎用言語だけどインタープリタよ? アドベンチャならともかくRPGで間に合うの?
「うん、間に合うよ。アルファシステムでもう使っていて、十分って結論が出てるのよ」
「なら、ぜんぜん楽にはなるけどさ…本当かよ」
「本当だよ、圧倒的に便利だし、十分速いよ」

「間に合う」は1/60秒でちゃんと処理を全部終われるの?の意味

ivは、PCエンジンで使われていた汎用中間コードコンパイラで、今で言う仮想マシンとかLuaとかphpみたいな代物だ。
そして、ここで話したとおり、天外2のほとんどはivで記述した。つまりプログラムの99%はアセンブラで書かれていない。95%はこのiv、つまり中間コードで、4%ぐらいがビジュアルアセンブラ(と僕が呼んでいた結構ひどいビジュアル専用の言語)、実際にアセンブラで書かれていたのはシステム部分やコアのルーチンだけで、ほとんどはivで動いていたのだ(サイズから考えると99.99%はアセンブラでなかったと思う)。
今回と次回はほぼ、このivだけの話になる。


さて。
1990年ごろのゲームマシンは伝説的神話的な世界で、超人達がアセンブラでプログラムを書いていたことになっているけれど、現実は全然違った。
1990年頃のゲーム屋は、だいたい80年代、それも前半にアマチュアとしてコンピュータと付き合い始めている。そして80年代前半のPCの開発環境なんて、実質自作が当たり前だったので、当時のゲーム屋はシステム屋をかねているのが当たり前だった。

実際、飛田さんや和泉さんはHuman-68Kを作っているし、もちろんPCエンジンの開発システムや、ファミコンの社内用の開発システムを作っている。また、第一世代のハドソンのメンバーはHuBasicだのHuDosだのファミリーベーシックだのを作っている。

だから、アマチュア時代から自分でちょっとした言語を作った経験とかが普通にあったので、アセンブラの方が速度は速いが(アセンブラより速度の速いものなどない)、工夫した高級言語で書かれたプログラムの方がサイズは小さいと、誰でもわかっていた。
そして昔はメモリがとても大事だったので、落ちる速度が我慢できる(使える)範囲なら、高級言語を使った方がサイズ的には有利だし、高級言語の方がアセンブラより遥かに効率良くプログラム出来る。
つまりゲームはアセンブラで組むものなのは、速度とサイズの都合で仕方なくやることでしかなかったのだ。
そして、僕は手抜きな人間なので、ゲームマシンでも高級言語を使いたかった。
だから凄ノ王伝説を作ったときは、一番最初はハドソンにあったCのインタープリタで書けないかテストプログラムを書いてみたし(残念ながらランタイムのサイズなどで諦めざるを得なかった)、めんどくさいビジュアルのプログラムはビジュアルアセンブラ…とでも呼ぶようなまあ小さな言語を設計して、それで作った。
で、もっと楽をしたいなあと思っていたとき、イースをちょうど作り出した直後ぐらいに「アドベンチャを量産するための言語をつくらね?」と、飛田さんが言い出したことからivは始まった。
どうしてそんな話が出てきたのか?
1988年末、ハドソンはPCエンジンCDROMを発売したわけだけど、ともかくコンテンツ不足に悩まされていて、場つなぎで、ストーリーとコマンドでバランスを取れる=グラフィックさえ力押しで量産すれば比較的短時間で制作可能なジャンルのアドベンチャ「コブラ・黒竜王の伝説」をでっちあげたのだけど、これが結構売れたうえに評判が良かった。
それで中本さんが思いついたのが、デジタルコミックというアドベンチャシリーズだ。

・基本は版権物。アニメもしくはコミックから題材は持ってくる。
・総当たりで解ける程度のコマンド選択型アドベンチャに味付けでミニゲームなどを入れる。
・声優さんが起用され、キャラクタが喋る。(アニメがある場合には声優さんはアニメ準拠)
・絵が結構入っていて、アニメなんかもたまにする。
・プレイタイムは数時間~10時間程度。

当時はCDROMで声が出て1枚絵が表示される事自体が売りになった(ROMと比較して決定的な差別ポイントになりえた)のと、さらに基本、声がついている=アニメで声優の当たっている作品=アニメファン向けという明白な狙いがあったので、数時間~10時間程度でクリアしても、それなりにユーザーの満足度が高い作品になることは十分に予想できた。
問題はこれをどうして量産するか? だった。
なんせ黒竜王は当時のハドソンの(内部的)2枚看板、飛田・和泉コンビを使って、大力任せ大会で作り上げた作品だ。突貫工事だったからある程度は仕方ないが、こんなことをやっていては桃太郎シリーズも出ないし、和泉さんのプロジェクトも回らない。
だいたいこのデジタルコミックは、グラフィックリソースだけは外注を使って、あとは比較的素早く作れなければシリーズとして意味がない。だから、もっと楽に量産できるツールが明らかに必要だった。
中本さんはシリーズを立ち上げてからあとで「アドベンチャ専用ツール作ればいいべ! 岩崎なら作れるべや!」とか乱暴なことを言っていたけれど(だいたいイース作ってるのにw)、単純なツールを作れば量産は出来るけれど作品毎にやれることが少なくなりすぎてシリーズとして成り立たせるには厳しい。だいたいツールを作ったからといって、いつまでシリーズが続くかわからない。
だから、もうちょっとアドベンチャ以外にも使えるような汎用性のある設計がいいだろう。
だから、アドベンチャを(も)記述できる言語の方がいいんじゃないかと、こんな話を飛田さんが始めたわけだ。
もちろん、僕はそういうのが大好きだ。
だから話を聞いた途端に速攻で「UNIXの世界にはDDL(Dungeon Description Language)なんてのがあり…他にもアドベンチャを書くのに比較的適したツールとして、こんなのやあんなのがあり…」と紹介して、でもこれは問題があるから、こんな風な設計であるべきだと、雑な概念設計を示した。
こうしてivの設計と開発は始まった。
というところで次回に続く。
なんかほとんどが1989年の話で終わってしまったけれど…本当に忙しいのよ、studio design directorって。

LinkedIn にシェア
Pocket

3件のコメント

  • AGENT: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.835.202 Chrome/14.0.835.202 Safari/535.1
    >1990年ごろのゲームマシンは伝説的神話的な世界で、超人達がアセンブラでプログラムを書いていたことになっているけれど、現実は全然違った。
    この辺りの話は、アーケードゲームの開発でも同じような感じだったんでしょうか。

  • AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0
    アーケードは速度要求(当時はアクションもしくはシューティングが非常に多い)が厳しかったので、アセンブラですね。
    PCエンジンでもシューティング作るなら、アセンブラにしますよw

  • AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0
    誤解されそうだから追加。
    アセンブラで組んでも当時でも「ゼロからスクラッチ」ということはまずなかっのです。
    例えば凄ノ王伝説では、和泉さんが作ったライブラリを一部使わせてもらっているし、イースでは和泉さんが作ったシステムそのものを借用しました。
    と、こんな風に『システム』がベースにあるのは当たり前でしたね。

コメントは現在停止中です。