2011-11-30 Wed [ 天外2製作メモ ]
1991年2月。
東京は市ヶ谷の天外2開発ルームにはマシンが10台以上並び、久保久・松田クン・山根・アルファシステムの長谷川君(ファイティングストリートなど多数)、同じくアルファの藪(大魔界村の移植)、さらにグラフィックの外注をやってもらうウィンズのメンバーが集まり始め、ついに開発はスタートしようとしていた。
そのまだ人が揃いきっていない開発ルームで、僕は、信頼するアルファシステムの長谷川君とシステム設計の打ち合わせをしていた。
これはイース1・2で、そこらへんをキッチリ決めておかないと、CDROMでは、あとでエラい目に会うという事がわかっていたからだ。
…とは言っても、結構打ち合わせは簡単だった。ビルド関係は、イースで作ったものが柔軟性と信頼性を持っていたので、多人数に対応するために若干の調整をする以外は、ほぼ手直しなしで使うことになったからだ。
そして、打ち合わせの途中、長谷川君が僕に言った。
「岩崎さん、天外2ではiv使おうと思うのよ」
「えーっ!? あれはまあ汎用言語だけどインタープリタよ? アドベンチャならともかくRPGで間に合うの?」
「うん、間に合うよ。アルファシステムでもう使っていて、十分って結論が出てるのよ」
「なら、ぜんぜん楽にはなるけどさ…本当かよ」
「本当だよ、圧倒的に便利だし、十分速いよ」
ivは、PCエンジンで使われていた汎用中間コードコンパイラで、今で言う仮想マシンとかLuaとかphpみたいな代物だ。
そして、ここで話したとおり、天外2のほとんどはivで記述した。つまりプログラムの99%はアセンブラで書かれていない。95%はこのiv、つまり中間コードで、4%ぐらいがビジュアルアセンブラ(と僕が呼んでいた結構ひどいビジュアル専用の言語)、実際にアセンブラで書かれていたのはシステム部分やコアのルーチンだけで、ほとんどはivで動いていたのだ(サイズから考えると99.99%はアセンブラでなかったと思う)。
今回と次回はほぼ、このivだけの話になる。
続きを読む▽
東京は市ヶ谷の天外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がパンクしない限りは絶対に大丈夫だし、複雑なプロジェクト構造になっても耐えられる設計になっていた)。
ちなみに、調整したところは、システムとシナリオ部分を完全に切り離して、多人数が同時に作業しても、問題が起きないようにすることだった。
で、ビルドシステムは「実行可能なゲームをどのように組み立てるのか」の設計図のようなもの。
今なら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だけの話になる。
続きを読む▽






