PICO-8で遊んでみる!その2

先日からPICO-8で遊んでいる!


世界中のユーザーが作ったゲームで遊ぶのも楽しいけれど、PICO-8の魅力はなんといっても「なんとなく自分でも作れるカモ?」と感じさせる規模感があると思う。

 

128x128ドット16色の画面構成、スプライト128枚、重ね合わせ出来るBGとメモリマッピングされたVRAMなどに加えて、このスペックを駆動しても有り余るCPUパワー!

8bitマシンが大好きな人にはホントたまらない構成だと思う。

まぁCPUパワーは使うマシンによって変わるけれど!(^^;;

 

ちょっとムリな画面描き換えをしても平然と動いてしまうのが楽しすぎる!

編集環境を改善!

前回のブログで「Emacsで編集できるのが便利すぎる!」と書いた。

これはこれで便利なのだが…慣れないLua言語を扱うのにはもう少しだけ工夫をしたい。

作っている過程であれこれ試そうとすると、いくつかの便利な機能が欲しくなる。

 

 コメントに日本語を使いたい

 条件によってプログラムを変えたい

 マクロを使いたい

 

これらを整えるために、ツールも含めて環境を整備してみる事にした!

 

まずソースコードは書きやすいフォーマットで、かつコメントはふんだんに書いておきたい。

EmacsLuaメジャーモードで編集すればフォーマットは任せておける。

もう少しLuaに慣れたらコメント少なめでも良いかなーと思うけれど、慣れてない状態でコメントがないとどーにもならない(^^;;

 

これをcpp(プリプロセッサ)に通し、PICO-8の都合の良い形式に変換する。

こんな感じのテキストになるので、PICO-8本体で見た時にはコメントが一切無い。

なんかの都合でソースを公開する事があったら、元ファイルも同時に出さないと、解析がほぼ出来ない事になっちゃうね…汗

 

この変換作業で、PICO-8上で編集したドット絵やマップ、サウンドとマージしている。

PICO-8に読み込むとこんな感じ。

インデントもコメントもない殺風景なソースだ!(^^;;

 

流れ的にはMacEmacsで編集→コマンドラインでmake→PICO-8上でLOAD、RUN。

makeする手順が増えたけれど、自分が書くソースが自由になるメリットは計り知れない!

 

動くものを作ってみる!

PICO-8の開発環境にも慣れたいし、Lua言語も思い出したい。

簡単なゲームっぽいプログラムを作ってみようと思った。

過去に何度か作っているゲームを作ることにした!

多分、途中までww

 

1980年代にハドソンソフトから発売していたキャノンボールというゲームを作ってみる。

www.youtube.com

YouTubeのリンクを貼っておくので、画面イメージとかルールとか参考にしてください。

 

まずは画面に丸を描いてみる。

丸形のグラフィック(スプライト)を用意しようとも思ったが、プログラマさんなら分かってくれると思うけど、私はきれいな丸をドットで描けない(^^;;;

 

PICO-8にCIRCFILLという中塗りの円を描く命令がある。これを使って描画したら、遅すぎてゲームにならないかな??…うむむ、速度はどうだろう??と思ってやってみたら、とても速くて十分使える事が分かった!

色を黄色にして、複数のボールを表示してみる。

 

プレイヤーはスプライトで表示しつつ、アニメーションも入れる。

こんな感じにちょっとずつ作ってみる。

特にLuaでどう書くのが効率が良いのか…がさっぱり分からないので、手探り状態が続く…。

純粋にLua言語として覚えた方が良いのは分かるけど、とりあえず動かしてみたい気持ちが強くて、効率よりは動かす事優先だ(^^;;

 

キャラクタはYouTubeの動画を参考してドットを打った!

多分、このゲームを作る流れで、一番時間がかかった作業かも知れない!(T-T)

 

ここまで作ったところで飽きてしまった…汗

というか、この先はシーケンスを組み上げる事が大半で、新しい事を覚える必要がなさそうなのだ。とりあえず実験する事は出来ただろう…と自己解釈して、ここで終わり(^^;;

 

PICO-8を使ってみて

実際にPICO-8でプログラムを組んでみて思ったが、Mac上で動かしている分にはCPUパワー足りないと感じる事が一度も無かった。

 

表示(_drawファンクション)は全画面クリアしてから描き直してるのだが、まだまだ速度は足りてる感じ。Macを基準で動かしてしまうと、Miyoo miniで動かしたらどーなるのか…とか思うけど、そこは動かすの優先で後回しにしてる(^^;;

 

少し気にしていたプログラムサイズの制限(8192ワード)だけど、この中途半端なプログラムで148行、854/8192と余裕ありまくりだ!

 

さて、PICO-8にも少し慣れてきたので、もう1つだけ何か作ってみようと思う!

それはMacでもMiyoo miniでも動かしてみたいと思う!

うまくいくかなー(^^)

 

ではまた次回!(^-^)ノ