Changelog
A running log of gameplay tuning, new features, and behind-the-scenes work. Newest first.
2026-07-09
FFA is now the territory game
- The public free-for-all has been rebuilt as a real-time territory land grab and is now simply called FFA. The classic Tetris-well Tetromino FFA has been retired.
- You spawn on a small block of your own colour and grow it by docking finished tetrominoes onto your own territory. Only tiles you dock through play count toward your share of the arena — the free starting block no longer banks any coverage.
- New: shoot rival blocks. A recoil shot that hits an enemy's territory vaporizes a single tile — one shot, one mino — so you can breach a wall and shave a rival's coverage a tile at a time. Your own tiles are immune.
- Wedge a dock against a neighbour's block to connect to them and fence them in — they lose every heart and their whole block bursts off the board. Blanket the most ground to win the round.
2026-05-17
Calmer tetromino bots, smaller rooms
- Reduced room capacity (max 30 players) and the per-room NPC target down to 10, so rooms feel less crowded and the bot density stays comfortable on the lower-spec shards.
- Tetromino bots are noticeably calmer: less twitchy targeting and a longer reaction window before they take a shot — they should feel more like opponents and less like turret towers.
2026-05-17
Pentomino room overhaul
- Each Pentomino room is now sized individually around its picture. A wide picture (BMW) gets a wider room than a square picture (Cross), with a constant margin of free play space on every side.
- Distance fade applied to faraway picture cells so the silhouette reads cleanly even on big pictures.
- NPCs now dodge projectiles in Pentomino, so bots stop running straight into clearly-fatal shots.
- Food density rebalanced to be constant per square metre instead of per room — small rooms no longer feel flooded with food and large rooms no longer feel empty.
2026-05-17
Server modularisation and Arena mode
- Arena mode: a private, pin-coded Tetromino room with a lobby and an admin who picks the rules (Respawn or Hardcore). Hardcore is one life: when you die you become a spectator until the last player standing wins. The round auto-ends if the admin leaves mid-game.
- The server was split from one 1,773-line file into focused modules —
config.js,state.js,rooms.js,player.js,simulation.js,npc.js,network.js,arena.js,pictures.js. No gameplay changes, but it's much easier to add modes and fix bugs without touching unrelated systems. - Tetromino lock delay: a complete figure now has a short slide window after first touching the floor or a stone, so you can settle into a tight gap instead of being snapped to the first contact point.
2026-05-16
Wider palette, per-file pictures
- The colour palette expanded from 6 to 9: the original rainbow set is joined by white, pink, and brown. Tetromino and Domino stay on the rainbow set (so the dockable rails remain readable), and the new colours unlock pictures that need more variety — house roofs, flower centres, car logos.
- Pictures moved from one big catalog file to per-file JSON in
pictures/, split into the three categories the lobby exposes:forms/,cars/, andfood/.
2026-05-15
Login overlay redesign + PWA install
- The start screen is now a 5-card layout — Mode, Rooms, Rules, Profile, Play — replacing the older monolithic form. Each card animates the rules for its mode.
- Added a PWA manifest, service worker, and install icons. You can install polyomino.io as a standalone app on desktop and mobile; the login overlay works offline thanks to a cached app shell.
- Spelling pass: Tetrimino → Tetromino, Pentamino → Pentomino.
2026-05-14
Sharded hosting + monitoring
- The single server was replaced with three pinned Node containers behind Traefik. Each shard advertises its identity via a meta tag so the client can show which one it's on.
- Added Netdata for live monitoring of the shards.
2025
Year of polish
- Rebuilt food collisions on a spatial grid, made movement frame-rate independent, and tuned the friction-based projectile model so shots have a satisfying throw-and-slow feel.
- Pentomino mode introduced. Pictures, the cinematic post-drop zoom, and the pattern-complete bonus all landed during this year.
- Mobile support: dynamic touch joystick, fire and rotate buttons, viewport-fit handling for the iOS notch.
2024
Domino mode
- First non-Tetromino mode shipped. The compact 100×100 square playfield, colour-matched docking, and the wall-to-wall bridge win condition all date to this period.
- The 6-colour rainbow palette was finalised this year.
2023
Public prototype
- First playable build: a single Tetromino room with server-authoritative movement, real-time multiplayer over Socket.IO, a leaderboard, and the recoil-shoot mechanic.
- Foundational systems landed this year: nicknames, the death/respawn loop, server-side border collision, and the first version of the food-eating and docking rules.
2019
Project started
- polyomino's initial commit. Mostly placeholder, but the name and the idea — a real-time multiplayer game built around polyomino shapes — were set from day one.