Kiya Yoshio explains the technical wizardry behind the Sorcerian system and his vision for user-made scenarios

「ソーサリアンシステム」とは何か?

追加シナリオがどんどん出る、やがてキミだけのオリジナル・ソーサリアンが作れるようになる、その秘密を説明しよう!

 テクノポリスは『ソーサリアン』の追加シナリオとユーティリティが出たことに大きく注目している。他の『Ⅱ』とか『Ⅲ』とかが出たのとは、まるで意味が違うことだからだ。そのへんを木屋さんにお話してもらおう。

 編集部前説:キミはもう見ていると思うけど、日本ファルコムさんの広告にはこんなことが書かれている。「ソーサリアンはシステム(DOSやOSとかBASICみたいな)なんです。シナリオが増殖してゆく、RPG、シミュレーション、アドベンチャーあらゆるジャンルを超えて増殖してゆく。ファルコムがシナリオを書く。ユーザーがシナリオを書く。それがソーサリアンを介して広がってゆく。ソーサリアンはそんな仕組みになっているのです」。

 ソーサリアンシステムというのはどうしてこんなことが可能なんだろう?それを説明してもらうために、今回はあの木屋さんの特別講義を企画した。

追加シナリオがどんどんできるワケは?

木屋 実際にソーサリアンシステムと言っているのは、ソーサリアンのゲームのプログラムも含めて言っているんですよね。メインプログラムのところ、ここは何をやっているかというと、この部分はBASICみたいなインタプリタ[1]になっているんですよ。
 そして、ゲームに必要なシナリオなどは簡易言語[2]みたいなもので記述してあるんです。たとえば、プレイヤーがここでキーを押したらトビラを開けろ、とか。BASICでいうならIF〜THENのようなものです。
 だから、その言語を記述することによってシナリオをいくらでも追加できる。
 今までのゲームだと、シナリオの中にプログラムが細かく入っていて、何か他のことをやろうとしてもできなくなっちゃうとか、要するに、シナリオの進行そのものがプログラムにガッチリくいこんじゃってるんですよね。
 それを完全に分離して、メインプログラムはBASICのインタプリタのようなものに専念してしまおうと。結局メインプログラムは、BASICインタプリタと同じで、それを単独では何も出来ないんですよね。シナリオに記述されているとおりに実行していくだけなんで、シナリオがないと何もできない。その代わり、シナリオを入れ換えればたいていのゲームは作ることができるんです。
 で、ソーサリアンシステムでは、普通のやり方でつくられたゲームに比べてどこが変わってくるかというと、まず、シナリオがいくらでも追加できるってことですね。それも比較的簡単な言語で記述することによって自由自在にできる。シナリオライターにマシン語だとか難しい知識があまり必要ない。
 それにイベントを変えるとか、おもしろくない点があれば、その記述を書き換えることで簡単にいくらでも変えることができるわけです。
 今、いろんなRPGが出てますよね。それらと同じストーリーや同じイベントを持ったゲームを作ることは、ソーサリアンシステムでほとんどが実現可能だと思います。
 逆にソーサリアンのいっぱいあるシナリオを他のゲームに持って行こうとしたら、これはほとんど不可能だと思います。


移植が早くてしかも機能が落ちない理由

木屋 ソーサリアンを作り始めたとき、結局一番いっしょけんめい作ってたのは、BIOS[3]ってやつですね。要するに基本的な入出力部分ですね。で、たちあがるとですね、まずソーサリアンの核になっているディスクBIOSとサウンドBIOSっていう2つが読み込まれるんですよね。
 ディスクBIOSは当然、ディスクの入出力部分を受け持って、その他キー入力だとかパレットだとか、よく使うものは全部ここにまとめてあるんですけど。サウンドBIOSは音楽を鳴らすと。で、ここがいわば狭い意味でのソーサリアンシステムの部分で、そこから先は要するにソーサリアンっていうゲームなんです。
 今までの普通に作られているゲームだと、たとえばディスクの出入力ルーチンとかサウンドルーチンとかを、メインプログラムに1つにしてまとめて持っていることが多いですよね。そうするととっても細かいこともできるんですけど、逆に汎用性がなくなってるし、たとえばプロセスの切り換えっていうようなとき、つまり今走っているプログラムがあって、そこから別のプログラムに切り換えてやるっていう、要するにメモリで持ちきれない部分をディスクに戻す、そういうことをやるときにたいへんになってくる。
 音楽を止めないと別のプログラムを走らせられないとかの問題も出てきます。で、そういう部分を全部クリアするためにほとんどをBIOSの中に持たせています。
 MS-DOSを使っているゲームもけっこうありますけどね、あれって、ゲームの中で必要のない部分ばっかりなんですよね。MS-DOS上で走っているほとんどのゲームは、ぼくの知っている限りでは最低256Kバイトのメモリが必要ですよね、98だったら。MS-DOSは読み込んだ時点で100K以上使っています。その中に何が入っているかといえば、ほとんど使わないようなものが数多く入っているわけです。
 で、実際にゲームで必要なのは、キーボードから入力して画面に絵を出す、そんなもんですからね。その部分をまとめて作ってあるソーサリアンの場合には、基本的に最低64Kあれば走るわけですから、BIOSの中にはよけいなものが何にもないってことですよ。しかも1つ1つに関しては、とにかく専門職ですからね、とっても高級なことができる。必要なことだけやればいいわけですからね。
 で、しかもそのディスクの入出力部の仕様だとか、キーボードからの入力だとかを、そのBIOSにすべてまとめてあるので、BIOSさえ移植すれば、他機種への移植が普通の作り方に比べると非常に早いということですよね。


キミもソーサリアンが作れるようになる

木屋 追加シナリオはVol.3まで進行中です。そのほか今、われわれが用意しているものは、シナリオを作るためのツールっていうもの。これがほぼできつつあるので、シナリオを一般ユーザーが作れるようにするつもりです。それをやってほしくてソーサリアンを作ったんですよね。
 実際には、ソーサリアンシステムは今、ユーティリティーとシナリオ、それと今度出すとしたら、そのツールスっていうやつですね。これは出るかどうかわからないんですけど、まずソーサリアンのBGMを作るツール。最近、音楽を作りたい人がいっぱいいるんで、おもしろいかなと。それから、キャラクターとかマップを作るツール。それとシナリオを作るツール。この3つを今、やっているのですけど。これでもうソーサリアンは作れますね、あとアセンブラを持っていれば。そういうものを出して、ほかのソフトハウスにもソーサリアンを作ってほしいな、と。


ソーサリアンシステムのメモリマップ(のようなもの)

BIOS

メインプログラムの命令に従って、ディスクに読み書きしたり、プレイヤーのキー操作を読みとったり、サウンドを鳴らしたりする。

メインプログラム

シナリオを読んで、そのとおりに画面や音を出すようBIOSに命令する。

シナリオ

まさにゲームシナリオそのものがかかれている。

データ

グラフィック、マップ、BGMなどのデータが入っている。

ソーサリアンシステムのBIOSの中身

D-BIOS(ディスクBIOS)

ディスクの入出力、キー入力、パレットなどを扱う

S-BIOS(サウンドBIOS)

サウンドを鳴らす


  1. インタプリタ(interpreter) BASICのように、プログラムや入力されたものを順次読み取って、マシン語に直し、実行してくれるプログラムのこと。一方、順次でなく一気にマシン語に直し、実行するものをコンパイラ(compiler)という。よく「通訳」にたとえられる。 ↩︎

  2. 簡易言語 BASICなどのプログラミング言語を使わずに、もっと簡単な命令の組み合わせで、自分のやりたい仕事をコンピュータに実行させようという目的で作られたソフト。最近のリレーショナル・データベース・ソフトなどもその一種といえる。 ↩︎

  3. BIOS(バイオス=Basic Input/Output Systemの略) コンピュータで、周辺機器などへの基本的な入出力を行うプログラムの部分を一般にそう呼ぶ。キーボードからの入力を受け付ける、ディスプレイに表示をする、スピーカーを鳴らすなど、すべてBIOSの役目である。 ↩︎