Design for the hand before the viewport

Caveman Taxi places steering under the left thumb and thrust and rocks under the right. The centre stays clear because that is where the helicopter, terrain and route information compete for attention. Button size comes from thumb movement and error, not from how neat the overlay looks in a screenshot.

Super Air Hockey preserves the touch offset between finger and mallet. The player can grab slightly behind the mallet and keep the puck visible. Snapping the mallet centre under the finger would be mathematically tidy and physically worse.

Track fingers by identity

A two-thumb game cannot reduce input to one pressed flag. Each pointer or touch identifier owns an action until it ends, leaves, loses capture or is cancelled. Releasing the steering finger must not release thrust held by another finger.

Caveman Taxi reconciles pointer capture with the active touch list because mobile browsers do not guarantee that one event path will remain perfect. The system releases the affected action when a finger disappears. It does not wait for a clean ending that may never arrive.

Cancellation is normal input

Touch cancellation happens when the browser takes control of a gesture, the operating system interrupts, or the contact leaves the usable surface. Treating cancellation as an exceptional error creates the classic stuck-button bug. The helicopter keeps turning because the release event the code expected no longer exists.

The safe response depends on scope. A cancelled pointer releases its own action. Blur, resize and orientation change clear all held input. A hidden page or unsafe portrait flight also pauses the game. Precision matters because clearing everything for every small slip would make the controls feel brittle.

Rotation is a lifecycle event

Changing orientation can resize the canvas, move every touch target and briefly hide the page. Caveman Taxi pauses the clock, physics, tweens, animation and audio, then clears input. Returning to landscape removes the blocker, but flight resumes only after an explicit player action.

Automatic resume assumes the player's hands returned to the controls at the same moment as the browser. That is rarely true. The resume button gives ownership of time back to the player.

Caveman Taxi gameplay that pauses safely when mobile orientation changes
The active flight has physics, animation, audio, input and platform state to pause together when the device rotates.

Test gestures, interruptions and recovery

A mobile pass should include two-thumb holds, finger slides, cancelled touches, rapid rotation, backgrounding, an incoming interruption and return to play. It should run on the compiled release because wrappers and platform scripts can change focus and layout behaviour.

The test record covers complete interaction sequences. A passing touchstart event proves very little. The player must be able to lose control of the browser for a moment and return without the game inventing an input.

THE WORKING RULE

Reliable touch control starts with the player's hands and includes every way the browser can interrupt them. Pointer events carry the input, but they do not define the whole interaction.

Play Caveman Taxi Explore the game