01 Play Now

Warehouse IT is a browser game. It started as a terminal roguelike, but the web client is where it lives now — and where all development effort goes. No downloads, no setup, no excuses.

Play Now

Chrome or Firefox recommended. No account needed — just pick a name.

Why the shift?

Local GPU
Your Machine
Better Visuals
Particles + VFX
Smoother Play
60fps Canvas
Audio
52 Tracks + SFX
Mobile Ready
Touch Controls
No Install
Any Browser

What You Get

The full Warehouse IT experience, rendered on an HTML5 Canvas with visuals that go well beyond what you'd expect from a browser game:

Core Features
  • Full game — warehouse, jungle, offices, tunnels, bosses, tickets, loot
  • Smooth movement — free pixel movement with wall-sliding
  • Mouse aiming — left/right click for gadgets, free aim
  • Drag & drop inventory — paperdoll equip, dual-window trading
  • Ticket system — GPS breadcrumbs guide you across zones
  • Chat & party — in-browser chat, party system, multiplayer
Enhanced Visuals
  • 3D cube walls — extruded walls with depth sorting and transparency
  • Pixel art sprites — 40+ enemy types, bosses, NPCs, items
  • Particle VFX — real fire, lightning, frost, plasma, acid
  • Dynamic lighting — per-tile light map with gadget glow
  • 52-track soundtrack — per-biome music with crossfades
  • Mobile touch controls — dual joysticks, works on phones

VFX Showcase

The web client takes advantage of canvas rendering to deliver visual effects that make you forget you're playing in a browser:

Real Fire

Particle-based flames with heat gradients, ember trails, and smoke wisps. Flamethrower cone spread rendered with hundreds of particles.

Lightning

Recursive midpoint-displacement arcs with branching, glowing core, and outer halo effects for Arc Welder and EMP blasts.

Cryo & Frost

Blue-to-white frost fill with ice crystal particles. Diamond-shaped shards that shimmer and fade.

Gravity Wells

Dark vortex centers with swirling purple rings and inward-pulling particle streams.

Plasma & Acid

Glowing projectile trails, splash effects, and corroding particle clouds with additive blending.

3D Gadget Auras

Pseudo-3D orbital energy rings around your character when firing gadgets. 9 unique styles that layer when dual-wielding.

First Time?
When prompted for a name, choose carefully — it's saved permanently. Names must be 3-16 characters, letters/numbers/underscores only. Then go find the vendor, grab some gear, and try not to look at the printers.

The web client renders everything on your computer using your GPU. The server only sends lightweight game state as JSON. This means we can support far more simultaneous players than the old terminal architecture ever could.

AI Testing Bots

We've programmed AI bots to do automated test runs across the entire game — exploring tunnels, fighting enemies, buying gear, testing drops. This helps us dial in economy balance, drop rates, and overall game feel while accelerating rapid development. When you see suspiciously perfect play patterns on the scoreboard, that's probably a bot.

02 What's Different

Under the hood it's a single-process Node.js server with the same world, mechanics, and save files for everyone. The web client is the face on top of that engine.

Enhanced Visuals

The web client has evolved well beyond colored ASCII. Full pixel art sprites, 3D extruded walls, a particle VFX engine, and drawn tile rendering make this look less like a terminal game and more like something that escaped from a server room with ambitions.

Pixel Art SpritesFull spritesheets for player, 40+ enemy types, NPCs, bosses, items, and projectiles — no more ASCII entities
3D Cube WallsExtruded cube-style walls with south face, north face, corner pieces, and transparent top faces for depth
Canvas Drawn TilesAll biome walls and floors rendered with fillRect using per-biome color palettes — no fillText
Square Tiles10×10 square tile grid (upgraded from the original 10×20 rectangles) for proper proportions
Raytraced Light BounceLight hitting wall faces bounces onto adjacent floor tiles as colored glow puddles
Particle VFXReal fire with embers, recursive lightning, frost crystals, plasma trails, gravity vortex
Dynamic LightingLight sources cast glow that blends with biome color grading
Smooth MovementClient-authoritative free pixel movement at 25 tiles/sec — no tile-snapping, full wall-slide collision
Persistent Fog of WarFour-zone visibility with LOS blocking, smooth color blending, and persistent discovery
3D Gadget AurasPseudo-3D orbital rings around the player when firing gadgets — 9 unique styles
Death CinematicsVisual death sequence with particle effects
Boss TelegraphsGround cracks and screen shake for incoming boss attacks

Mouse Aiming

Left click fires Gadget 1, right click fires Gadget 2. Aim with your mouse cursor for directional gadgets. Keyboard controls still work exactly the same.

Settings Panel

The web client has a settings panel where you can tune visual quality to match your hardware:

VFX QualityOverall particle quality and count (Low / Medium / High / Ultra)
ParticlesToggle particle effects on/off
Screen EffectsPost-processing and color grading
Screen ShakeCamera shake on impacts and explosions
Dynamic LightingReal-time light sources and glow
Damage NumbersFloating damage values on hits
GPU ParticlesHardware-accelerated particle rendering
3D WallsExtruded 3D wall rendering with perspective (enabled by default)
Light Bounce (RT)Raytraced light bouncing off 3D walls onto floors
Particle BounceParticles reflect off walls with sparks instead of dying
BloomGlow bleed from bright light sources
CRT FilterRetro scanline overlay for terminal nostalgia
ShadowsWall shadow casting
Color GradingPer-biome color tinting and atmosphere
ParallaxMulti-layer parallax depth effect
SoundToggle all audio on/off (quick button in top-right HUD)
MusicToggle MP3 soundtrack on/off (separate button in top-right HUD)
Music VolumeIndependent volume slider for soundtrack
Mono ModeDownmix stereo to mono (both speakers play the same audio)

03 Pixel Art Sprites

Every entity in the game has been upgraded from ASCII characters to full pixel art spritesheets. Your @ is now an actual character. That M that used to kill you is now a visually distinct monster that kills you with much more flair.

Player Sprite

896×512 spritesheet with 8-direction walk, attack, and hit animations. The sprite faces the direction you're moving using your actual velocity, not just the last key pressed. Walk animates at 125ms/frame, sprint at 75ms/frame. Split HP/stamina arcs render around the sprite — 100° left for HP, 100° right for stamina.

Enemy & Boss Sprites

21 unique spritesheets cover all 40+ enemy types through color-tint variants. Every warehouse enemy, tunnel creature, biome-specific monster, and boss has a distinct visual identity. Bosses render at 1.5x scale so you can see your impending doom from further away. Enemies smoothly interpolate between tiles at 4 tiles/sec instead of teleporting from cell to cell.

NPC & Vendor Sprites

Vendor NPCs have 8-directional breathing-idle sprites and will turn to face you when you open their shop. After 20 seconds of being ignored, they turn back south — probably to judge the next customer. The prestige vendor has a purple radial glow. Regular vendors get white.

Item Icons & Projectiles

128 Item IconsAI-generated pixel art icons for every item in the game — visible in inventory grid and as ground drops
5 Projectile TypesSpam, Corrupt, BSOD, and Malware as static PNG sprites rotated by flight direction — Firewall as procedural animated fire
33 Environment SpritesMushrooms, crystals, trees, tentacles, server racks, tesla coils, and more — all drawn on canvas via drawFn

Depth & Anchoring

All sprites use a feet anchoring system — the visual feet (row 50 of each 64px frame) anchor at the bottom of the tile. This means sprites render with proper depth sorting: your character walks in front of walls to the south and behind walls to the north. The days of floating ASCII characters are over, though we do sometimes miss the simplicity of a well-placed @.

Bloom Entity Masking

The bloom and heat haze post-processing effects used to create ghost sprite duplicates — a fun bug if you enjoy seeing double. An entity mask system now tracks all sprite draw rects and blacks them out from the bloom source, so glow effects enhance the environment without cloning your character.

04 VFX Engine

The web client's particle VFX engine renders real-time visual effects on an HTML5 Canvas layer composited on top of the monospace game grid. Every gadget, every boss attack, every environmental effect has a unique particle system.

Particle Pool

1,200 pre-allocated particle objects recycled via object pool. No garbage collection pressure during gameplay. Each particle has position, velocity, lifetime, color, size, and opacity.

Additive Blending

Glow effects use additive canvas blending — overlapping particles brighten instead of occlude, creating convincing fire glow, lightning flashes, and energy effects.

Real Fire

Heat gradient particles with ember trails rising from the flame source and smoke sub-emitters that fade to gray. Temperature drives color from white-hot core to orange to deep red.

Recursive Lightning

Lightning bolts generated via midpoint displacement algorithm with recursive branching. Each branch spawns sub-branches with decreasing intensity, wrapped in a bright glow pass.

Cryo & Frost

Frost crystal particles with angular velocity and faceted shapes. Cryo nova expands as a ring of ice shards that shatter on impact.

Gravity Vortex

Spiral particle trajectories pulled toward the vortex center with increasing speed. Debris particles orbit and eventually collapse inward.

Plasma & Acid

Plasma trails leave lingering energy wisps. Acid clouds use randomized drift patterns with corrosive green particle sprays and drip effects.

Boss Attacks

Boss telegraph cracks split the ground with fracture-line particles. Screen shake on impact scales with damage. Cone attacks sweep particles across the telegraph zone.

Adaptive Performance

The VFX engine auto-scales particle count and quality based on your frame rate. If FPS drops below target, particle LOD (level of detail) reduces automatically — fewer particles, shorter lifetimes, simpler physics — to maintain smooth gameplay. You can also manually tune effects via the settings panel.

Biome Color Grading

Each tunnel biome applies a unique color tint to the entire screen. Magma biomes cast a warm red-orange glow. Ice biomes shift toward cool blue. Datastream biomes pulse with cyan-green. The grading is subtle but gives each biome a distinct atmosphere beyond just the tile colors.

05 Information for Nerds

Technical breakdown of how the web client was built, for those who want to know what's happening under the hood.

Architecture

HTML5 Canvas renderer with square 10×10 tiles, pixel art sprites, 3D extruded cube walls, and a particle VFX overlay composited on top. Walls and floors use fillRect with per-biome color palettes (no fillText for tiles). Sprites render with offscreen buffer compositing for tint effects. VFX particles draw with additive blending for glow effects.

Connection

The browser connects via WebSocket at /ws. Nginx reverse-proxies this to port 7778 on the game server. The server uses a WebSocket adapter pattern — incoming WS connections get wrapped in a TCP-like socket interface (write(), on(), destroy()) so the existing game logic doesn't need any changes. The same authoritative server handles both terminal and web players identically.

Zero server changes for web-only features
All VFX, color grading, overlays, smooth movement, and visual effects are purely client-side. The server sends JSON state; the client does all the heavy lifting.

State Synchronization

The server pushes game state as newline-delimited JSON with aggressive bandwidth optimization. Map data uses versioning (only sent on change). Log messages use delta delivery. Enemies and items use entity delta compression — only changed entities are included, with removal arrays for entities leaving view. Spatial filtering culls entities beyond 33 tiles. Static data (vendors, buildings, safe zone) is cached and only re-sent on zone change. A fast position channel sends ~20-byte position updates immediately after movement, bypassing the full ~5KB state snapshot entirely. Together these optimizations cut bandwidth by roughly 90%.

Rendering Pipeline

The renderer draws a square tile grid where walls and floors are colored rectangles and entities are pixel art sprites. Everything composites in strict priority order (combat VFX > status effects > trails > telegraphs > health rings > ambient > biome coloring > base tiles). 3D cube walls render in a multi-pass system with north face occlusion replayed after sprites for proper depth. Transparent second-cube top faces render post-entity for the 2.5D depth illusion. The camera follows the player's smooth position with zoom support (0.5x–3.0x).

Smooth Movement

The web client uses client-authoritative free pixel movement at 25 tiles/sec — no tile-snapping whatsoever. The client moves the player in the input direction, checks per-axis wall-slide collision independently (so you glide along walls instead of stopping dead), and sends syncPos updates to the server every 40ms for validation. The server confirms walkability and distance but does not correct the client's position — the client is the authority. Diagonal movement is normalized to the same speed as cardinal. Sprint doubles the visual speed to match server 2-tile moves. Teleports over 8 tiles snap instantly.

Input System

WASD for movement, mouse for gadget aiming (left click = gadget 1, right click = gadget 2), keyboard for overlays. The input module tracks which overlay is currently open (inventory, shop, chat, look mode, party, tickets) and blocks conflicting keys. This prevents movement while typing in chat or accidentally firing gadgets while browsing the shop.

Adaptive Framerate

Active
25 fps
Idle 10s
3 fps
Idle 30s
1 fps
On Input
Instant Snap

The client drops framerate after periods of no input to save battery and CPU. Any keypress or mouse movement instantly snaps back to full framerate.

File Structure

FileLinesPurpose
game.js~2,600Main loop, WebSocket, state transform, syncPos, audio hooks, movement
renderer.js~9,100Canvas renderer, sprites, 3D cube walls, drawn tiles, fog of war, lighting
vfx.js~6,600Particle VFX engine, gadget auras, bloom mask, 30+ effect types
audio.js~1,800MP3 music + procedural SFX + MP3 gadget SFX + spatial audio
input.js~515Keyboard, mouse, and touch input with overlay mode tracking
hud.js~5,000Floating panels, grid inventory, vendor, chat, party, tickets, tutorial
constants.js~140Biome colors, enemy characters, shared data
palette.js~60xterm-256 color to RGB lookup table

VFX Engine Internals

The VFX engine (vfx.js) manages a pre-allocated pool of 1,200 particle objects. Particles are recycled — never created or destroyed during gameplay — eliminating garbage collection pauses. Each particle carries position, velocity, acceleration, lifetime, color, size, and opacity. Per-frame physics updates run before the draw pass. Fire uses heat gradients with ember and smoke sub-emitters. Lightning uses recursive midpoint displacement. Each of the 14+ gadget and environmental effect types has its own particle system configuration.

Rate Limiting & Performance

Server-side Rate Limiting

The server enforces a cap of 20 messages per 100ms per connection, preventing input flooding from affecting game state or other players.

Batched Broadcasts

State broadcasts use a 33ms flush interval (~30 updates/sec) with spatial filtering and entity delta compression. Multiple state changes within a single tick are coalesced into one broadcast.

No frameworks. No build tools. No dependencies.
The entire web client is built with vanilla JavaScript — no React, no webpack, no transpilation step. The only dependency is the ws npm package on the server side for WebSocket support. Every file loads directly in the browser as-is.

06 3D Cube Walls

Every wall in the game renders as an extruded 3D cube — south face, north face, and corner pieces, all contained within the wall tile. A transparent top face hovers over edge walls for a 2.5D depth illusion. Walls work in all zones including the outdoor jungle. It's a lot of visual infrastructure for what is fundamentally a rectangle, but we respect rectangles here.

How It Works

After the base tile grid is drawn, a multi-pass 3D wall renderer runs across all wall tiles within 28 tiles of the player:

South FaceBottom 84% of the wall tile with 2-band gradient shading (near) or flat fill (distant LOD). This is the main visible face of each cube.
North FaceTop 16% — fills the space above the south face. Slightly lighter than south for differentiation.
Corner PiecesAligned with the south face inside the tile for clean intersections at wall junctions.
Transparent Top Face50% alpha top rendered one tile ABOVE every edge wall, post-entity. Creates the illusion of wall height — you can see sprites through it.
Light TintingNearby light sources (gadgets, fire, explosions) tint wall faces toward the light color. Fire glow on tunnel walls is unreasonably satisfying.
Light Bounce (RT)Lit wall faces cast colored glow puddles onto adjacent floor tiles. Secondary bounce extends 2 tiles out with diminishing intensity.

Depth Sorting

Sprites render with proper depth relative to 3D walls. Walk south and your character appears in front of the wall. Walk north and the wall's north face occlusion pass replays over your head — but only for walls below your position, so it never clips your head when approaching from the south. Interior walls (surrounded by other walls) skip the transparent top face entirely, which is both correct and a significant performance win in dense areas like warehouse rack rooms.

Performance LOD

Walls beyond 17 tiles use a simplified flat-fill renderer instead of the full 2-band gradient with edge highlights and specular. Light source lookups are also skipped at distance. The result: 3D walls render across the full 28-tile fog of war range without melting your GPU. On Ultra quality, all LOD bypasses are disabled — every wall gets the full treatment, because you asked for it.

Raytraced Light Bounce

When a light source (flamethrower, arc welder, explosion) illuminates a 3D wall face, the light bounces back and illuminates nearby floor tiles. The bounce color matches the light source — fire casts warm orange puddles, cryo casts cool blue. A secondary bounce extends the effect 2 tiles further at reduced intensity. This creates realistic indirect illumination that makes tunnels feel like they have actual atmosphere instead of just attitude.

Particle Wall Reflections

VFX particles that hit walls no longer just disappear. With Particle Bounce enabled, fast-moving particles reflect off wall surfaces with 45-55% energy loss and spawn bright spark sub-particles on impact. Flamethrower embers bounce off corridor walls, lightning sparks scatter from surfaces, and explosions send debris ricocheting through rooms. It's physics, but the fun kind.

Toggle in Settings
3D Walls, Light Bounce RT, and Particle Bounce can each be independently toggled in the Settings panel. All are enabled by default but can be turned off for performance on lower-end hardware. On Ultra, the auto-LOD system is completely bypassed.

07 Persistent Fog of War

The web client features a four-zone fog of war system with smooth color transitions, line-of-sight blocking, and persistent discovery.

Four Visibility Zones

Bright (≤15 tiles)Full biome colors, full detail. Walls, floors, enemies, items, and sprites render at their true colors. This is where you live.
Dim (15–22 tiles)Biome colors smoothly blend toward gray using _lerpColor() interpolation — no harsh edges. Entities get alpha dimming; tiles use color blending only (no alpha) to prevent brightness seams at zone boundaries.
Fog (22–28 tiles)Two-layer render: very dim discovered base plus fog gray overlay fading from full to zero alpha. Uses biome wall characters for seamless texture transition into darkness.
Beyond (>28 tiles)Discovered tiles show as barely visible outlines. Undiscovered tiles are pure black — the void does not appreciate your curiosity.

Line-of-Sight Blocking

Barrier gates (B tiles) and locked doors (D tiles) block line of sight, preventing you from seeing what's behind them until they're opened. The LOS check uses Bresenham ray casting with a diagonal corner-clipping fix — on diagonal steps, both adjacent corner tiles are checked so walls can't be peeked through diagonally.

Persistent Discovery

As you explore, the fog of war remembers where you've been. Explored areas remain visible as a faint outline even after you move away — you can always glance back and see the shape of corridors and rooms you've already traversed. Undiscovered areas remain completely black.

Discovery Resets
Your fog of war map resets when you enter a new tunnel or return to the warehouse. Each tunnel is a fresh exploration. This keeps every run feeling like uncharted territory, even in biomes you've visited before.

Smooth Transitions

Unlike a hard cutoff between visible and hidden, the web client uses per-tile color interpolation to blend smoothly between zones. A player-centered vignette darkening layer matches the fog zone radii (15–28 tiles). The key design principle: tiles use color blending only (no alpha), entities use alpha dimming. This prevents brightness jumps at zone boundaries — the kind of visual seam that would keep a rendering engineer up at night.

08 3D Gadget Auras

When you fire a gadget, pseudo-3D orbital rings appear around your character — four tilted half-ellipses that arc over the player and fade at the floor plane. Each of the 9 gadgets has a unique aura style, because apparently we couldn't stop at just one.

FlamethrowerSmooth fire rings with warm orange-red glow
Acid SprayerBlobby dripping rings in corrosive green
Arc WelderJagged lightning bolt arcs with electric blue flash
Cryo CannonHexagonal ice crystal formations
RailgunPrecise tech nodes with sharp geometric edges
Gravity WellSpiral vortex pulling inward
EMPGlitchy holographic interference pattern
Plasma WhipChaotic energy wisps with purple-white shimmer
Spark PistolSubtle dim flickers — modest weapon, modest aura

Both gadget slots render auras simultaneously if you're firing both, and each fades independently 300–800ms after release. Aura ring lights bypass wall line-of-sight checks (they're elevated above the walls), so your gadget glow illuminates over walls instead of being clipped by them. It's technically cheating the lighting system, but it looks too good to fix.

09 Touch Controls

Full touch control system for phones and tablets. Toggle via the “Touch” button in the top HUD bar — works on any device, not just touchscreens.

Play on your phone
The entire game is playable on mobile. Dual virtual joysticks, overlay navigation, and a utility button row give you full control without a keyboard.

Controls

Left JoystickMovement with speed ramp — tap for single tile, hold to accelerate
Right JoystickDirectional combat aiming, independent of movement direction
ATK / G1 / G2Toggle attack mode: melee, gadget 1 (mouse 1), gadget 2 (mouse 2). Can fire simultaneously with movement
Utility RowButtons for inventory, chat, look mode, relic, consumable, and rest. Hold-to-repeat rest button
Overlay NavigationInventory, shop, and biome picker scrollable via touch joystick (up/down scroll, left/right filter). Biome picker has tappable confirm. Close buttons on all panels

10 Audio

The web client has a hybrid audio engine: 52 original MP3 music tracks generated with Suno AI for the soundtrack, and a fully procedural WebAudio SFX engine that synthesizes all sound effects in real time from oscillators, noise buffers, and filters.

MP3 Soundtrack

52 tracks provide context-aware music that changes based on your location. Every biome has 3–7 shuffle variations with 2-second crossfade transitions between zones. Boss fights have 6 unique battle tracks. Victory and level-up play as one-shot stingers layered over the current music.

Warehouse7 chill ambient tracks
Cave / Maintenance5 dark atmospheric tracks
Ice / Cold Storage4 ethereal ambient tracks
Magma Core4 intense orchestral tracks
Server / Office / Rack5 tense electronic tracks
Datastream4 synth/chiptune tracks
Boss Fight6 epic battle tracks
Victory / Level UpFanfare stingers

Sound Effects

A hybrid system: MP3 SFX for held gadgets (flame, arc, cryo cannon — with startup, loop, hit, and end clips) and procedural WebAudio synthesis for everything else. All sounds use spatial audio — stereo panning and distance-based fade within a 12-tile range:

MP3 Gadget SFXFlame (14 clips), Arc Welder (13 clips), Cryo Cannon (17 clips) — startup → crossfade loop → hit layers → end
Procedural GadgetsRailgun crack, EMP charge-discharge, gravity vortex hum, plasma lob, spark zap
Gadget LoopsHeld gadgets play continuous MP3 loops (or procedural fallback), stopping with a fade-out + end clip on release
CombatMelee hits, enemy deaths, player hurt/death, boss telegraphs, barrier break
WorldFootsteps (tile-aware), item pickups, gold, materials, quest completion, tunnel enter/exit
AmbientPer-biome atmospheric background (dripping water, wind, machinery hum, data static)

Audio Controls

Two independent toggles in the top HUD bar: Sound: ON/OFF controls all audio, Music: ON/OFF controls just the soundtrack (when off, no MP3 files are downloaded — saves bandwidth on mobile). A Mono Mode option in Settings downmixes stereo to both speakers. Music volume has an independent slider. All preferences persist across sessions.

11 Demo Mode

The login page includes a Demo Mode button that lets you try the web client without creating an account. Demo mode connects to the real game server and spawns you into a custom sandbox tunnel with pre-placed enemies and Mk.III gadgets equipped.

What's Included

Sandbox TunnelCustom 60×50 map with multiple rooms, corridors, and environmental tiles
Pre-spawned Enemies9 enemies of various types to test combat against
Equipped GearMk.III Flamethrower and Mk.III Arc Welder — the two most visually impressive gadgets
God ModeDemo player takes no damage so you can focus on exploring the VFX and controls
Full VFXAll particle effects, 3D walls, ray tracing, and visual features are active
Same Engine, Same Server
Demo mode uses the exact same game engine and rendering pipeline as a real session. Everything you see in demo mode is exactly what you'll experience in the full game.

12 Where It Started

Warehouse IT started as a terminal game. Pure ASCII, rendered in a blessed TUI over Telnet and SSH. Players connected to a Linux server, got a terminal full of @ symbols and # walls, and fought printers with nothing but text characters and imagination. That was the whole game.

The idea came from a love of classic roguelikes — the kind where a D is a dragon and a * is treasure, and your brain fills in the rest. I wanted to build something like that, but multiplayer, and set in an IT warehouse because that’s what I know. The terminal version was the proof of concept: combat worked, tunnels generated, bosses had telegraphs, the ticket system functioned. All in a monospace grid.

But terminals have limits. Color is constrained to 256 values. Rendering eats server CPU per player. There’s no sound, no smooth movement, no particle effects. Every visual trick is a hack against a system designed for reading email in 1985. When the web client prototype worked — same game, same server, but with a Canvas renderer, spatial audio, and pixel art sprites — the path forward was obvious.

The terminal version is where Warehouse IT was born. Every system in the game — the tunnel generators, the combat, the ticket quests, the relic shrines — was designed and tested in ASCII first. That foundation is still running under the hood. The web client just gives it a face.

// from the commit log
March 5, 2026 — “Initial Release: warehouse map, combat system, vendor shop, tunnel generation with boss fights, multiplayer TCP server, blessed terminal client, telnet gateway.”