AWK製FPSゲームの「TERMMAZE3D」

TERMMAZE3D という端末上で動作するAWK製のFPSゲームを見つけたので遊んでみました．

mikkun/termmaze3d: Pseudo-3D first-person shooter written in AWK

まずは依存コマンドを導入します．

Requirements
gawk or awk (except mawk)
GNU coreutils or equivalent BSD command (dd, echo, sleep, stty)

Linux環境ではGNU Coreutils + GNU awk，*bsd環境ではdd, echo, sleep, stty + nawk あたりでしょうか．今回はDebian bullseye 環境なのでこんな感じで．GNU Coreutils, GNU awk とリポジトリをclone するためにgit を導入します．

$ sudo apt install coreutils gawk git

source をclone します．

$ git clone https://github.com/mikkun/termmaze3d (1)
$ cd termmaze3d
$ ./termmaze3d.awk (2)

TERMMAZE3Dをclone

実行

もし，実行時に真っ黒な画面になってしまう場合はawkが mawk に向いていると思うので次のページを参考にgawkに切り替えるか， $ gawk -f ./termmaze3d.awk のように gawk コマンドを直に叩くといいです．
端末サイズは80×22と比較的小さいのでフォントサイズを調整するといい感じになります．

Debian/Ubuntuでawkを切り替える – matoken’s meme

ゲームは毎回自動生成されるマップの中を歩き回ってタイムアップする前に宝物を5つ集めるとクリアです．赤い敵が出てきますが当たるとタイムが減っていきます． k keyで攻撃したり逃げましょう．

以下プレイ動画です．

(backup)

awkでできたゲームといえば以前 awkaster というものもありました．同作者のテトリスライクなAWKTCもAWK製です．興味のある方はこれらも遊んでみるといいかもしれません．

awk 製 3Dシューティングゲーム awkaster で遊んでみた – matoken’s meme

mikkun/AWKTC: AWKTC is Workable Klutzy Time-wasting Command

環境1

$ git log --oneline
16e844a (HEAD -> main, tag: v1.0.0, origin/main, origin/HEAD) :tada: Initial co
$ dpkg-query -W gawk coreutils git
coreutils 8.32-4+b1
gawk 1:5.1.0-1
git 1:2.30.2-1
$ lsb_release -dr
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
$ arch
x86_64

環境2

$ git log --oneline
16e844a (HEAD -> main, tag: v1.0.0, origin/main, origin/HEAD) :tada: Initial co
$ dpkg-query -W gawk coreutils git
coreutils 8.30-3
gawk 1:4.2.1+dfsg-1
git 1:2.20.1-2+deb10u3
$ lsb_release -dr
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
$ arch
armv7l