Version 1.5 is current
This overview is grouped from the repository's Git history. Related commits are combined into versions so the product history remains readable.
Game quality, mobile usability and SEO
Version 1.5 improves gameplay, online reliability and the experience on phones and desktop computers.
- The game opens directly without the daily splash screen. Smaller images and compressed scripts reduce loading time.
- Cards, player names and controls fit small screens better. Keyboard access and reduced motion are better supported.
- Hidden cards no longer reveal their score before selection. Knocking correctly resets the passing sequence; spectators do not count as active players.
- Online sessions survive a page reload. Timeouts, connection failures and outdated room responses are handled more reliably.
- Statistics are saved atomically. The API validates input more strictly and reports database failures as errors.
- The interface remains usable when browser storage is blocked. All 40 pages across five languages include prerendered content; canonical URLs, language links, the sitemap, redirects and error pages have been improved.
- Automated checks cover game rules, card controls, storage, the backend and built pages; dependencies have been updated.
Multiplayer invites and online rule alignment
This version makes online rooms easier to share, improves mobile controls and aligns multiplayer more closely with the single-player rules.
- Online rooms can now be shared directly from the room window, including a WhatsApp link, native sharing and a copy fallback.
- Invite links open the game page with the room code and automatically join the invited room.
- The online room window is scrollable on mobile devices so chat, start actions and leaving the room remain reachable.
- Multiplayer now sends full knock status data to the client so knocking is unlocked like in single player.
- When everyone passes, multiplayer now recycles old middle cards through the discard pile like single player.
- Multiplayer authentication was made more robust for PHP hosting setups that do not reliably forward Authorization headers.
- Display and spacing in the online dialog were corrected so player names and status labels no longer run together.
Multilingual support and localized game interface
The website is now available in German, English, Chinese and Spanish and automatically selects the language based on the browser setting.
- A language selector was added to the settings, and the selected language is stored locally.
- Guide, legal notice, privacy policy and change notes were built as multilingual pages.
- Cookie choices, reviews, leaderboard, statistics, playfield texts and animations were translated.
- Dynamic texts with player names, scores, rounds, difficulty and dates are formatted by language.
- The SEO information of the change notes page now respects the active language and sets matching Open Graph locale data.
Reviews, privacy and legal pages
This version adds real user reviews, cookie choices, privacy information and unified navigation for all text pages.
- Reviews can be submitted after completed games, stored and shown in a dedicated reviews window.
- The aggregate rating is provided as structured data for search engines once real reviews exist.
- Cookie choices with accept and reject were added; optional statistics, leaderboards and reviews are disabled when rejected.
- Legal notice and privacy policy were added; the email address is obfuscated in the legal notice and assembled only after a click.
- Sitemap, SEO routes and texts were updated for Schwimmen, legal notice, privacy and guide pages.
- The dialog sequence after game end, score window, review and new game was stabilized.
- All text pages show the same navigation buttons in the same order: guide, legal notice, privacy and back to the game.
Monte Carlo AI and more stable bot moves
Hard mode now plays more strategically: the AI evaluates possible game outcomes through simulation, and a rare bot stall during shared passing was fixed.
- The hard difficulty now uses Monte Carlo simulations instead of the previous direct evaluation logic.
- All legal moves are considered in the simulation: swap one card, swap all cards, pass and knock.
- Unknown opponent cards and the remaining deck are randomly redistributed for each simulation.
- Knocking is evaluated with risk awareness, so strong hands close more consistently and weak hands are punished.
- A multiplayer AI stall was fixed where a computer player made no visible move after everyone passed.
Mobile play area, drag and drop and polish
This version bundles recent improvements for smartphone playability, card layout, security and API stability.
- Own hand cards, opponent cards and middle cards were adjusted for small screens.
- Drag and drop was added for card movement and made visible on touch devices.
- Mobile header icons, spacing and responsive elements were tightened.
- The public API was hardened and secured more reliably.
Rules, statistics and round feedback
This version makes the game easier to understand and progress more visible.
- New rules page for game goal, card values, actions and round end.
- Global player statistics and leaderboards were added.
- Blitz hands are shown more clearly instead of appearing only as a score.
- Round feedback, knock timing and game reactions were improved.
Multiplayer expansion
Online mode was expanded from an initial room concept into a playable multiplayer experience.
- Players can join online rooms and play together.
- AI players can be used in multiplayer.
- Deck selection and several smaller multiplayer fixes were added.
- The splash screen appears only once per day.
- The start view and recurring entry experience were further improved.
Backend and data integration
The foundation for persistent data and public project information was created.
- MySQL integration for server and statistics data was prepared.
- README and project documentation were updated.
- Configurations for local and production-like database use were added.
Mobile use and gameplay flow
The game table became more robust, compact and better prepared for touch controls.
- Bugs in the last round and gameplay flow were fixed.
- Rules, presentation and mobile use were revised.
- Card sizes and design spacing were adjusted for smaller screens.
- Several smaller stability and usability fixes were bundled.
Project start, game core, AI, sound and animations
Project start and first playable core belong together: the technical foundation became a Schwimmen table with rules, opponents and feedback.
- Initial Vite, React, TypeScript and Shadcn setup.
- Base structure for pages, components and styling was created.
- Game logic, round scoring and AI moves were integrated.
- Knock overlay, sounds and card animations were added.
- Engine behavior and rule edge cases were stabilized.
- Several work-in-progress commits were merged into a playable core.