2017/1/24 | 投稿者: ghost

このままだと“ゼビモドキ”がゲーム名として既成事実化してしまいそうだが、そういうつもりはない。そのうち洒落た名前が思いつくこともあろう。それはともかくとして、とりあえずデモ的にコア部分が動くようになったので動画を撮ってみた。


現時点で動作しているのは自機の登場と操作、および背景のスクロールまで。前稿で触れたフレームレートについては、とりあえず現時点では20fpsで動作させている。処理速度的には十二分に余裕があるようなので、以降大きな問題が生じなければこのまま行きそう。背景スクロールは暫定的に3.3回/秒(18/60秒毎)。これは現在着手中の浮遊要塞重ね合わせ処理との兼ね合いで要調整だろう。

本家ゼビウスでは、背景画像は大きな一枚絵からエリア毎に細長い短冊状の部分を切り出して流していて、各エリアの地形は一意に決まっている。ゼビモドキではゼビウスの全体マップに相当するような絵を保持するメモリ的な余裕がないので、背景はランダムに生成している。

具体的には、6パターンの192✕32ピクセルの背景を事前に用意していて、32ピクセル分スクロールする(8ピクセル毎にガタガタスクロールなので、その4回に相当)毎に、6パターンのどれかをランダムに選ぶ、という方法を採っている。ただ、これだと単調に過ぎるので、実際には横幅192ピクセルのうちの128ピクセルのみを表示に使用し、この切り出し位置をやはりランダムに左右に揺らすことで変化をつけている。これは、上掲デモでは海岸線が画面内で左右に移動する演出に対応している。

ちなみに、動画の33秒以降、戦闘機が登場してからあらぬ正方形が画面内をうろうろしているように見えるかとおもうが、これはバグではなく、MSXシステムレベルではこの時点で既に任意のコマンド入力を受け付けるBASICのダイレクトモードに復帰していて、戦闘機へのカーソル操作入力と同時にBASICのカーソルも画面内を動き回っているからである。つまり、ゼビモドキはBGM/SEドライバと同じレベルで動作するプログラムとして書かれている。56秒目に至って画面右下に「A=USR2(0)」と打ち込んでいるが、これはBASICインタプリタのタイマー割り込みルーチンに食い込んでいるゼビモドキの処理の切り離しを命じているものに当たる。

極端な話、ゼビモドキを動かしながら、BASICのプログラムを入力したり実行したりすることもできる。そんなことをして何の意味があるのか、と問えば、特に実用的な価値はないのであるが、少なくとも今後本格化していくゼビモドキ自身のデバッグの役には立つ。動作が怪しいときに、任意の調査プログラムを書いて、ゼビモドキを動作させながらのテストができるからだ。あ、無理に理解しようとしてくれなくていい。これは技術、というよりは病気の類の所業なので。

もう1つ、昔から一度やってみようと思っていたMSX(厳密にはVDP、TMS9918)の変態的な仕様を逆用したちょっとした演出を組み込んでみた。

続きを読む
タグ: MSX Z80




AutoPage最新お知らせ