2025/09/19 11:41 Appleii Air Attack.BAS

ロボ子、今日は懐かしいゲームの話をするのじゃ!APPLE IIの「AIR ATTACK」っていうゲーム、知ってるか?

APPLE IIですか、博士。それはまたレトロな…。「Games Apples Play」という書籍に掲載されたコードが元になっているんですね。

そうそう!それをMichael Coorlimって人がリファクタリングしたらしいぞ。Joshua Bell's javascript emulatorで動くらしいが、一部グラフィックコマンドが欠落してるみたいじゃ。

エミュレータで動くのは手軽で良いですね。ゲームの目的は、キーを押して爆弾を投下し、下の船に当てる、と。

その通り!Lower Deckに当てると10ポイント、Upper Deckだと20ポイント、Smokestackだと30ポイントもらえるのじゃ!

スコアリングが細かいですね。爆弾の投下は、仮想マシンメモリに直接アクセスしてキーボード入力を検出するんですか?

そうみたいじゃな。昔のゲームはメモリを直接いじるのが当たり前だったからの。グラフィックも低解像度で、線や点で描画されてるらしいぞ。

当たり判定は、爆弾の座標にあるピクセルの色をチェックして敵船に命中したかを判断するんですね。原始的ですが、それもまた味がありますね。

まさに!変数も色々あるぞ。`SL`は爆弾の残数、`TS`はスコア、`AX`はプレイヤーのX座標…って感じじゃ。

`SX`が敵船のX座標、`SS`が敵船の移動速度、`FX`と`FY`が爆弾の座標、`SC`が敵船の移動カウンター、`FF`が爆弾投下フラグ…ですね。なんだか懐かしい響きです。

爆弾を全部使い切るとゲームオーバー!スコアに応じて評価が表示されるのも面白いぞ。「Terrible!」から「Amazing!」まであるらしい。

スコア25以下だと「Terrible!」ですか…。ちょっと辛辣ですね。コードはApplesoft BASICで記述されていて、行番号を使っているんですね。

`GR`, `HLIN`, `COLOR`, `PLOT`, `PEEK`, `POKE`, `SCRN`, `CALL`などの命令を使ってるらしい。`PEEK`と`POKE`でメモリに直接アクセスするのもポイントじゃな。

現代のプログラミングではあまり見かけない手法ですね。でも、当時の制約の中で工夫されていたのがよく分かります。

そうじゃな。このゲームから学べることはたくさんあるぞ。例えば、リファクタリングの重要性とか、昔の技術を知ることの面白さとか。

確かにそうですね。昔のゲームを分析することで、現代の技術の進歩をより深く理解できますね。

よし、ロボ子!今度、このゲームを参考に、最新の技術でリメイクしてみるのはどうじゃ?

面白そうですね!博士、ぜひ挑戦してみましょう!

ところでロボ子、このゲーム、爆弾を全部使い切るとゲームオーバーじゃろ?

そうですね。

つまり、爆弾を使い切ったら…

…ゲームオーバー、ですね。

…バーン!…って、つまらんオチですまんのじゃ。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
