可能性は無限! コンソールだけで「ギャルゲー」もいける!?:プチコンで始めるBASIC新世代育成“虎の穴”(3)(2/3 ページ)
当時のBASIC世代たちは、「スプライト」も「BG」もない環境でどうやってグラフィカルなプログラムを書いていたのか。公式Webサイトでおなじみの4人組と一緒に、「プチコンmkII」によるBASICプログラミングを学ぶ。
コンソールの可能性は無限?
インテリ君の言うようにリアルタイム描画に関しては、ニンテンドーDSi/3DSレベルのハードウェア性能ならBGとスプライトの方が便利な場合が大半です。
ですが、座標指定を基本にしたシンプルな構造のグラフィックス命令は、それだけとっつきやすいという利点もあります。スプライトやBGで良くも悪くも必要になる初期設定や枚数制限などをいちいち“考えること”が少ない、非常に直感的な命令だといっていいでしょう。スプライトともBGとも干渉しないので、ちょっとしたテストから“もう1つのBG面”代わりの使い方まで、応用範囲はなかなか広いものです。
プチコンmkIIのグラフィック面は、256×192ピクセル(1画面分)4面の中から表示するスクリーンを選択する構造なので、面同士をつないでマップにしたり、非表示面のピクセル単位の色情報をフラグ管理に使ったり、といった“マニアな技術”の可能性も隠れています。
また、数値計算との親和性が高く、無制限に重ね書きできるというのも他にはない魅力でしょう。例えば、こんな“いかにも”な図形も、単純なコードで簡単に記述できます。
心得のある人なら、「フラクタル図形」を描いてみたくなってきたのでは?
とは言ってもまあ、『マンデルブロ集合』のプログラムを組むのは各人の裁量にまかせてと……。
ウオオーーーッ!
ハカセ、それはさすがにプチコン公認マスコットキャラのコケンに関わるのでは?
ふん。ここから先はもう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つの定番スタイルじゃった。描画機能が発達してもなお、じゃ。高度なグラフィックスは、データ量も作業リソースも食ってしまうからのう。
なるほど。グラフィックスに気を使わない分、プログラミングに集中できるってこともあるのか。
貧弱になりがちな描画機能の“補助”という面もあったのか、当時のマシンは『キャラクターグラフィックス(図形記号)』も妙にゲームを作りやすい感じに充実していたものじゃ。プチコンでも自機からモンスターやアイテム、けい線にドットまで、いろいろと取りそろえておるぞ。
古めかしさはぬぐえねェが……。プログラムを組むのに手っ取り早そうではあるな。
ジャンルにもよるとは思うけどね。例えば、凝ったマップでスクロールをしようとすると動くたびに全画面が書き換えになるから、あまり向いてないんじゃないかな。
それこそスプライトやBGでやればいいってコトだな。そういえば『ギャルゲー』なんかも明らかに無理だしな!
甘いぞワンパク! こんな事例もあるのじゃぞ。
そ……、そうきたか。今でいう『AA(アスキーアート)』の発想か……?
コンソールの可能性は無限なのじゃよ! ちなみに、これは他の仕事で忙しいデザイナーが泣きながら急いで作ったモノじゃが、時間と手間を惜しまなければこれよりもはるかに質の高い絵も描けるのじゃ!
な、何だか本末転倒な気が……。
Copyright © ITmedia, Inc. All Rights Reserved.