見出し画像

MSX 雑誌投稿プログラム Wallaby!(ワラビー)にエディット機能を追加する(その3)

 前回の記事の続きである。前回までの記事で、原作ワラビーにエディット機能を追加したのだが、今回は、そのエディット機能にまつわることを記載していきたい。前回の記事は、こちらから。

 


○エディットによりさらに広がったワラビーの世界

 やはり、自分で好きな面を自由に作成できるのは、楽しすぎる! 特に、この作品のような正統派1画面固定型パズルゲームにおいては、エディット機能との相性は抜群だ。ゼロから作っても楽しいし、既存の面のアレンジもまた楽しい。

 既存面アレンジといえば、実は、既存の3面は、あっさりクリアできてしまう解法もある。こういった別解(?)を封じるための修正も、簡単にできてしまう。

既存の3面

 

このように、右からぐるっと回れば簡単にクリアできてしまう

 

そのような別解を、簡単に封じることも!

 

 エディット機能があれば、このように、試行錯誤しながら面を作り上げていくことができるのだが、原作者は、雑誌投稿するにあたり、どのような環境で面を作っては、テストプレイなどの試行錯誤をしていたのだろうか。やはり、このようなエディットを用意していたのだろうか。だとしたら、どうして、それを本体プログラムに組み込まなかったのだろうか?

 

○原作にエディットモードがない理由(考察)

 その理由は、私自身、自作面を複数作っていく中で、何となく分かった気がしてきている。というのは、現在の既定の10面については、プログラムが対応できていても、それ以外のどのような面に対してまでも、プログラムが対応しているわけではないのだ。

 例えば、空中にりんごを設置した面の場合、開始直後は空中に浮いたままで落下はしない。現在のプログラムでは、りんごの落下処理は、ブロックを叩いた時に処理されるようになっている。

 この辺の処理を、どの辺までプログラムに盛り込むかというのは、案外難しい。通常発生しないようなことまで全てプログラムに盛り込めば、その分プログラムが長く複雑になるし、バグが増える要因にもなる。また、当然に、それだけでなく、ゲーム処理速度に影響するし、結果、ゲームの快適さにも影響を受ける。

 とはいえ、原作者も、いろんな可能性は想定はしていたようで、例えば、次のような処理は確認できた。

①(爆弾が爆発した結果、)頭上から降ってきたブロックとワラビーの座標が重なると(ワラビーがつぶされると)、ワラビーが死ぬ処理

②爆弾の上にブロックやりんごを落として同じ座標に重なると、画面全体が爆発して、ワラビーが死ぬ処理(強制終了?)

 この①②は、私が確認した限りでは、通常の10個の面では起こりようがないように思えた。しかし、原作者も、この①②の処理を削除することの影響の方が大きいと思ったのか、あえてこの処理を残したのかもしれない。

 

○私が作成した面の紹介

 ということで、このエディット機能を使って、いくつか面を作ってみたので、ここにそれを紹介したい。

りんご取り放題!
爆弾の使い方に注意!
チュートリアルの面
ロードランナーっぽい面
大きな谷もブロックの積み方次第!

 相変わらず、派手な面もあれば(笑)、今風のチュートリアルを兼ねたような面というか、初めてこのゲームに触れる人向けの面も作ってみた。

 このように、公式の面では作られないような面を、自在に作れるのは本当に楽しい!

 いずれにしても、私のこのゲームに対する愛は、だいぶ伝わったのではなかろうか。もしかしたら、私は、原作者や雑誌編集者の次に、このゲームに深く関わった人物かもしれない(笑)。

(攻略本とか作ったら、売れるかな……。)
(今なら、ネットの記事になるのかな……?)
 

○エディット機能完成後のさらなる欲望

 人間の欲望は尽きない。

 私は、今回、ゲーム性を大きく変えるようなメインプログラム修正までは考えていないのだが、余力がある方は、大きな修正も挑戦してみてはいかがだろうか。

 このゲームの続編というか、パワーアップバージョンを作るとすれば、取り急ぎ、次のようなアイデアは浮かんだ。どれも、ほかのゲームでありがちなアイデアばかりだが、想像するだけでも楽しい。

  • ゲームプレイ中にバックミュージックを流す

  • 2人同時プレイができるようにする

  • スコア欄を潰して、もう1行分画面を広くする

  • 左右2画面に拡張する(スクロール)

  • 上下にもスクロールするように画面を拡張する

  • 新たなパーツを追加する

    • スペランカーのツタのようなもの

    • (ロードランナーのように)脱出はしご相当のもの

    • 各種パワーアップアイテム(壊せないブロックが壊せるように)

  • クリア条件の変更(画面の一番上まであがったらクリア)

  • ブロックが時間経過で復元するようにする

  • 敵を配置する

 ここまですると、
「それ、どこのロードランナー?」
という声が聞こえてきそうなのだが(笑)、とにかく、夢はどんどん膨らむ……。いずれにしても、今ならば、MSX ではない環境で新しく作った方が、快適な動作になるかもしれないが……。

 ていうか、私は、本当にこのゲームに、それこそ倉庫番のような可能性を感じているのだが、それは、私だけなのだろうか?

 

○エディットの保存

 今回、エディットモードで自由に作れるようになったのはいいが、せっかく作ったその面というのは、やはりディスクに保存したくなる。幸い、前述のとおり、面情報は単なる文字列で表現できるので、そんな文字列を、単にディスクに保存したりディスクから読み出したりすればよい。そして、実は、これは BASIC の基本的な解説書にある難易度程度で実装できる。

 あとは、それをどのようにプログラム内に組み込むか――だろうが、なるべく簡単な仕様で、複数保存できるようにしたい。この辺は、そこまで難しくなさそうなので、整理して改めて記事にしたい。

 ――というか、今なら、エミュレータという便利な機能もあり、
「リアルタイムセーブがあるのでは?」
 という声が聞こえてきそうなのだが、やはりこの辺は、MSX 単体で完結させることに意味があるのだ!

 ファミコンならデータレコーダー――というか、ファミリーベーシックが必須だったのが、MSX は、パソコンというだけあり、外部メディアへの記録には、単なるゲーム機よりも優位性があった。ここはやはり、そんな MSX で完結させたいので、もう少し私にお付き合いいただければ幸いだ。

【関連記事】


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