見出し画像

黎明期のPCゲーム開発記 (5) 〜ソーサリアンを探検する〜

前回の「第4回」では、ソフトハウスにお手紙を送り、自分専用の「ゲーム用OS」を作るところまでのお話でした。
第5回の今回は、市販ゲームの解析を始めるところからのお話です。

ソーサリアンを探検する

すでに「第2回」で、PC-8801 mkII SR以降版の「ソーサリアン (日本ファルコム)」をプレイしていたことを書きました。ご存じの方も多いと思いますが、この「ソーサリアン」というゲームは、1つのゲームの中に15本(+1本)のシナリオが用意されていて、さらにプレイヤーが操作するキャラクタも「成長」して「寿命」を迎えるという、当時でも中々見られないようなゲームシステムでした。また追加シナリオも販売され、あたかもこのゲーム自体が「1つのOS」のように見えなくもない・・・そんなゲームでした。

私がマシン語を勉強し始めたのは「処理速度の速いゲームを作る」が理由だったのですが、ひょんなことから「自分用のOS」を作る事になり、そして PC-8801 の内部構造の解析を行うまでになっていました。そんな私の興味は、「このゲームの構造を知りたい」となり・・・

今から考えれば、せっかく作った「自分用 OS」を使ってソーサリアンの解析をすればよかったのですが、何故かあの時、PC-8801 の内部構造を解析したときと同様、N88-BASIC の MON コマンドを使って1命令1命令解析をはじめていました。慣れでしょうか、(5インチ2D)4枚組全てのディスクを解析するのに、そんなに時間はかからなかったように記憶しています。

プログラムの構造やソースコード、ファイルシステムの構造、16ドット x 8ドットのキャラクタ一式、マップ、シナリオ情報、モンスター情報等、結果的に全ての情報をノートに記録しました。この解析は、結果として私のプログラミングのスキルをアップさせてくれました。もちろん、ここで知ったコードをそのまま流用するということはなかったのですが、市販ゲームのプログラムがどのような構造で動作して、どのように高速化が実現されているのか、とても参考になりました(そのノート、どこに行ったのかな・・・)。

ソーサリアン内部の技術的な話をしたいところですが、それを始めるとどれだけスペースがあっても足りない気がするので、それはまた別の機会に。

そしてC言語へ

時間は進み、1980年代も終わりを迎えようとしていた頃、世の中のパソコン事情は「8ビット機」から「16ビット機」に置き換わりつつあり、それはパソコンゲームでも同様ではなかったかと思います (もっと早かったかな?)。私もご多分に漏れず、その頃「(目の付け所が)シャープ」さんの「X68000 EXPERT」を購入していました。もちろん PC-8801 シリーズを破棄したわけではなく、「PC-8801 MA2」に代替わりして所有はしていました。

X68000 を購入したのは、「ウィンドウシステム」に触れてみたかったのと「C言語」を勉強してみたかったのが大きな目的です。さすがに「(PC-8801シリーズのような)8ビット機」では C言語 は現実的ではなく、やはり C言語 を習得しようと思ったら16ビット機を購入することは必然でした。またちょうどこの頃、今でも時々お世話になる「gcc (Cコンパイラ)」と「emacs (エディタ)」を触り始めています。

X68000 は私にとってすでにゲーム機ではなく、プログラムを組むための「開発マシン」だったように記憶しています。もちろんゲームを全くやらなかったということではないのですが、ほとんどの時間を「C言語」による「ゲーム開発」やゲーム開発に必要な「ツール開発」に費やしていたことを覚えています。とにかく、たくさんのプログラムを書きました。

その一例として、PC-8801MA と X68000 を RS-232C で接続して、MA 上で簡単なシェル(のようなもの)を作って動かし、そのシェルへの命令を X68000 から行って結果を表示する・・・なんてものも作ってました (もちろん、全く実用的ではなかったですが)。

友人たちが次々と就職

1990年代に入り、周りの友人たちは就職し始めていました。1人の友人は、当時京都に本社があった「ビデオシステム」というゲーム会社にプログラマとして就職し、また別の友人は、三重県四日市市にある「マイクロキャビン」という会社に営業職として就職していました。

私はといえば、新聞配達のアルバイトをしながら X68000 や PC-8801 でプログラミングを続けていました。作りためたソフトもそれなりの数になっていたことを覚えています。

そんな生活をしていたある日、私にとってこの先の運命を変える1本の電話が鳴ったのです・・・

この記事が気に入ったらサポートをしてみませんか?