-
Universal Gaming 2.11.5 Stable
released this
2026-11-07 03:37:54 +01:00 | 12 commits to main since this releaseUniversal Gaming 2.11.5
Bug-fix release.
Sudoku
- A saved game per difficulty. An Easy game and an Expert game can now be
paused independently; the difficulty screen shows a Continue card for each
saved slot. Existing single-slot saves are migrated automatically, and backups
keep the slots apart (sudoku-easy,sudoku-expert, ...).
Solitaire
- New deals are checked for solvability. Klondike, Classic Solitaire and
FreeCell deals are verified with a bounded solver while they are generated; a
deal that cannot be proven winnable within the budget is thrown away and
replaced, so a new game can actually be finished. - Drawing stacks show how many cards are left — the stock and the waste carry
a permanent counter, so Klondike and Spider no longer leave you guessing.
Chess
- Move history as a drop-down list with one move per line: move number,
figure,from → tosquares, the captured figure, and+/#markers. - Fallen figures are listed under the history, split by side.
- White figures reuse the filled glyph set and are painted white with a dark
outline, so both sides share one consistent shape. - Chess sessions are saved after every move, so a crash or a kill never loses
a running game. - Pending online challenges show up in the news sheet in the main menu, with
Accept and Decline, instead of waiting for you to open the chess lobby.
Checks
flutter analyze: cleanflutter test --concurrency=1: 279 tests pass
Downloads
Platform File Android UniversalGaming-2.11.5-android.apkAndroid (Play) UniversalGaming-2.11.5-android.aabiOS (unsigned) UniversalGaming-2.11.5-ios-unsigned.ipamacOS UniversalGaming-2.11.5-macos.dmgLinux x86_64 UniversalGaming-2.11.5-linux-x86_64.AppImageWeb UniversalGaming-2.11.5-web.zipSHA256SUMS-2.11.5.txtlists the checksums of every asset.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- A saved game per difficulty. An Easy game and an Expert game can now be
-
Universal Gaming 2.11.4 Stable
released this
2026-11-07 01:56:03 +01:00 | 15 commits to main since this releaseUniversal Gaming 2.11.4
Main menu
- Game cards show a green Continue badge when that game has an unfinished game, including saved Sudoku and Killer Sudoku boards. The badge appears as soon as you leave a game.
Keyboard
- Escape now closes the open sheet, dialog or popup menu, and otherwise goes back one screen: a game returns to the main menu, and Sudoku returns to difficulty selection.
Solitaire
- Selecting a card is instant. The card widget resolved taps through a double-tap recogniser, so every single tap waited 300 ms for the double-tap timeout before the selection showed. Taps are now timed by hand, so the highlight lands on the next frame and double-tap auto-move still works.
- Fanned columns now show the suit next to the rank in the corner, so a covered card still shows its colour. Previously the suit sat under the rank and disappeared behind the card below.
Linux
- First AppImage release:
UniversalGaming-2.11.4-linux-x86_64.AppImageis a single self-contained file, no install step and no root. Run it withchmod +xand launch; use--appimage-extract-and-runif FUSE 2 is unavailable. Built on Arch Linux (needs glibc 2.39 or newer). tools/package_appimage.shreproduces the AppImage from aflutter build linux --release.
Windows
- No prebuilt Windows binary in this release: Flutter can only produce Windows executables on a Windows host. The Windows runner is configured and builds from source with
flutter build windows --release(see INSTALL.md).
Compatibility
- Works with Universal Gaming Backend 1.4.0 or newer (1.5.0 for save backups).
- Version 2.11.4+23.
- 269 app tests pass;
flutter analyzeis clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Universal Gaming 2.11.3 Stable
released this
2026-11-07 01:16:26 +01:00 | 16 commits to main since this releaseUniversal Gaming 2.11.3
Mahjong animation
- Matching a pair no longer makes the board twitch. The tiles are now keyed by their board position, so removing a pair can't push the remaining tiles into each other's widgets and animate their borders and shadows between unrelated tiles.
- A matched pair now fades and shrinks away over 190 ms, so a match reads as a deliberate removal instead of two tiles snapping out of existence.
Mahjong solvability
- Every new Mahjong deal is now verified before you see it: the generator replays its own removal order against the freshly dealt board, and if the board would not clear it deals again (falling back to the deterministic order if needed).
- So a fresh puzzle always has a solution — hint and undo can't strand you in an unwinnable board.
Compatibility
- Works with Universal Gaming Backend 1.4.0 or newer (1.5.0 for save backups).
- Version 2.11.3+22.
- 265 app tests pass;
flutter analyzeis clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Universal Gaming 2.11.2 Stable
released this
2026-11-06 23:25:48 +01:00 | 17 commits to main since this releaseUniversal Gaming 2.11.2
Minesweeper
- The Expert board is now the classic 30 wide × 16 tall field. It used to be stored as 30 rows by 16 columns, which drew a tall, narrow board.
- The field rotates to match the screen: 30 columns across in landscape, 16 across in portrait, so no sideways scrolling is needed either way.
- The subtitle describes the grid exactly as it is drawn (for example
16×30in landscape).
Chess
- Four computer strengths: Easy, Medium, Hard and Expert. Pick one with the brain button in the header; Easy is deliberately beatable, Expert searches four plies deep.
- The current strength is shown in the subtitle and saved with your session, so a resumed game keeps the same opponent.
Chess layout
- On wide screens the move history now sits beside the board as a scrollable panel, with a button to open the full-size list. Narrow phones keep the sheet.
Compatibility
- Works with Universal Gaming Backend 1.4.0 or newer (1.5.0 for save backups).
- Version 2.11.2+21.
- 262 app tests pass;
flutter analyzeis clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Universal Gaming 2.11.1 Stable
released this
2026-11-06 22:42:32 +01:00 | 18 commits to main since this releaseUniversal Gaming 2.11.1
A bug-fix release focused on keeping your progress and on the solitaire games.
Games now resume where you left off
- Minesweeper, Mahjong, Klondike, Classic Solitaire, Spider, FreeCell, Pyramid, TriPeaks and offline Chess save unfinished games automatically when you leave the screen or background the app.
- Reopening a game continues the same board, timer and move count.
- Finished games clear their save, so you always start fresh after a win or loss.
- Unfinished games are included in account save backups, so restoring a backup on another device restores games in progress, not just Sudoku.
Solitaire fixes
- Every Pyramid and TriPeaks deal is now solvable. Deals are constructed from a valid clearing sequence instead of being random.
- Cards can be dragged onto a pile in Klondike, Spider and FreeCell; tapping still works exactly as before.
- Tall piles stay on screen: the tableau fan tightens as a column grows instead of running past the bottom.
- Pyramid pairs still remove both cards, and a playable pair is never reported as game over.
Mahjong
- Deals are no longer pre-sorted. The board is built from a random valid removal order, so matching tiles are scattered instead of mirrored row by row. Every deal remains solvable.
Minesweeper
- Wide fields (Intermediate, Expert) rotate in portrait so the board fits the screen without sideways scrolling.
Interface
- The How to play sheet closes with a downward swipe and a new X button.
- Main-menu cards show a chip listing each game's subdivisions, such as difficulties, suit counts and chess modes.
Compatibility
- Works with Universal Gaming Backend 1.4.0 or newer (1.5.0 for save backups).
- Version 2.11.1+20.
- 258 app tests pass;
flutter analyzeis clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Universal Gaming 2.11.0 Stable
released this
2026-11-05 15:21:35 +01:00 | 19 commits to main since this releaseUniversal Gaming 2.11.0
Pyramid pair fix
- Pairing two pyramid cards that add up to 13 (for example a Queen and an Ace) now removes both cards. Previously only the card you tapped last left the pyramid, so the first card stayed behind and the board looked half-cleared.
- Undo restores both cards of such a pair in one step.
- The game no longer reports Game over while two exposed pyramid cards can still be paired with an empty stock.
Compatibility
- Works with Universal Gaming Backend 1.4.0 or newer (1.5.0 for save backups).
- Version 2.11.0+19.
- 248 app tests pass;
flutter analyzeis clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Universal Gaming 2.10.0 Stable
released this
2026-11-05 10:13:56 +01:00 | 20 commits to main since this releaseUniversal Gaming 2.10.0
Save backups on your account server
- Saved Sudoku and Killer Sudoku games can now be stored on your account server and restored on another device.
- Open Account → Save backups and use Back up now or Restore (restoring asks for confirmation because it replaces the saved games on the device).
- New saves are uploaded automatically a few seconds after a game is saved, as long as the server is reachable.
- Saves are always written locally first, so a failed or offline backup never loses progress.
- The server stores each save as an opaque JSON document per game (max 32 kB); unknown game ids from newer builds are ignored.
- Servers without the feature show This server does not support save backups and the app keeps using local saves.
- Disable it server-side with
SAVE_BACKUP_ENABLED=false.
Minesweeper flag button
- The bottom bar now has a Flag mode toggle, so flags no longer require a long press or right-click.
- In flag mode taps place and remove flags; tap the button again to return to revealing. Long press and right-click keep working.
- The in-app help sheet documents the new control.
Chess board grid
- Fixed the chess board rendering without its checkerboard: the square colour collapsed to zero size, so only pieces, highlights and coordinates were drawn.
- The light/dark squares, selection highlight and check highlight now fill their cells.
Compatibility
- Requires Universal Gaming Backend 1.5.0 for save backups; everything else works with 1.4.0.
- Version 2.10.0+18.
- 245 app tests pass;
flutter analyzeis clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Universal Gaming 2.9.0 Stable
released this
2026-11-04 23:02:59 +01:00 | 22 commits to main since this releaseUniversal Gaming 2.9.0
Discord Rich Presence
- Desktop builds (macOS, Windows and Linux) can now show the game you are playing on Discord.
- Presence includes the current game, difficulty or mode, a move count/progress line and a live elapsed play-time counter.
- Paused games show Paused and the frozen play time.
- Updates are throttled and connection failures are silent, so Discord never affects gameplay.
- Toggle it under Settings → Integrations → Discord Rich Presence.
- Discord is only contacted when a game is open. Web, Android and iOS builds compile without the desktop IPC dependency.
Enabling it
Rich Presence needs a Discord application ID at build time:
flutter build macos --release --dart-define=DISCORD_CLIENT_ID=your-application-idCreate an application in the Discord Developer Portal and use its Application ID. The Discord application name is shown as the activity title. If no ID is supplied, the feature stays disabled and the setting explains how to enable it.
macOS note
This build disables the macOS App Sandbox so the app can connect to Discord's local IPC socket. It is not intended for the Mac App Store.
Compatibility
- Works with Universal Gaming Backend 1.4.0.
- Version 2.9.0+17.
- 233 app tests pass;
flutter analyzeis clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Universal Gaming 2.8.1 Stable
released this
2026-11-04 22:34:03 +01:00 | 23 commits to main since this releaseUniversal Gaming 2.8.1
E-mail verification status
- The E-mail status label in Account settings now refreshes automatically when the screen opens.
- It also refreshes when the app resumes, for example after confirming the address in a browser.
- A verified address now changes from Not confirmed to Verified without tapping Refresh.
- The manual Refresh button still works.
Compatibility
- Works with Universal Gaming Backend 1.4.0.
- Version 2.8.1+16.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Universal Gaming 2.8.0 Stable
released this
2026-11-04 21:55:36 +01:00 | 24 commits to main since this releaseUniversal Gaming 2.8.0
Landscape and playfields
- Fixed landscape sizing and positioning across all games.
- Short landscape windows now use compact headers and hide redundant bottom bars, so the playfield gets the space.
- Raised the maximum board, card and tile sizes on tablets, desktops and large windows.
- Chess and Sudoku boards are noticeably larger on wide screens.
Input
- Text input dialogs (rename, e-mail, delete account) confirm with Enter.
- The account server URL field also saves with Enter.
Accounts
- Added Forgot password? for accounts with an assigned and confirmed e-mail.
- Reset links are one-time, expire after 30 minutes and sign out all existing sessions.
- Deep links to
https://games.emilyh.de/account?reset=…open the reset form in the app.
E-mail
- Fixed
tls_validate_record_header:wrong version numberwhenSMTP_SECURE=truewas used on a STARTTLS port. - SMTP TLS mode is now inferred from the port; 465 uses implicit TLS, 25/587/2525 use STARTTLS.
SMTP_SECUREandSMTP_REQUIRE_TLScan still be set explicitly.
Backend compatibility
- Works with Universal Gaming Backend 1.4.0.
- Version 2.8.0+15.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
forked from Emily/InfiniteSudoku