King Pong is a retro arcade Pong game featuring an 18-level campaign, custom power-ups, local, LAN, and cross-platform online multiplayer, progressive paddle shapes, save slots, multiple languages, and a secret ending.
Play directly in your browser or download King Pong for Windows, Linux, and Android.
The project was developed with AI-assisted coding and packaging help, then manually tested, debugged, and polished to give it that human touch.
Feel free to test it out, play around with it, and modify it. Hope you enjoy it!
Made by: King Alex Gilbert
King Pong can now be played directly in your web browser with no installation required!
Choose Play Online to find another player automatically, or create/join a private room with a room code. Browser, Android, Windows, and Linux players use the same queue. Choose Campaign for single-player games against the computer.
Play King Pong on GitHub Pages
The browser version supports keyboard, controller, and touch controls. For the best mobile experience, use landscape mode.
Browser save data is stored locally and is separate from the Android, Windows, and Linux versions.
Watch the official King Pong gameplay demo:
King Pong - Android and Windows Gameplay Demo
Install King Pong from the official F-Droid repository. Installing through the F-Droid app provides update notifications when new versions become available.
Download the developer-signed Android APK from the latest GitHub release and install it on your Android device.
You may need to allow installation from unknown sources depending on your device settings.
Save data note: To preserve your save data, install updates over the existing app from the same source. Do not uninstall first, because uninstalling may remove local save data.
Important: The F-Droid edition and the GitHub/itch.io APK are signed with different keys. Android cannot update one edition over the other. Switching editions requires uninstalling the currently installed version first, which may erase local save data.
Download one of the Windows versions from the latest GitHub release.
KingPongSetup.exe- recommended Windows installerKingPong-WebView2-Portable.zip- portable Windows version
For the portable version, extract the ZIP folder first, then run the King Pong EXE inside it.
The Windows installer is currently unsigned, so Windows may show an unknown publisher or SmartScreen warning. This is normal for unsigned indie releases.
If you trust this official GitHub release, choose More info → Run anyway if SmartScreen appears.
Download one of the Linux versions from the latest GitHub release. The exact version number in the filename depends on the release.
King-Pong-Linux-v2.0.0-all.deb— for Linux Mint, Ubuntu, Debian, and other Debian-based distributionsKing-Pong-Linux-v2.0.0-thin-x86_64.AppImage— thin x86-64 version that uses the system WebKitGTK runtime
Download the .deb file, open it with your distribution's software installer, or install it from a terminal:
sudo apt install ./King-Pong-Linux-*.debThe package manager will automatically install the required GTK and WebKitGTK dependencies.
The thin AppImage does not bundle an entire browser engine. The system must already have Python GObject, GTK 3, upower, and WebKitGTK installed.
On Linux Mint 22 or Ubuntu 24.04:
sudo apt install python3 python3-gi gir1.2-gtk-3.0 gir1.2-webkit2-4.1 upowerOn an older Debian-based distribution that does not provide WebKitGTK 4.1, install gir1.2-webkit2-4.0 instead.
Make the AppImage executable and run it:
chmod +x King-Pong-Linux-*.AppImage
./King-Pong-Linux-*.AppImageThe thin AppImage is much smaller than a fully self-contained AppImage because it uses the WebKitGTK libraries already installed on the computer.
You can also play King Pong in your browser or download the desktop and Android versions from itch.io:
Play or download King Pong on itch.io
If you want to build King Pong yourself:
- Download or clone this repository.
- Open the
androidfolder in Android Studio. - Let Android Studio sync the Gradle project.
- Build the APK using:
Build → Generate App Bundles or APKs → Build APK(s) - The generated APK should appear in:
android/app/build/outputs/apk/debug/
If you want to build the Windows version yourself:
- Download or clone this repository.
- Go to the
windows/webview-2folder. - Run
build-windows.bat. - The portable Windows build should be generated in the
distfolder.
To build the Windows installer:
- Install Inno Setup 6.
- Go to the
windows/installer exefolder. - Run
build-installer.bat. - The installer should appear in the
Outputfolder.
Build King Pong from a native Linux filesystem, preferably somewhere inside your home folder, such as:
~/Projects/king-pong
Building directly from an NTFS, exFAT, or other Windows-mounted drive may fail. These filesystems may not preserve Linux executable permissions correctly and may be mounted with restrictions that prevent build tools or AppImages from running.
If the repository is stored on a Windows drive, copy the entire repository to your Linux home folder before running the build scripts.
Fully extract the repository before building. Do not run the scripts from inside a ZIP archive.
Run the following commands from the Linux directory. The scripts use relative paths and may report “No such file or directory” if run from a different folder.
Linux paths are case-sensitive, so use the exact capitalization shown in the instructions.
- Download or clone this repository.
- Go to the
Linuxfolder. - Install the Debian package build tools using:
sudo apt install dpkg-dev - Run
./build-deb.sh. - The generated
.debpackage should appear in thedistfolder.
- Download the x86-64 version of
appimagetool. - Make it executable using:
chmod +x appimagetool-x86_64.AppImage - Go to the
Linuxfolder. - Run:
APPIMAGETOOL="/path/to/appimagetool-x86_64.AppImage" ./build-appimage.sh - The generated AppImage should appear in the
distfolder.
The primary shared game source is in game/.
Make shared gameplay, rendering, audio, and UI changes here. Run node tools/sync-gameplay.mjs from the repository root to copy them into the Android, Windows, Linux, and browser HTML files. Do not edit the embedded shared blocks directly; synchronization replaces them.
The platform HTML files still contain the legacy engine and platform-specific code outside those shared blocks. game/serve-integration.mjs owns the regular serve acceleration. game/polish-integration.mjs owns their shared polish hooks and the synchronized simulateHazardStep and drawBackground functions. Other changes there must be applied to each affected platform. Keep windows/webview-2/index.html and Linux/assets/index.html byte-identical.
The Android application and packaging files are in android/. Its game HTML is located at:
android/app/src/main/assets/index.html
The Android WebView wrapper is located at:
android/app/src/main/java/com/kingalex/kingpong/MainActivity.java
Windows application and installer files are in windows/. The WebView2 version is located at:
windows/webview-2/
The Windows installer project is located at:
windows/installer exe/
The Linux WebKitGTK launcher and packaging files are located in:
Linux/
The Linux launcher is located at:
Linux/src/king-pong.py
The Linux .deb and thin AppImage build scripts are located at:
Linux/build-deb.sh
Linux/build-appimage.sh
Browser and GitHub Pages deployment files are in docs/. The website is located at:
docs/index.html
The browser demo is located at:
docs/demo/index.html
Online multiplayer signaling is in signaling/. Its test/ folder covers signaling and browser integration. Other tests are explained in tests/README.md.
Source synchronization tools are explained in tools/README.md. Platform notes are in android/, windows/, Linux/, and docs/. After editing the game, check the generated copies and run the tests:
node tools/sync-gameplay.mjs --check
node --test tests/*.mjsKing Pong uses two open-source libraries for QR code pairing:
- jsQR — Apache License 2.0
- QR Creator — MIT License
Both libraries and their license information are included in game/vendor/.
This repository includes additional documentation for people who want to explore how King Pong was built and how the project evolved.
development-history/— prompt-history documents and reconstructed making-of notes covering the creation of King Pong, the HTML game development process, and the Android/Windows conversion work.archive/early-builds/— early HTML prototypes that helped inspire King Pong, including the original Pong-style base and the first expanded difficulty version.
These files are not required to play or build the current version of King Pong. They are included for transparency, project history, and documentation.
Special thanks to Madelee for their work on the secret ending soundtrack, King Pong's first non-procedurally generated music track!
King Pong is released under the GNU Affero General Public License v3.0 (AGPL-3.0-only).
See LICENSE for the full terms or read the official online license. Modified versions used over a network must also follow the AGPLv3 source-sharing requirements.
Copyright (C) 2026 King Alex Gilbert




