何とか庵日誌

本名荒井が毒にも薬にもならないことを書きつづるところ

連打ゲーム三題

f:id:fukenko:20200420002129p:plain
「押しずもう」
 「アクションゲーム38」の収録作品も残り少なくなってまいりました。収録ゲームには連打を肝とするゲームがいくつか収められています。というわけで今回は「アクションゲーム38」から、連打ゲームを3本紹介いたします。


 1本目は連打式相撲ゲーム「押しずもう」です。ルールはかんたん。ひたすら連打して相手力士を押しまくり、土俵の外に押し出せば勝ち。出されればこちらの負けです。使うのはスペースキーのみ。できるのは押し出しだけ。四十八手なんてものはありません。ひたすら押して押して押しまくる! 「押しずもう」とはよく言ったものです。
 このゲームのアツさは、勝敗よりもタイムアタックにあります。勝つだけなら非常に簡単ですが、それだけではなんの面白みもありません。そこでいかに短い時間で勝つか―つまりタイムを縮めるべくどれだけ速く連打できるか―を意識してプレイすると、とたんにエキサイティングになります。
 それを見透かしたように、決着が付くと勝負に要した時間が表示される仕様。ここからも連打を趣旨としたゲームであることがうかがえますが、力士が四つを組んで押し合うグラフィックなど、単なる連打ゲームに感じさせない見せ方も巧いです。


f:id:fukenko:20200420002303p:plain
「自動車レース」
 2本目「自動車レース」はゼロヨン風連打式レースゲーム。相手の車より早くゴールすれば勝ち。連打が早いほどスピードが上がります。勝ち進むほど敵車も速くなっていきますので、勝負は連打力が物を言います。つまるところ「ハイパーオリンピック」の仲間ですな(おい)
 とはいえゲームとしてはそれだけで他に凝ったことはやっていないので、瞬く間に飽きます(おい)。BASICのミニプログラムにあれこれ期待するものではないのでしょうが、もうひとひねりあってもよかったなとおもいます。


f:id:fukenko:20200420002331p:plain
「ダイヤモンド探し」
 3本目は「ダイヤモンド探し」。地中に埋まったダイヤモンドを掘り出すゲームです。地中のどこかにダイヤモンドが埋まってますので、掘り出しましょう。早く見つけるほど高得点です。地面は崩れやすく、どんどん掘っていかないと片端から崩れてどんどん埋まってしまいます。地面を掘るには崩れる速度に追いつかれないよう、やはり連打、連打、連打!です。
 さらにただ掘ればいいというものではありません。地面にはダイヤモンドに混じって不発弾も埋もれています。誤ってこれに触れると即アウト。不発弾は掘り出しただけではミスになりませんので、出現したら連打を止め、見逃すという判断も必要です。ひたすら連打していると勢い余ってドカンとなりやすいので、寸止めできるようよく見て抑えながら連打するのがゲームの勘所です。


f:id:fukenko:20200420002351p:plain
ダイヤ発見! 見つかるかどうかは運任せな部分が大きい。
 もちろんBASIC製のミニプログラムなので、そう凝ったことはやってません。不発弾は全て同じ深さに埋まっているので、連打するスピードや回数を体得してしまうと、いともやすやすと回避できてしまいます。あとは同じ作業の繰り返しになってしまうため、ゲームの単調さが際立つ羽目に(おい)。どうせなら掘る場所によってランダムに深さが変わるようにしたほうが、より油断ができなくてよかったのでは、とおもいます。
 あともう一つの難点は、時間制限が厳しいこと。運が悪いと制限時間内にダイヤを掘り出せず、ゲームオーバーになってしまいます。「全ての列を掘るのに要する時間」を上限にして、運が悪いと掘り出せても得点がさっぱり、としたほうがより親切です。「ただ連打するだけでは失敗する」というアイディアが巧いので、そこをさらに引き立てる工夫があれば、もっとよいゲームになるでしょう。


f:id:fukenko:20200420002156p:plain
STRIG割り込みで押して、ON SPRITE割り込みで押される。
巧い処理を思いついたものだ。
 ところでこれら3本の作品は、いずれもBASICのON STRIG命令によって連打処理を実装しています。トリガーボタンを押すごとに割り込みが発生し、所定のサブルーチンを実行するというものですが、なるほど、これならBASICでも簡単に高速に連打入力を検出できるわけです。
 ただしMSX-BASICの割り込み命令は、なかなか扱いづらいものでした。割り込みのタイミングによっては動作が安定しなかったり、バグってしまうこともしばしばでした。ですので腕に覚えのあるプログラマーは、マシン語で割り込み処理をやっていた感があります。