Breakoutfor Samsung TV
The classic brick breaker, built as a Tizen web app for 2021 Samsung TVs. Plug a keyboard into the TV or pick up the remote, launch the ball and clear the wall.
Download the app Source on GitHub
Free and open source. Built for 2021 Samsung TVs (Tizen 6.0) with developer mode switched on.
What's in the game
Three levels of bricks, three lives and a score to beat. It plays like the arcade original, sized for a sofa.
Paddle and ball
Hold a key and the paddle glides. Let go and it stops. Where the ball hits the paddle decides which way it flies next.
Coloured bricks
Rows of red, orange, yellow, green and blue, plus silver bricks that take two hits. The higher the row, the more it scores.
Three levels
A solid wall, a checkerboard, then a silver-topped funnel. Clear all three and they come round again, faster.
Lives and score
You get three lives. Miss the ball and one goes. Your best score is saved on the TV.
Arcade beeps
A short tone for every bounce, break and miss. Press M to mute.
Keyboard or remote
Both work at once. Nothing to pair and no phone app.
Made for the sofa
The screen is a fixed 1920×1080 and no text is smaller than 28 pixels.
Fully offline
No account, no ads, no network access. The app holds only its own files.
Controls
Plug any USB keyboard into the TV, or just use the remote.
Keyboard
- Move
- ←→ or AD
- Launch the ball
- Space or Enter
- Pause
- P or Esc
- Mute
- M
- Pick in menus
- ↑↓ or WS then Enter
TV remote
- Move
- ←→
- Launch the ball
- OK
- Pause
- Back
- Pick in menus
- ↑↓ then OK
Install it on your TV
Breakout isn't in the Samsung app store, so you sideload it from a computer on the same network as the TV.
Turn on developer mode
On the TV, open Apps, press 1 2 3 4 5 on the remote and switch Developer mode on. Type in your computer's IP address, then restart the TV.
Make a signing certificate
Samsung TVs install only signed apps. Create a certificate profile with the Tizen command-line tools. If the TV turns it down later, make a Samsung certificate that lists your TV's DUID.
Package the app
Clone the repository, stage the app and package it with your profile.
git clone https://github.com/cocodedk/breakout-tv.git cd breakout-tv npm run stage tizen package -t wgt -s MyProfile -- dist/app
Install and launch
Use your TV's address and the device name that
sdb devicesprints. Some TVs also want "Permit to install applications" from Tizen Studio's Device Manager before the first install.sdb connect 192.168.1.50:26101 tizen install -n Breakout.wgt -t MyTV -- dist/app tizen run -p BreakoutTV.Breakout -t MyTV
The releases page has the app as an unsigned zip, breakout-tv-app.zip. Unzip it and package its app folder with your own profile, as in step 3.
Under the hood
A Tizen TV app is a website in a zip file with a config.xml. Breakout is plain HTML, CSS and JavaScript running in the TV's built-in browser.
- A browser that never updates
- A 2021 TV runs Chromium 76 and stays there. The code avoids newer syntax such as
?.and??, and a lint step rejects it. - No build step
- Classic script tags share one
window.BOnamespace. No modules, no bundler, no framework, no runtime packages. - One handler for both inputs
- A USB keyboard and the remote both send key events. The game reads
keyCode, which the TV's browser fills in reliably. Back is 10009 on the remote and Esc on a keyboard. - Fixed physics steps
- The ball moves in steps of 1/240 second, so a fast ball never slips through a brick.
- Tested without a TV
npm run checkruns the compatibility lint, unit tests for physics and scoring, and Playwright drives that play the game at 1920×1080 with synthetic keys.
Get Breakout
The latest release and the full source are on GitHub. Found a bug on your TV model? Open an issue.