私のゲーム製作の歴史1


C言語の基礎もなにもない私が、3年前に VC++とDirect X を使ったゲーム製作を手がけてしまった。
なぜ、3Dゲームなのか...
ゲーム製作の歴史は私が中学生の頃からはじまる。

私は中学生の頃、初めてパソコン「MSX2」を購入した。当初、コンピュータミュージックを始めたく、PSG(SSG)音源とFM音源モジュール(カセットタイプ)を使って、ゲームミュージックの耳コピーをやっていた。
そのうち、自分の音楽をBGMとしてゲームを作りたい! そう考えるようになり、BASIC言語の勉強を始めた。
最初は、ゲームプログラム集を購入し、リスト通りに入力し、RUNさせてみることから始めた。私にとっては、何もかも暗号に見えるBASIC言語だが、そのうち変数・条件判断・繰り返し処理などを覚えるようになり、なんとなくBASICを扱えるようになった。

ゲームにはキャラクタが必要だ。ロールプレイングゲームが大好きな私は、主人公をはじめ、マップキャラクタ・街の人などを製作するための「キャラクタエディタ」なるものを製作した。自作のキャラクタエディタでキャラクタをドット単位で製作し、データとして保存したものをプログラム本体と連結し、ダンジョンマップを完成させた。この時の開発マシンは「NEC PC8801 MC」というPCエンジンのCDドライブが接続できるPC8801シリーズとしては最後のモデルだった。

精密スクロール(ブロック単位でのマップ切り替えではなく、2〜4ドット単位でスクロールさせること)は、BASICでは処理速度が遅く、実現できない壁にぶつかった。
マシン語しかない!
必死でマシン語(Z80用)を覚えた。当時、PC9801にはもちろん、PC8801にもマシン語モニタなるものがあった。「MON」である。
これを駆使し、VRAMのバンク切り替えを行い、R、G、B分の画面スクロールを実現した。当時のPC8801のVRAMは、1アドレスで8ドット分のデータが入っていた(X方向)。そのため、最小で8ドット単位でのスクロールが一般的だった。
BASICのソース側からユーザーメモリ空間に読み込んだスクロール処理用のマシン語を呼び出し、スクロール部分の処理のみをマシン語にやらせた。しばらく動かすと、BASICで使用したスタックが積み重なり、マシン語領域をスタックが上書きし、マシン語が暴走するハメとなった。

PC8801でのゲーム製作を諦めた。 と同時に、パソコンとの縁を一旦切る決心をした。


←戻る

Last Update 2001.09.24