可能性は無限! コンソールだけで「ギャルゲー」もいける!?プチコンで始めるBASIC新世代育成“虎の穴”(3)(1/3 ページ)

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

» 2012年07月04日 09時30分 公開
[スマイルブーム マイコン部,@IT MONOist]
※本記事はアフィリエイトプログラムによる収益を得ています

BASIC世代の武器はタフさとユーモア!?

 前回は、80年代の2Dゲーム全盛期に大活躍した「スプライト」と「BG」、2つのグラフィックスモードについて学びました。マイコン世代のBASICではなかなか採用されず、フル機能ともなれば高根の花でした……。

 では、当時、スプライトもBGもない環境でどうやってグラフィカルなリアルタイムのプログラムを書いていたのでしょうか?

 BASICに夢中だった彼らの武器は、工夫とセンスと不屈の努力、いささかの諦念、そして、苦境を楽しむタフネスとユーモアでした。


ハカセ

まあ、結局のところ制限の多いBASICじゃなく、マシンのキャパシティーを最大限発揮できる『機械語』で書いたりしたんじゃがな。テヘッ。


ワンパク

オイオイ! 全てを台無しにする最悪のイントロだな!!


ハカセ

無論、機械語はハードルが高いので、初心者はBASICを使ったものじゃよ。初心者向け……いいことではないか。思えば前回、『スプライト』だの『BG』だの高級な機能の話をしたが……(ゴゴゴゴゴ……)。


神崎

ん?


ハカセ(涙)

あ、あんなもんはゼイタクじゃろうがー!


インテリ

……。


ハカセ(涙)

コンソールの可能性は無限なのじゃ! 譲っても『グラフィックス命令』で何とかするところまでじゃ!


ワンパク

う、ウゼエ……。マジでウゼエ……。


インテリ

世代的にスプライトやBGに恵まれなかったハカセの良くない一面を刺激してしまったようだね。もっとも、『グラフィックス命令』と聞いても、正直ボクらにはピンとこないんだけど……。


プチコンmkIIのスクリーン構造 図1 プチコンmkIIのスクリーン構造

ハカセ

そうじゃな。プチコンの仕様では、図1の『グラフィック面』レイヤーで使う機能全般が『グラフィックス命令』だと思ってくれい。そして、その特徴は“座標を使ったビットマップ描画”にあるといえるじゃろう。例えば、プチコンではこんな命令があるぞ。


    GLINE 始点x, 始点y, 終点x, 終点y [ ,色 ]

ハカセ

引数だらけじゃが、大体の雰囲気は分かるじゃろ? 『GLINE 0,0,256,192,15』と書けば、画面の(x0、y0)から(x256、y192)に15番のカラーで線を引くことになるのじゃ。


いろいろなグラフィックス命令の例 図2 いろいろな「グラフィックス命令」の例

ワンパク

フン! どれもBASICらしくストレートな命令だぜ。しかし……、この命令の組み合わせでゲームやらのグラフィックスを描くのはツラくねェか?


ハカセ

じゃが昔のアドベンチャーゲームなんかは、よくこんな方法で絵を描いていたものじゃよ。


ポイントになる点と点を線で結んで絵にする 図3 ポイントになる点と点を線で結んで絵にする

ワンパク

い、いろんな意味で時代を感じるゼ……。


インテリ

確かに、この点情報を増やせば増やすほど細かいグラフィックスにはなるよね。座標情報の集合で絵にするという点で、ベクターグラフィックスの考えに似てると言えなくもないのかも……。イヤ、そうでもないか。


ハカセ

究極的には、巨大なドット絵を描くように1ピクセルずつ色情報を持たせて、そのデータ圧縮までを自家製でやるのじゃが。


神崎

な、なるほど。簡単なところから、すごく大変そうなところまでいろいろなんだね……。


ワンパク

それにしてもコレ、リアルタイムでは動かしづらいんじゃねェの?


ハカセ

ウーム。基本的には『描いては消し、消しては描く』ことになるのう。そのために矩形範囲の『コピー&ペースト命令(プチコンでは“GCOPY”命令)』を持つマシンもあったほどじゃ。“高速化の戦い”になるので腕の見せどころじゃし、プチコンの処理速度が威力を発揮する場面でもあるのじゃが。まあ……、スプライトで簡単にできることを無理にグラフィックス命令で再現せんでも……という感はあるかのう。


インテリ

……さっきから疑問だったんですが、グラフィックス命令を使わなくてもBGとスプライトで大抵の描画処理はカバーできてしまうのでは……?


ハカセ(涙)

!!!!


       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.