OMA-TANK — Love2D first-person wireframe tank combat for Omarchy Linux
Find a file
2026-04-19 16:21:26 +01:00
audio Initial public release 2026-04-18 11:35:06 +01:00
data Initial public release 2026-04-18 11:35:06 +01:00
game Initial public release 2026-04-18 11:35:06 +01:00
rendering Initial public release 2026-04-18 11:35:06 +01:00
.gitignore Initial public release 2026-04-18 11:35:06 +01:00
conf.lua Initial public release 2026-04-18 11:35:06 +01:00
icon.svg Initial public release 2026-04-18 11:35:06 +01:00
install.sh Initial public release 2026-04-18 11:35:06 +01:00
main.lua Initial public release 2026-04-18 11:35:06 +01:00
README.md Embed gameplay video in README 2026-04-19 16:21:26 +01:00

OMA-TANK

A first-person wireframe tank combat game for Omarchy Linux, inspired by classic 1980 arcade vector tank games. Built with Love2D — pure Lua, software-rendered 3D line graphics, no polygons, no textures.

Vertex models are traced directly from the publicly-archived 1980 arcade ROM (vertex table at $388e, draw-command table at $2472, both documented by the 6502 disassembly preservation project), so silhouettes, proportions, and draw orders match the cabinet.

OMA-TANK gameplay

Install

curl -sL https://git.no-signal.uk/nosignal/oma-tank/raw/branch/master/install.sh | bash

Uninstall

oma-tank-uninstall

Controls

Two control schemes, switchable on the title screen with TAB.

Modern simplified (default)

Input Action
Up / W Drive forward
Down / S Reverse
Left / A Rotate left
Right / D Rotate right
Space Fire

Classic dual-track

Input Action
W / S Left track forward / back
I / K Right track forward / back
Space Fire

Both tracks forward = drive straight. Opposing = pivot in place. A single track alone gives a 1.5× speed bonus.

Gamepad

Input Action
Left stick Y Left track
Right stick Y Right track
A / right trigger Fire
Start Start game
Y (title) Toggle control mode

Gameplay

  • First-person view from inside a tank on an open plain, studded with indestructible cubes, pyramids, and slabs
  • Only one hostile is on the field at a time — destroy it and another spawns after a short beat
  • The saucer is a separate bonus target: doesn't attack, doesn't show on radar, flies at barrel height
  • One hit kills you — the screen cracks and your tank explodes into tumbling debris
  • You start with 3 tanks. Bonus tank at 15,000, another at 100,000, every 100,000 thereafter
  • One shot on the playfield at a time: fire again the moment your shell dies

Enemies

Target Points
Slow tank 1,000
Guided missile 2,000
Super tank 3,000
Saucer (UFO) 5,000

Difficulty progression

  • Below 10,000 pts — slow tanks only
  • 10,000+ — guided missiles enter the rotation (1-in-3 chance per spawn)
  • After 6 missiles have launched — super tanks replace slow tanks
  • From 2,000 pts — saucer starts drifting across the field at random 017 s intervals

Evasion penalty

Avoid a tank for 4864 seconds without killing it and the game silently replaces it with a missile — you can't hide behind cover forever.

Shooting over cover

Low slabs (halfPrism) can be shot over. Tall blocks and pyramids cannot. Use low slabs to close distance while blocked from enemy fire, then pop out to shoot.

HUD

  • Top-left: lives, and status text — ENEMY IN RANGE, ENEMY TO LEFT / RIGHT / REAR, or MOTION BLOCKED BY OBJECT
  • Top-centre: circular radar with sweep and fading blips. Shows only the active tank/missile — not the saucer, not obstacles
  • Top-right: score and high score (9-digit arcade format)
  • Screen centre: two-bracket reticle. Curls flip from vertical to diagonal when an enemy is lined up; the whole reticle blinks while your shell is in flight (fire again the moment it stops)

Omarchy Integration

  • Theme colours auto-detected from your active Omarchy Ghostty theme
  • System font detected from your Waybar config
  • Full-screen via SUPER+F (Hyprland compositor)

Requirements

  • Love2D (sudo pacman -S love)
  • Omarchy Linux (or any Arch-based distro)

Acknowledgements

Inspired by the 1980 Atari arcade cabinet. Model geometry extracted from the publicly-archived ROM via the 6502 disassembly preservation project. No arcade assets, logos, or trademarked names are reproduced.

License

MIT