Skip to the object
Tactile UI

Tamp

A blasting game on a backlit colour LCD handheld: set charges in a yard of pillars and brick, put the wanderers down and find the hatch out.

What it is for

A game you could hold, on a screen that reads as a real colour panel.

Installnpx shadcn add https://tactileui.dev/r/tamp.jsonWith a Pass: how

Controls

The switch on the case, off to begin with. On, a boot scuffs on grit for each cell walked, a charge thunks down and its fuse fizzes, a blast roars, bricks rattle down and a wanderer squeals as it goes, once the visitor has touched the page (a browser allows sound only after a press). Their own setting is kept on their device.

What a screen reader calls the case.

Everything you set here is what the Code and Prompt tabs give you.

Seats open in 8 days. Want one email that morning?

Datasheet

Mechanism
Shared handheld case, Colour lcd panel, Liquid crystal response, Edge lit backlight, Fixed step grid, Sprite exact collision, Chain blasts, Corner sliding, Lookahead pilot, Seven segment digits, Token driven materials, Pointerdown keys, Synthesised sound, Scale as an object
Stack
Vanilla ES modules, CSS, Canvas 2D, Web Audio
Needs
Nothing, no dependencies
States
14 documented
Version
0.1.0
Licence
With a Pass

States

  1. How to playWalk the lanes between the pillars and set a charge beside the brick, then step round a pillar out of its cross before the fuse burns down. A blast breaks the first brick each way and puts down any wanderer in it: a hundred points for a pit beetle, two hundred for a rat, four hundred for firedamp, doubled for each more one blast and the charges it sets off catch. Ten points a brick, fifty a find. Put every wanderer down and the hatch opens; stand on it to clear the level, with ten points for every second to spare. A blast, a wanderer or the clock each cost a life; three lives, a hundred and eighty seconds a level.
  2. KeysThe arrow keys or W A S D walk while held (a tap is a step). Space sets a charge. Enter starts and pauses; P pauses and carries on; Esc pauses; F fills the screen. The D-pad and the round Charge key on the case do the same. On a phone, swipe on the screen and hold to walk that way, and tap it to set a charge; a tap starts a game. Sound is off until the switch is on.
  3. Made ofThe kit's Panel (the case), VFD (the colour panel's glass: its black and the tint of its backlight), LCD (the score, the level and the best in seven segments, the time as a bar of twenty, the kit, three printed helmets for the lives), Lamp (playing, paused, lost), Key (the D-pad, the round Charge key and the primary Start key), Tray (their well and tray), Switch (Sound) and Grille; the pixels drawn on a canvas from the finish's own tokens.
  4. WaitingThe screen plays a demo: a careful shot-firer clears a level of its own while PRESS START shows across the panel. The LCD shows the best, a full time bar and three lives, the status line says Press start. Under reduced motion the screen holds still.
  5. PlayingThe lamp is green. LEVEL and its number show across the panel as it starts. The shot-firer turns to face the way it walks; a charge set down burns its fuse toward the cap, its band lit in the last half second, and the panel jolts by a pixel as it goes.
  6. A chainA blast that reaches another charge sets it off a moment later, and that one may set off the next. Wanderers caught by the same chain score double, then four times, and the status line says Chain.
  7. A findA brick crumbles to rubble and dust and shows what was under it, on a steel plate: a blast's cross for a longer reach, a canister for a spare charge, a boot for a faster walk. Walk over it to pick it up: the LCD's kit counts it and it is announced.
  8. The hatchA round steel cover under one of the bricks far from the corner. It stays shut until every wanderer is down; then its cover slides aside to show the shaft and its ladder, a clank and a chime say so, and standing on it clears the level.
  9. LostThe lamp goes red, the shot-firer flashes and falls flat with its helmet rolling off, and the panel jolts. The status line says Blast, Caught or Time, a printed helmet goes out, and the next life starts in the corner with the wanderers home and the clock full, the bricks as they were.
  10. PausedThe lamp is amber, PAUSE shows across the panel and nothing moves; the screen stops drawing once the liquid crystal has settled. A hidden tab, or the case scrolled out of sight, pauses a run too.
  11. Game overThe last life goes: the lamp stays red and GAME OVER shows across the panel; the best score is kept on this device. Start, Space or a tap plays again.
  12. SoundOff until the switch is turned on, and silent until the page is touched. Synthesised: a scuff of a boot on grit for each cell walked, a thunk and a fizz as a charge goes down, a thump under a roar for a blast (sharper for one set off by another), bricks rattling down, a chirp for a find, a squeal or a hiss for a wanderer, a clank and a chime for the hatch, the last ten seconds ticking.
  13. Reduced motionNo jolt to the picture, nothing eased (a blast burns at its full width and is gone, words show at once, points stay where they were won), nothing blinks or flickers, the pixels change at once, and the screen holds still while it waits for Start. The wanderers and the shot-firer still move while a game is played: they are the game.
  14. Twelve finishes, two volumesThe case reads the finish and volume tokens; the colour panel's black is the finish's own VFD glass and its backlight is tinted a little toward the finish's lit colour, so Aluminium's panel is a touch cool, Phosphor's a touch green and Walnut's warm. Paper prints the picture flat. Quiet draws an even backlight and takes away the lamp's sheen.

Notes

A small backlit colour LCD, drawn pixel by pixel in a fixed palette with its black matrix, its backlight and its leak taken from the finish, sits in the library's handheld case above a segment LCD for the score, the level, the best, the time, the kit and the lives, with a D-pad, a round Charge key, Start, the sound switch and a speaker grille. A shot-firer walks a yard of concrete pillars with courses of brick stacked between them, sets charges and stands clear. A charge burns its fuse for two and a half seconds, then blows in a cross that stops at pillars and at the first brick, sets off any charge it reaches and catches whoever is in it, the shot-firer too. Pit beetles, rats and pockets of firedamp roam the lanes, each by its own plain rule. Under some bricks lie a longer reach, a spare charge, a pair of boots and the hatch out: put every wanderer down, then stand on the hatch. While it waits for Start the screen plays a demo of its own.

Original. The case is the library's shared handheld (originals/components/shared/handheld), drawn from the kit's parts at one size and scaled as an object. The rules, the pilot and the colour panel are the game's own (rules.mjs, screen.mjs). It needs the Tactile UI Kit's stylesheets on the page; the Code tab's example links them from ./kit/.

Anatomy

Shared handheld case, Colour lcd panel, Liquid crystal response, Edge lit backlight, Fixed step grid, Sprite exact collision, Chain blasts, Corner sliding, Lookahead pilot, Seven segment digits, Token driven materials, Pointerdown keys, Synthesised sound, Scale as an object

Usage notes

A game you could hold, on a screen that reads as a real colour panel. A small backlit colour LCD, drawn pixel by pixel in a fixed palette with its black matrix, its backlight and its leak taken from the finish, sits in the library's handheld case above a segment LCD for the score, the level, the best, the time, the kit and the lives, with a D-pad, a round Charge key, Start, the sound switch and a speaker grille. A shot-firer walks a yard of concrete pillars with courses of brick stacked between them, sets charges and stands clear. A charge burns its fuse for two and a half seconds, then blows in a cross that stops at pillars and at the first brick, sets off any charge it reaches and catches whoever is in it, the shot-firer too. Pit beetles, rats and pockets of firedamp roam the lanes, each by its own plain rule. Under some bricks lie a longer reach, a spare charge, a pair of boots and the hatch out: put every wanderer down, then stand on the hatch. While it waits for Start the screen plays a demo of its own.

Options

OptionTypeDescription
soundbooleanThe switch on the case, off to begin with. On, a boot scuffs on grit for each cell walked, a charge thunks down and its fuse fizzes, a blast roars, bricks rattle down and a wanderer squeals as it goes, once the visitor has touched the page (a browser allows sound only after a press). Their own setting is kept on their device.
labeltextWhat a screen reader calls the case.

Methods

  • hooks
  • update
  • destroy

How it works

Original. The case is the library's shared handheld (originals/components/shared/handheld), drawn from the kit's parts at one size and scaled as an object. The rules, the pilot and the colour panel are the game's own (rules.mjs, screen.mjs). It needs the Tactile UI Kit's stylesheets on the page; the Code tab's example links them from ./kit/.