検索
連載
プチコンで始めるBASIC新世代育成“虎の穴”(3):

可能性は無限! コンソールだけで「ギャルゲー」もいける!? (2/3)

当時のBASIC世代たちは、「スプライト」も「BG」もない環境でどうやってグラフィカルなプログラムを書いていたのか。公式Webサイトでおなじみの4人組と一緒に、「プチコンmkII」によるBASICプログラミングを学ぶ。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

コンソールの可能性は無限?

 インテリ君の言うようにリアルタイム描画に関しては、ニンテンドーDSi/3DSレベルのハードウェア性能ならBGとスプライトの方が便利な場合が大半です。

 ですが、座標指定を基本にしたシンプルな構造のグラフィックス命令は、それだけとっつきやすいという利点もあります。スプライトやBGで良くも悪くも必要になる初期設定や枚数制限などをいちいち“考えること”が少ない、非常に直感的な命令だといっていいでしょう。スプライトともBGとも干渉しないので、ちょっとしたテストから“もう1つのBG面”代わりの使い方まで、応用範囲はなかなか広いものです。

 プチコンmkIIのグラフィック面は、256×192ピクセル(1画面分)4面の中から表示するスクリーンを選択する構造なので、面同士をつないでマップにしたり、非表示面のピクセル単位の色情報をフラグ管理に使ったり、といった“マニアな技術”の可能性も隠れています。

 また、数値計算との親和性が高く、無制限に重ね書きできるというのも他にはない魅力でしょう。例えば、こんな“いかにも”な図形も、単純なコードで簡単に記述できます。

これはスプライトやBGではなかなか再現できません
図4 これは「スプライト」や「BG」ではなかなか再現できません

 心得のある人なら、「フラクタル図形」を描いてみたくなってきたのでは?


ハカセ

とは言ってもまあ、『マンデルブロ集合』のプログラムを組むのは各人の裁量にまかせてと……。


ワンパク

ウオオーーーッ!


インテリ

ハカセ、それはさすがにプチコン公認マスコットキャラのコケンに関わるのでは?


ハカセ

ふん。ここから先はもう1つの山場なので、そのへんはサクサク片付けていくのじゃ。何しろ『コンソール面』を使った映像表現には、諸君はあまりなじみがないじゃろうて。


神崎

『コンソール面』というのは、要するにプチコンのCUIなテキスト表示全般のことだったよね。


ハカセ

さよう。『PRINT "HELLO WORLD"』と書けば、『HELLO WORLD』と返ってくる。おなじみのコマンドラインみたいなアレじゃな。プログラムとは、このコンソール面だけで完結し得るものと言っても過言ではなかろう!


ワンパク

ヤレヤレ、また極論が始まったゼ……。


ハカセ

確かに少し言い過ぎたが、例えば、有名な『Rogue(ローグ)』なんかはテキストだけで立派な面白いゲームとして成立しとるじゃろ。案外テキストだけでも何とかなるもんじゃよ。


インテリ

別に『Rogue』は、BASICで書かれていなかった気がしますが……。例えに説得力はありますね!


ハカセ(涙)

ま、まあ見てもらいたいのじゃが……。プチコンでは、この命令でコンソールの好きな位置にテキストを表示できるのじゃ。


    LOCATE x座標,y座標

ハカセ

『LOCATE 8,8』『PRINT "A"』で(x8、y8)の座標にテキスト『A』が表示されるのじゃ。極めてシンプルじゃろ。


神崎

『座標』……といっても、ドット単位じゃなく文字単位だよね。ニンテンドーDSi/3DSなら1画面につき32×24文字のマトリクス?


ワンパク

クソちっせえ! しかもこれ、最小でも1文字単位でしか動かせねえんだろ?


ハカセ

動かすというか、これも例によって『描いては消し、消しては描く』方式じゃな。さっき座標(x8、y8)に書いた『A』を上に動かすなら、こうじゃ。


    LOCATE 8,8
    PRINT" "
    LOCATE 8,7
    PRINT"A"

ハカセ

モノは考えようじゃよ。この超シンプルな命令の組み合わせだけで、画面の描画をほぼ全てコントロールできるということじゃぞ。それに、32×24文字といえば小さく聞こえるが、16×16ピクセルのキャラオブジェクトも画面に敷き詰めてしまえば16×12のマトリクスじゃろ。必要十分なサイズともいえるのじゃよ。


ワンパク

言い過ぎじゃねえかなあ……。


インテリ

当たり判定のサイズも移動単位も違うから、単純な比較はできないけど……。まあ、例え話としては理解できるかな。管理が簡単で描画も高速なのは事実だし、ハカセの言うメリットも分からないでもないよ。


ハカセ

実際、BASIC全盛期には、ホビー目的や雑誌掲載のショートプログラムでは『コンソール』を使うのが1つの定番スタイルじゃった。描画機能が発達してもなお、じゃ。高度なグラフィックスは、データ量も作業リソースも食ってしまうからのう。


神崎

なるほど。グラフィックスに気を使わない分、プログラミングに集中できるってこともあるのか。


ハカセ

貧弱になりがちな描画機能の“補助”という面もあったのか、当時のマシンは『キャラクターグラフィックス(図形記号)』も妙にゲームを作りやすい感じに充実していたものじゃ。プチコンでも自機からモンスターやアイテム、けい線にドットまで、いろいろと取りそろえておるぞ。


コンソールだけで作ったゲーム画面
図5 コンソールだけで作ったゲーム画面。実際に動作します

ワンパク

古めかしさはぬぐえねェが……。プログラムを組むのに手っ取り早そうではあるな。


インテリ

ジャンルにもよるとは思うけどね。例えば、凝ったマップでスクロールをしようとすると動くたびに全画面が書き換えになるから、あまり向いてないんじゃないかな。


ワンパク

それこそスプライトやBGでやればいいってコトだな。そういえば『ギャルゲー』なんかも明らかに無理だしな!


ハカセ

甘いぞワンパク! こんな事例もあるのじゃぞ。


コンソールだけで作ったギャルゲー画面(仮想)
図6 コンソールだけで作ったギャルゲー画面(仮想)

ワンパク

そ……、そうきたか。今でいう『AA(アスキーアート)』の発想か……?


ハカセ(涙)

コンソールの可能性は無限なのじゃよ! ちなみに、これは他の仕事で忙しいデザイナーが泣きながら急いで作ったモノじゃが、時間と手間を惜しまなければこれよりもはるかに質の高い絵も描けるのじゃ!


神崎

な、何だか本末転倒な気が……。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る