ゾンビがやってくる。TIC-80レトロゲームの作り方


PocketCHIPでPICO-8に出会ってから、すっかりレトロゲームファンになってしまいました。レトロといっても中身は最新式ですが、その削ぎ落とされた世界観は芸術性も高く、今流のCGメインのゲームとは一線を画しています。

PICO-8
https://www.lexaloffle.com/pico-8.php

「ゲームの要素とは何か?」よく議論されるテーマですが、どんなゲームでも物理的に捉えると中身は実にシンプルです。
コンピュータゲームは目や耳で仮想空間で起こっている現象を捉えて、それを解釈した上で戦略を練り、適切なタイミングにアナログ的なインフェースであるボタンやマウスでコンピュータに電気的信号の答えを返します。
この作業を時間軸に沿って繰り返しますが、そのゲームが2次元であっても3次元あっても、どれだけ複雑なゲームでも実は一つのウェーブの電気信号でしかなく、それをコンピュータが計算処理しているだけにすぎません。ゲームプログラムはそれを処理する長い1本の計算式なのです。

私の場合、そんなゲームで遊ぶことより、そのゲームをプログラムすることが楽しみで、いかに効率的な計算式を考え出して、ファンタジーな世界を表現するかにワクワクするのです。コンピュータゲームは計算式だけで作られた架空の世界ですが、その世界をゼロから作り出す作業はエキサイティングで楽しいものです。
今時のAIルーチンに丸投げするようなプログラムには何の魅力も感じません。


TIC-80はPICO-8のクローンで、同じLua言語でプログラムしますが、若干動作環境が違います。PICO-8は128*128のユニークなスクエア画面ですが、TIC-80は240*136の一般的な横長のアスペクトでフォントなど見やすくなっています。

パレットカラーはどちらも16色で、色の組み合わせはPICO-8のほうが艶やかで好きですが、TIC-80のパレットは簡単に変更ができるので問題はありません。そんなことで最近はPICO-8よりTIC-80をよく使っています。

もう一つ、PICO-8は有料ですがTIC-80は無料で利用できます。
ここが最大の利点です。w

TIC-80
https://tic.computer/


前置きが長くなりましたが、現在いくつかのゲームを並行的に作っていますが、そのゲームの1つが「Zombie RTS」です。


非常にチープな見た目が昭和っぽくて気に入っています。w
まだ未完成ですがゲームのルールは単純で、城を中心に村を作り、襲ってくるゾンビに対抗して殲滅することが目的です。


RTS(Real Time Strategy)として、まずセーフティタイム内で資源を集めて、その資源を活用して村を形成します。資源は木材、石材、鉄鋼、食料の4つの要素で、木材はそれぞれの作業小屋を作るのに必要で、石材はフェンスやタワーを作るために必要です。鉄鋼は武器に使われ、食料が無くなると生産や交戦能力が低下します。4つの資源をバランスよく集めることが重要になります。

交戦状態になると絶え間なく襲ってくるゾンビに対抗するタワーディフェンス的な要素が強くなっています。どの位置に城壁を築き、戦闘用のタワーをどこに配置するかも重要な要素です。

敵のゾンビは障害物を避けて城までの最短ルートを探して襲ってきます。城が大量のゾンビに襲われて落城すればゲームオーバーになります。


よくあるパターンのゲームですが、この手のゲームは各要素のバランスが重要です。
簡単に資源が集まり過ぎても面白くないし、敵が強すぎてもゲームになりません。
「勝つか負けるかは時の運」といった絶妙なバランスが面白味になります。

私的にはマリオのようタイミング命のボタン押しゲームや、忙しくリアルタイムに弾を打ち合うようなアドレナリン系高揚ゲームは苦手で、のんびり戦略系の眺めゲームが好きです。といってもRTSはリアルタイム性も求められます。ぼーっと眺めている時間とハラハラドキドキ感のベストマッチが必要なゲームです。


このゲームの構造は、事前に用意されたマップを読み込んで障害物や城の位置を把握します。そのデータから城までの最短ルートをダイクストラ法で計算します。その計算結果のマップを参照すればマップのどこからでも障害物を避けながら最短ルートで城まで進むことができます。各ゾンビは自分の位置から次に進むべき方向をそのマップから得て動いています。


敵のゾンビや交戦する弾の動きはパーティクル計算で処理しています。パーティクルは配列処理できるので計算式がシンプルになります。

割り込み処理としてキーボードやマウスからの信号を受け取ります。主な処理はアイテムの選択と配置になります。いくつかのタイマー割り込みでゾンビや弾を生成したりしています。

ある一定量のゾンビを耐え凌げば面クリアーになりますが、その部分はまだ未完成です。ゾンビが出現する墓を壊せばOKにしようかとも思っています。

ゲームマップはTIC-80の付属エディターで簡単に作れるので無限に遊べるはずです。
ちょっと複雑な将棋盤のようなゲームです。


ここでプログラムの解説するのは適切じゃないと思うので、完成後に公開するソースを読んでください。まだまだ完成には程遠いですが・・・




このブログの人気の投稿

空き缶スターリングエンジンの作り方

謎のエミュレータを入手「X6 Game Player」

ファミコンゲームの作り方「X6 Game Player」

USENの曲名を探す方法。この曲は何?

グリーンランドパドルを作る

ついに買っちゃいました。 YAMAHA RM1x

ウクレレ入門♪ 簡単コード表

自作ペダルボートのテスト結果

今すぐ無料でドローンが飛ばせる「Quadcopter FX Simulator」

目指せピコ太郎! レトロ・シンセと戯れる「Roland JX-305」