Breakout فارسی

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.

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.

  1. 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.

  2. 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.

  3. 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
  4. Install and launch

    Use your TV's address and the device name that sdb devices prints. 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.BO namespace. 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 check runs the compatibility lint, unit tests for physics and scoring, and Playwright drives that play the game at 1920×1080 with synthetic keys.

Read the code on GitHub

Get Breakout

The latest release and the full source are on GitHub. Found a bug on your TV model? Open an issue.

Download the app Report a problem