週末は台風でした。

 

アウトドアの遊びは自然環境に大き依存していて、そのカオス的な予測不可能な変化が面白味の原点でもあります。
ただ、人生の時間には限りがあって動けるチャンスはそれほど多くはありません。
どれだけラッキーな幸運に恵まれるか?日頃の行いの成果でしょうか?

 

一方インドア系はそんな外的阻害要素を一切排除して、安全に区切られた空間内で妄想的な遊びを行います。場合によってはその空間すら必要とせず、脳内だけで事を済ましてしまう場合もありますが、感覚的な刺激は少なく人生の達成感はアウトドアに遠く及ばないものです。

 

そんな日々をだらだら過ごす幸せは人生の大きな喜びだと思いますが、性分でしょうか?じっとしていられないのです。常2つ、3つのプロジェクトが稼働していて、現在はウインドサーフィン、カヤック、ミニボート、チャリンコ、ゲーム、プログラム、音楽作成・・・2つ、3つじゃないですね。

 

今日はその中のゲームとプログラムの話です。
苦手な人はここでリターンしてください。

 

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

 

 

「ゲームの要素とは何か?」よく議論されるテーマですが、どんなゲームでも物理的に捉えると中身は実にシンプルです。
コンピュータゲームは目や耳で仮想空間で起こっている現象を捉えて、それを解釈した上で戦略を練り、適切なタイミングにアナログ的なインフェースであるボタンやマウスでコンピュータに電気的信号の答えを返します。
この作業を時間軸に沿って繰り返しますが、そのゲームが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」です。

 

イメージ 1

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


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

 

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

 

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

 

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

 

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

 

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

 

イメージ 3

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

 

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

 

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

 

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

 

イメージ 4

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

 

イメージ 5

台風で動けず、暇つぶしの長文にお付き合いいただきまして有難うございました。m(_ _)m
どちら様もご無事で!

 

 

暇やー・・・