
=== OpenKropki history file ===


OpenKropki v0.6 [11 Sep 2026]
 - fixed post-game hang when key-repeat buried Esc in the event queue
 - leaving the board always joins a pending AI thread
 - silenced pedantic warnings on newer GCC/fortify builds
 - Viktor stronger: seeds candidates from Bender's surround intuition
 - Viktor leaf eval scores almost-enclosed groups by mouth (cutting set) size
 - Viktor scouts with milder /length^2 heat; Bender still plays /length^3
 - Viktor secures only real base fences to the wall (not every loose chain)
 - Viktor prefers an available capture over defensive short-circuits
 - Viktor avoids enemy cages in the late game; prefers remaining safe fills
 - prototype online play (PHP tmpfs lobby, OKP relay, fixed A5)
 - online: show when the opponent leaves; Resume is local games only
 - add a man page (kindly contributed by Friedhelm Mehnert)
 - keep the board and Esc responsive while the AI thinks (1-core CPUs)
 - Windows cross-build links libcurl (official curl-for-win zip)

OpenKropki v0.5 [11 Aug 2026]
 - new AI engine available: Viktor (strong tactical alpha-beta)
 - new AI engine available: Bender (fast surround-efficiency / territory)
 - ai.txt documents how every built-in AI thinks
 - lots of visual (cosmetic) improvements
 - default window ~90% of desktop (clamped ~900x600..1600x1000)
 - default zoom fits the board in the window (middle-click resets to that)
 - window/zoom defaults respect display DPI (with a safe 96 DPI fallback)
 - fixed Dumbo softlock as Player A (was hardcoded as P2) and a memory leak
 - fixed undefined behaviour after game end (nextplayer==0 still handled)
 - kropki_okp2struct() rejects invalid sizes / OOM (corrupt resume no crash)
 - check wall / game-copy allocations for OOM instead of crashing
 - Tigran: abort safely when kropki_copygame() returns NULL
 - AI applies moves on the main thread (worker only computes coordinates)
 - prefs_load / getfname check malloc/realloc failures (no OOM crash)
 - kropki_struct2okp() checks realloc failures when growing the wall list
 - loadgzbmp: handle failed BMP decode; fix window-icon NULL check
 - nicer ring to mark the dot last placed on playfield
 - smooth anti-aliased dots with a short pop-in animation when placed
 - German UI translation (Deutsch), with language autodetection
 - AIs are portrayed with fun faces in the selection menu

OpenKropki v0.4 [19 Nov 2020]
 - human vs human (on same computer) and AI vs AI games are possible
 - new AI engine available: Tigran
 - new "settings" menu
 - bases are shaded so it's clear who owns them (can be disabled in settings)
 - sound can be disabled through the settings menu
 - resumable games survive an application restart
 - menu width & height limited to avoid stretching it too much on huge screens
 - default zoom increased because I'm old (can be changed with mouse scroll)
 - right click centers view on last move (instead of playfield's center)
 - right click no longer resets zoom: middle click does that now
 - playfield is never allowed to be swept completely outside the screen
 - invalid moves trigger a buzzer sound
 - multilingual UI: Czech, English, French, Polish, Russian
 - using zlib for deflate operations instead of embedded tinfl code
 - mouse cursor stays at the same place of the playfield when zooming
 - AI is slightly delayed to not answer faster than 0.5s (feels more natural)
 - program communicates with AI using OKP (OpenKropki Protocol) strings
 - optimizations in playfield processing routines

OpenKropki v0.3 [21 Sep 2020]
 - simple sound effects
 - configurable playfield size
 - ESC key handling: goes back to main menu
 - added a hand-made 'dots' graphic to front screen
 - added a wood-style background under the playfield
 - UI stays useable while AI thinks (user can still scroll, zoom or quit)
 - license terms changed from BSD 2-clause to MIT
 - right-click restores default zoom
 - multithreading becomes mandatory
 - AI speed-up: analyzes only positions at the vicinity of the last move
 - added a titlebar icon
 - major code reorganisation, cleanup and architecture redesign

OpenKropki v0.2 [17 Mar 2015]
 - stronger AI
 - AI's use multithreading for faster computation
 - slight graphic optimizations
 - added an application icon
 - dropped the dependency to SDL_gfx

OpenKropki v0.1 [1 Mar 2015]
 - first public release
