MCL(8)

インデックスに戻る

前のMCLへ  次のMCLへ

▼ My Computer Life (8)

8. ファミリーベーシック

 1984年、任天堂は当時爆発的に広がり始めていた家庭用ゲーム機「ファミリーコンピュータ」に対応した、ごく初歩的な開発環境である「ファミリーベーシック」を発売した。
 ファミリーベーシックは、本体である馬鹿でかいカートリッジと、入力端末であるキーボードで構成されていた。更に、データレコーダへの出力端子を利用し、カセットテープの読み書きも可能であった。
 ファミリーベーシックは、意外なほど売れたように思う。実際どれくらいの本数売れたのか知らないが、私の周囲では持ってる人は多かった。普通に考えて、BASICも何も知らない子供たちが、普通のゲームよりも高いこんな物を買うとは思えないのだが、結構みんな買っていた。きっと、当時の子供たちなりに何かを感じたのだろう。

 そういう訳で、私も当時あちこちの家でファミリーベーシックをいじらせてもらった。というのも、日ごろから「パソコン、パソコン」とうるさい私は、すでに周囲に「こういう事に詳しい奴」という評価を受けており、「ファミリーベーシックを買ったが何がなんだかわからない」という友人の相談が結構来たのだ。自分のクラスは言うに及ばず、隣のクラスの良く知らないような奴からも相談を受けた。
 たいていの場合、小学生くらいだとファミリーベーシックでゲームを自作するなど出来るはずもなく、まずはついてくるマニュアルに記載されているサンプルのゲームなどを入力するのが関の山であった。その、サンプルのソースの入力をたいていの場合間違えている。そこで私がリストを点検してやって、適当に間違いを直してやるという訳だ。

 ファミリーベーシックはスプライトを自作できないなどの欠点もあるものの、その代わり出来合いのスプライトやBG(背景を構成するチップ)を使用して簡単にゲームが作れるという利点もあった。
 出来合いのスプライトが用意されているというのは、自作できないという欠点の反面、自分で作らなくて良いという利点もあった。気軽にゲームを作ってみたい時、スプライトの制作から始めるのは結構大変な話だ。
 また、出来合いのスプライトがあるという事は、雑誌等のリストを入力して遊ぶ場合などにも向いている。いちいちスプライトデータまでプログラムに含まなくて良いのだ。

 色んな意味で、ファミリーベーシックは初心者でもとっつきやすいように作られているという印象を与える。
 当然ながら私自身は、自分でゲームを作ってみたいという欲求に駆られる。

 ところが、自分で作ろうと思うと一つの大きな欠点にぶつかる事になる。それは、フリーエリアが2Kバイトしかない、という事だ。

 2Kバイトというのは、想像を絶する小ささである。文字で言うと、2048文字しか入らない。だから当然、プログラム自体の大きさをかなり制限しないといけない。また、プログラム内部で使うワークエリアもあまり取れない。
 2Kバイトなんて、ほんとちょっとしたプログラムで超えてしまうくらいなので、少し凝ったものを作ろうとすると死ぬほど苦労することになる。
 もし必死に頑張ろうとすれば、まずはアルゴリズム的に何とか全体のコード量を減らす手法を考えないといけない。また、コーディング時にも、変数名を短くするとか命令の短縮表記を使うなど、細かい工夫も必要とされる。
 当然、そんな事をして作られたコードは読みづらく、バグが発生しても(小学生程度の力じゃ)原因を突き止める事など不可能なくらいのひどいソースになった。
 そういう訳で、結局私はファミリーベーシックで大きなプログラムを書いた事はなかった。元々大きなプログラムの書けるシステムではなかったし、それに私の手元に環境が無かったので、当たり前と言えば当たり前なのだが。

 その後ファミリーベーシックも「V3」という新しいバージョンが発売され、フリーエリアも倍の4Kバイトになったが、それでも根本的なフリーエリアの狭さは解消されたとは言えず、あまりファミリーベーシックに熱中する人もいなくなった。
 恐らく多くの人は、ファミリーベーシックというものを、「頑張ればファミコンのソフト並の物が作れる」という淡い期待を抱いて買ったのではないかと思う。しかし現実には、主にそのフリーエリアの制限のために、ファミコンソフト並どころかちょっとしたミニゲームを作るのすら苦労するような代物であった。その点が非常に残念だった。
 とは言え、私にとってファミリーベーシックは、「非力な環境への挑戦」という事の楽しみを私に教えてくれたと言える。その意味で貴重だった。

(P.S.)
 ファミリーベーシックは開発環境であるから、当然プログラムを保存できないと困る。ここで採用されているのがバッテリーバックアップで、カセット内にある電池でメモリを保持する。
 このバッテリーバックアップを機能させるには、カセット本体についているスイッチをオンにしないといけない。普段は電池の消費を抑えるために、オフにしていたりする。そこで、いったんオフではじめたものの、プログラムを保存したくなったらドキドキものだ。カセットについているスイッチを入れなきゃいけないのだが、またご存知の通りROMカートリッジというのは少々端子を動かしただけで止まるもの。素晴らしくスリリングだ。で、大体失敗する(涙)。


前のMCLへ  次のMCLへ

戻る

TOM 2002