を目指してまた自作ゲームライブラリを作っている。
ゲーム制作体力が無いならゲーム作りをやめればいいのだが、ウン十年とゲームを作り続けているゲーム制作ジャンキーはそんなことでは立ち止まれないので、より短時間で体力が尽きる前にゲームを完成させるためのライブラリを再発明し、今日もゲーム制作RTAを走るのだ。1時間くらいで完走できるのが理想。
crisp-game-lib
は短時間で手軽にブラウザゲームを作るためのJavaScriptライブラリだ。2014年に50個のミニゲームを作ったが、そのときにはそれらゲームを作るためHaxeライブラリmglとCoffeeScriptライブラリmgl.coffeを合わせて作った。その後も懲りずにミニゲームとライブラリ作りを続けた経験を活かし、クラシックでアーケードライクなミニゲームを作るために必要最小限な機能を備えたライブラリを目指して、crisp-game-lib
は作られている。
crisp-game-lib
を使ったゲームもすでに40個以上作っていて、十分にドッグフーディングされていると思う。ゲームのtitle
、description
、1秒間に60回呼びだされるupdate
関数を単一のJavaScriptファイルとして書くだけで、PCとモバイルで動作するブラウザゲームが作れる(下の画像をクリックすると遊べます)。
それら描画機能と一体化した衝突判定機能、
マウス・タッチパネル両対応の入力取得機能、鳴らしたい音名を選択するだけの効果音機能と、ミニゲームに必要な機能を一通り用意した。
また、オプションでisPlayingBgm
をtrue
にするだけで自動生成されるBGM、isReplayEnabled
をtrue
にするだけで有効になるリプレイ機能、theme
を設定するだけでレトロなCRT風やドット絵風などに見た目を変化させる機能、characters
配列で簡単に定義できるドット絵など、ゲームをジューシーにするための機能も備えている。生成された音が気に入らなかったらseed
に適当な整数を与えると音が変わるので、気に入った音が出るまで乱数シードガチャを引き続けて欲しい。
TypeScriptでの型定義も備えているので、VSCode上でインテリセンスの恩恵を十分に受けることができるのも、短時間でのコーディングに役立つと思う。
Super HexagonやVVVVVVの開発者として知られるTerry Cavanaghさんが書いてくれたcrisp-game-libに関する記事もあるので、合わせて読んでもらいたい。
ゲーム制作体力と合わせてゲーム遊ぶ体力も落ちてきているとなると、サクッと遊べるゲームをサクッと作れる環境が欲しくなる。なのでこんな感じのゲームライブラリ車輪再発明を繰り返している気がする。本来この辺の役割を担うのは、PICO-8に代表されるファンタジーコンソールやScratch、HSPなどで、これらのほうがより高機能なのは間違いない。だが、より機能を削ぎ落とし、自分に合った形に自作ゲームライブラリを作るのも、それはそれで楽しいので良しとしたい。皆もゲームライブラリ自作沼に肩まで浸かって温まりましょう。