ファミリーベーシックでゲームプログラミング

すげえ!ファミコンがコンピューターになっちゃった!

先日とあるきっかけでこちらの「ファミリーベーシック」なるものを入手。
これはあのファミリーコンピュータ―にキーボードをつないで、コンピューターとして使ってしまおうというモノなのです。
しかし、ゲーム機の拡張として作られたものなので機能の制限はかなりありまして、まず

  1. 自分で好きなキャラクターを一から作ることはできない
  2. 使えるメモリーは2kb(特殊なコマンドで4kbまで拡張可能)まで。
  3. 言語はBasicオンリー。65536以上の桁はオーバーフロー?
  4. 記録媒体はカセットテープかファミコンカセット内のSRAM。電池式で3カ月まで。
  5. 保存できるデータはカセット内だと1つのみ
といった感じです。キャラクターが作れないというところはすでにファミコンのカセット内に用意されたマリオやレディ、ペンギンといった画像素材を用いて使います。組み合わせ次第でいろいろなキャラクターが作れるので結構面白いです。
このように中で使えるキャラクタパターンが巻末付録として収録。なくしたらおしまいだぞ!

しかし問題はこのメモリの容量の少なさ。どれくらい少ないかというと、使う画像の宣言をしてマリオのジャンプとアニメーションの分岐をベーシックでつらつら書き、REM文で少しメモを残そうものならもうそれでメモリはパンパン。もちろんこの中にBGMやSE、バックグラウンドの画像パターンも納めなくてはいけないわけでございますからできることなんて大体予想が付くというものです。南無。
ご立派なBASICコマンドはたくさんあるけれども、これをすべて一つのプログラムの中に使い切ることはできないくらい容量は限られている・・・といっても過言ではないと思う。

■|何はともあれプログラミング。使ってみると意外と面白い。

以上のことからも、この非常に制限された中でいかに面白いゲームを作るかが試されるものであることはご理解いただけたと思います。しかしかつてこのセットでもうそれはそれは多くの子供大人問わず制作に挑んだわけでございまして。ならばとひとつ私も挑戦してみました。
ファミリーベーシックに付属するプログラミングの教科書。
正直ワクワクする表紙。経年劣化でボロボロだが。
最初のほうはカラーで説明が展開されていく。
マリオの絵が今のとは比べ物にならないほどお粗末である。

もちろん制限はさっき述べた通りですので、取り合えず動かしてみようという風なプログラミングではゲームになる前にメモリの上限を迎えてしまいます。ファミコン恐ろしい子。
 しかしそれだけではなくこのファミコンの音源やパッド入力がこれ一つでできてしまうという点でして、STICK(1)とか宣言するだけでファミコンのあのコントローラーで操作できてしまうんです。すごくないですか。動いたときは普通に感動しますよこれ。

ただ問題もございまして、BGMを下手に流すと音を流している間はなんとそれ以外の一切の動作が止まります。止まるんです。なのでループの中でうまくタスクを分散し、サウンドもゲームも滑らかに動くように考えて整理してプログラミングしなくてはなりません。今の開発環境なら、マシンスペックに物言わせてそんな順序考えずにいくつもファイル作ってあとは実行ボタン押すだけですからね。Unityとか。

なのでほんとにパズルを解くかの如くプログラミングをすることになるので、パソコンの処理のさせ方とかの考えるトレーニングにめちゃくちゃなります。実際にこのプログラミングをした後にUnityで作っているゲーム制作に戻ったのですが、この考えを取り入れて整理したところもっさりした動作が恐ろしく滑らかになりました。バグも取れましたし。(どんなコードを書いていたのかはお察しください。)

あえて昔の環境でプログラミングすることにより「パソコンにやさしい」コードが描けるようになること間違いなし。ファミコン実機をお持ちの方、一度ためしてみてはいかかでしょうか。

コメント

このブログの人気の投稿

ファミコンの完全自作ROM&カセットを作ろう!!その1~立ちはだかるコンパイラの壁~

ファミコンの完全自作ROM&カセット作ろう!〜cc65で起動ROMをつくる〜

74HC595を使ってarduinoの16ビットパラレル出力に挑んでみた