YOU0
CPU0
SHUTTLE SMASH · QUICK GUIDE

Move. Aim. One more rally.

W
ASD
or arrow keys

01 Move into position

Joystick moves your player, including within your service section before serving.

Use WASD to move. Plain arrow keys also move your player.

HIGHRELEASE TO HIT
Shift+
↑
←↓→
aim without moving

02 Aim your return

Press a shot button, drag slightly, then release to hit. A tap targets centre.

Hold Shift + arrows to aim, then press a shot key. Aim stays separate from movement.

HIGHDROPSMASH
JHIGH
KDROP
LSMASH
Space also serves / returns high

03 Pick your shot

High goes deep. Drop lands near the net. Smash is fast and needs a high shuttle.

Winner serves diagonally.
Even score: right. Odd score: left.

Full ring = two smashes.
Ordinary returns restore 25% stamina.

◎

Move into racket range.
The ring under you shows your reach. Green means hit now.

Your player has a forgiving hit area. You still need to time the shot; the ring turns green when a return is in range. Touch controls support holding and dragging without selecting page text. Room name and code fields stay editable. First to five wins. After a point, tap anywhere or press any key to continue. CPU serves automatically after you resume. In a private room, either player can use End match in Settings, including during point breaks; confirm to close the room for both players.

Keep a place on the roof.

Add Rooftop Rally as a shortcut so it’s easy to open again.

iPhone / iPad · Safari
Open Safari’s Share menu (inside More ··· on some versions), choose Add to Home Screen, then Add. Enable Open as Web App if offered.

Android · Chrome
Open the ⋮ menu → Add to home screen → Create shortcut or Install, if offered.

Desktop · Chrome / Edge
Open the browser menu and look for Install this page as an app or Apps → Install this site as an app. Alternatively, bookmark this page.

Mac · Safari
Choose File → Add to Dock, if available.

This creates a shortcut; an internet connection is still required.

ROOFTOP RALLY

Update logs

Every little improvement, from the first rally onwards.

WHAT’S NEXT

Roadmap

Shuttle Smash: a badminton game for players everywhere. Build in phases, validate each step, then expand. Everything below is planned unless marked current.

CURRENT · ONBOARDING

Learn by playing

Learn to play now covers movement, diagonal serving, high returns, drop shots, smash stamina and a final timed return. Early practice shuttles wait for you. The last exercise retries missed returns.

CURRENT · DIAGNOSTICS

Find the source of a stall

Open Performance in How to play, or use the small diagnostics button on the court. Download a report after a laggy match on each device. Transit estimates and extra smoothing are shown separately. Reports include inferred pause causes, heartbeat ages and input-send gaps. Frame stalls and received-update gaps are measured separately; neither ping nor a single report alone proves where a delay began. Reports stay on your device unless you share them.

CURRENT · EXPERIMENTAL

Private rooms, first prototype

CPU play and private 1v1 rooms are available. Private rooms now use persistent WebSockets with a shared server simulation. Verify responsiveness on two phones before a public launch. Earlier polling rooms use a different protocol and cannot be resumed here.

PHASE 1 · TEST ON DEVICES

Realtime online play

Cloudflare realtime backend connected. Private WebSocket play is experimental; measure full matches on real devices before promotion. The CPU game stays available.

PHASE 1 · SHORT MATCHES

90 seconds, one more match

Start with a 90-second match limit. Finish the rally in progress when time expires; the highest score wins. Ties go to sudden death. Keep 60 seconds as a later tuning option.

Rematch and Home actions are available on the final scorecard. Matches still use first-to-five rules. A 90-second limit remains planned.

CURRENT · USAGE COUNTS

Basic match analytics

Open Usage summary from Home for 30-day aggregate browser-reported counts and CSV export. PvP match events are sent by the host only. These are usage indicators, not verified scores or unique players; browser exits and reconnects can affect totals. Collection can be turned off on Home.

PHASE 2 · PLAYER IDENTITY

Play first. Save your score later.

Allow guest play. Offer a small email sign-in and display-name setup after a match to save results. Attach server-recorded match results to a persistent player identity rather than trusting a score submitted by the browser.

PHASE 2 · PUBLIC LEADERBOARD

Wins, streaks and points

Public standings for match wins, win streaks and points scored, with separate CPU and PvP rankings. Define tie-breaks and time periods; validate results on the server and prevent duplicate submissions.

Total points reflects time played as well as skill. Keep it separate from wins and streaks, and account for easy CPU opponents or repeated private-opponent farming.

CURRENT · ONE VISUAL IDENTITY

Shuttle Smash, on the street

Classic block-style players, a street court and spectators, with navy, lime and cream branding across the game. Full-height court framing and translucent controls keep play in focus. The former miniature variant has been retired.

LATER · HOME AND MATCH SETUP

Your name. Your court. Your match.

A home screen with player name, difficulty / level, court selection and optional power-ups. The basic home screen is live with CPU, tutorial and friend play. Player profiles, difficulty progression, additional courts and power-ups remain later work.

PHASE 3 · AFTER PRIVATE PLAY IS RELIABLE

Find an online opponent

An 8 Ball Pool-style Play online flow: queue for an available opponent, confirm both players are ready and start a 1v1 match. Add sensible connection checks, matchmaking timeouts and disconnect rules before expanding competitive features.

BACKLOG · ARCADE MODE

Pick-ups on the court

Small power-ups that drop onto the court and activate when collected.

Prototype one power-up first. Tune duration, warning cues and counters before adding more. Keep arcade effects optional.

BACKLOG · COURT SELECTION

More places for one more rally

Start with one alternative environment using the same rules. Tournament progression is a separate later decision.

PRIVATE 1V1 · SERVER ROOMS

Play a friend

WebSocket · not connected

Experimental realtime 1v1 · persistent WebSockets. Both devices need internet. Your match runs on one shared server room. Create a new room; earlier polling-room codes cannot be reused.

End this private match?

This closes the room for both players. No winner is awarded. You can start a new room or return to the CPU game.

SHUTTLE SMASHPREVIEW · v0.28.1

KARACHI STREETS · BADMINTON

Small court.
Big rallies.

A street. A crowd. One more rally. Find your rhythm against the CPU, or challenge a friend.

FIRST TO 5 · ONE COURT · NO SIGN-UP

01 / THE STREETYour next street rivalry.
Move into the ring. Time your return.Usage summary ↗Anonymous game events · no names or room details. You can turn counts off.
SHUTTLE SMASH
MAKE IT YOURS

Keyboard controls

Select a key, then press a letter or number. Changes apply immediately and are saved on this browser.

Arrow keys also move. Hold Shift + arrows to aim.
Space also serves / plays a high shot. Escape cancels a key change.

Local CPU play pauses in settings. Online matches continue on the server.

PRACTICE COMPLETE

Ready for your first rally.

You have moved, served, returned high, dropped, smashed and timed a moving shuttle.