A C++ / SDL3 port of the classic Frozen Bubble 2, reimplementing its gameplay, network multiplayer and chain-reaction system. The original was Linux-only; this port runs on Linux, macOS, Windows, Android, and in the browser.
Play in your browser · Downloads · Source · Privacy policy

| Platform | File |
|---|---|
| Android | Google Play — phones, tablets and TV |
| Linux | frozen-bubble-linux-x86_64.AppImage — chmod +x and run |
| macOS | frozen-bubble-macos-arm64.dmg — Apple Silicon only |
| Windows | frozen-bubble-windows-setup.exe — unsigned, SmartScreen will warn |
| Android (sideload) | frozen-bubble-android-tv.apk — same APK as Play, for TV boxes and devices without Play |
| Browser | Play on itch.io — desktop and mobile, including iPhone |
Downloads are on the releases page; itch.io hosts the browser version.
There is no iOS download. The build exists but is unsigned and experimental, so a device will not install it without re-signing — see docs/IOS.md. To play on an iPhone, use the browser build.
fb-server protocol, so this
port and the original game can share a server.




The game ships with no server of its own. On startup it fetches a
community-maintained list of public servers, and anyone can run one — the
server lives in
server/,
and SetupServer.md
covers hosting your own.
Chat is not moderated by the developer. In the lobby or a room, press B, tap
REPORT / BLOCK above the chat, or tap someone's chat line to open the list of
players: Block hides a player's messages on your device straight away, and
Report sends a note to that server's operator. The host of a room can also
remove a player from it. Reports are never acted on automatically: nicknames
are chosen fresh on every connection, so automatic kicks on report would just
hand everyone a way to remove anyone they liked. The typed /block and
/report commands still work.
Join the Discord — the same invite the Join Discord server row on the NET GAME server list and the online lobby opens in your browser. There's an alert whenever someone connects to a public server, plus a result alert at the end of every round — game mode, winner (or draw), and the full player roster — if you're looking for an opponent or just keeping an eye on how things are going. The server also posts its weekly rankings there once a day: round wins, round losses and bubbles popped, reset every Monday at 00:00 UTC, bots not counted. The same rankings are on the Weekly rankings screen in the online lobby, and on the web: Weekly rankings. Single-player runs have their own Highscores board.
Running your own server? It can post its own join and round-result alerts to a Discord channel of your choosing — see SetupServer.md.
Frozen Bubble for Android is published on Google Play by Solina AI LLC, a Texas limited liability company. The app is free software and the company makes no claim over the original game's code, artwork or music — see Credits below.
There is no support email. Questions, bug reports, privacy and data-removal requests all go to the public issue tracker, which is read by the maintainer: github.com/dchau360/frozen-bubble-sdl3/issues. Using the tracker rather than mail keeps the history public, so an answer to one player is visible to the next one with the same question.
The privacy policy covers what the app stores and what the ads in the Android build collect.
This is a port, not an original work. Frozen Bubble was created by the Frozen-Bubble Team — Guillaume Cottenceau (design and programming), Alexis Younes and Amaury Amblard-Ladurantie (artwork), and Matthias Le Bidan (soundtrack), with contributions from many others listed in AUTHORS. The artwork and music here are theirs.
Licensed under the GNU General Public License v2, the same licence as the original. The complete source is on GitHub, and bug reports are welcome via GitHub Issues.