見出し画像

黎明期のPCゲーム開発記 (9)〜移植性とジレンマ〜

前回の「第8回」は、プロジェクト開始直後にして最大のピンチのお話でした。
今回は MSX版ソーサリアンの開発に関して考えたことに関するお話です。

MSX の特性

以前にも紹介しましたが、当時の私は MSX を触るのは初めてでした。そんな私が PC-88 から MSX へ移植するということは、プロジェクト開始の時点で「ある程度の批判」は覚悟しなければならない、ということを意味していました。

これは当時の私が開発時に書き留めたノートに書かれていたことですが、、PC-88 というマシンは「グラフィック操作が強化されたロースペックのビジネス機」で、MSX はどちらかというと「ゲーム機に近い?」という感触を持っていたようです。例えば「スプライト機能」は PC-88 にはありません。PC-88 ではスプライト機能を、プログラムで実装していたのです。

それ以外にも画面解像度の違いや、搭載されている「フロッピーディスクドライブ」の台数の違いなど、それらを加味しつつ開発を進めなければなりません。

仕様を決める

MSX 版を作る際の仕様決定は、慎重な判断のしどころでした。MSX がハードウェア的に持っている機能をどこまで使うか、それとも使わないかで、その後に開発するものが大きく変わってくるからです。

例えばゲーム画面。PC-88 は画面が「640 x 200」ドットで構成され、ゲーム画面を構成するキャラクタ(以下、チップと記述します)は 16 x 8 で作成されています。このチップを画面全体に敷き詰めると、横 40 x 縦 25 チップを配置することが出来ます。このチップが敷き詰められたゲーム画面(マップ)の上を動くプレイヤーやモンスター、魔法、文字など、全てこのサイズで統一されています。

当時の私が出した結論は次のとおりです。

・「256 x 212 ドット(だったかな?)」の画面サイズのモードを使う
・スプライト機能は使わない
・MSX 版であることのオリジナリティは捨てる

いくつかの理由があります。そのうちの1つは「納期」です。前回のピンチが解消された時点ですでに1990年は終わろうとしています。残りの開発期間は約4ヶ月。現実的に考えて PC-88 版にない機能を使って MSX(専用)版を作るのは現実的ではないと考えたからです。もう1つの理由・・・

それは、このゲームが「ソーサリアン」だからです。

ソーサリアンはゲームOS

特に「ソーサリアン」というゲームに対する敬意などという意味ではなく、ソーサリアンというゲームが持っている特性、という意味です。

この「ソーサリアン」というゲームは、大げさに言えば「ソーサリアンOS」という「ゲームOS」の上で動作する「15本 + 1本のシナリオ」によって構成されたゲーム・パッケージといえます。またすでに別機種では、「戦国ソーサリアン」や「ピラミッド・ソーサリアン」などの追加シナリオが発売されていました。もしここで私が「MSX版のオリジナリティ」を求めたがために、「戦国ソーサリアン」では実現が不可能などと言うことになったら、それは果たして「ソーサリアン」と言えるのか?

チップの構成も同様です。
MSX 版ソーサリアンでは、グラフィック担当の方に 1つのチップを 6 x 8 ドットで書いてもらいました。少し縦長のチップです。PC-88 版では 16 x 8 ドットのチップがすべての基準となっています。MSX版でも正方形 (PC-88はドットの縦横比が 1 : 2 なので 16 x 8 で正方形になります) で作成することも考えました。グラフィック担当の方も、そのほうが作りやすかったかもしれません。しかしそうすると、そのチップを画面に敷き詰めた時に表示できるチップ数が PC-88 版とは異なる数になります。

これで何が問題になるのか。例えばゲーム画面がスクロールしていって端の壁に当たる。でもその壁の向こう側に宝箱が見える・・・なんていう演出があった場合、敷き詰めているチップ数が違うと、うまく表示されないかもしれない・・・「マップを作り変えればいいじゃん?」という声も聞こえてきそうですが、当時の私にはそこを変更する時間的、精神的余裕はなかったのでしょう。

ソーサリアンがゲームOSと捉えた場合、そしてすでに(別機種で)発売済みのシナリオが全て動作することを保証する(本当に?)となると、見た目に関しては PC-88  版と同じにしておくことが望ましいと考えました。

それでも問題は残る

かくして、チップのサイズを 6 x 8 ドットにするなど、1つ1つの分野に関して仕様を決めていくわけですが、当然問題も生じるわけです。

例えば文字。実は MSX版ソーサリアンで表示されている文字は「8 x 8 ドット」で構成しています。この理由は簡単です。6 x 8 ドットで 英語、数字、記号、ひらがな 全てを表現することが現実的ではなかったからです。その判断は正しかったと思います。しかしプログラム的には問題が生じます。ここの部分を文字で説明するのは非常に難しいのですが、プログラム的には文字もチップも同じサイズで構成しておいたほうが作りやすいのです。現実的な対処として、マップ上に文字が重なった状態でスクロールする時は、横方向に1チップ分余計に書き換え作業をすることで、ソーサリアンの特徴である二重スクロール(?)機能を維持しています (本当はもう少しだけ工夫している部分はあるのですが)。

まだ問題があります。それは、6 x 8 ドットのチップを敷き詰めた時に画面上でどんな風に見えるかを確認するツールなんてものは、この世に存在しないということです。いくらグラフィック担当の方が優秀であっても、作ったチップが想定通りうまく作れているかは、目で見て確認する必要があります。

少なくとも画面に関してはこういう仕様になってしまったので、私が MSX版ソーサリアンの開発で一番最初に書いたプログラム(ツール)は、この 6 x 8 ドットのチップが正しくかけているかを確認するための「マップビューアー」ということになってしまいました。

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