Your Majesty,
This update adds the first proper background music system to I WAS A KING and stabilizes the Windows / Linux Steam GUI build pipeline around it.
The biggest change is the introduction of adaptive BGM. The game no longer relies only on text, background art, and UI atmosphere. Music now changes according to the state of the realm. The opening phase, peaceful court management, and national crisis states each have their own musical mood.
The current music mapping is simple and deliberate. The opening track is used when a new reign begins and the first court session opens. The calm track is used during stable peacetime governance. The danger track is used when the realm begins to collapse, such as when public morale falls, rumors spread, the treasury weakens, royal authority declines, administrative control breaks down, or crisis conditions begin to emerge.
Music transitions now use fade handling so that tracks do not cut abruptly. The goal is not to make the music overpower the text, but to make the court feel alive. A peaceful realm should feel steady. A failing realm should feel tense before the numbers even finish explaining why.
This update also resolves an important build issue. Earlier attempts to include BGM through pygame ran into compatibility problems with the newer Python build environment. In particular, the Windows build could fail when pygame did not provide a suitable wheel for the selected Python version and pip fell back to a source build. The build Python version has now been adjusted to a more stable version for pygame compatibility, allowing the music backend to be included successfully in the Steam GUI build.
The architecture remains clean. The payload does not play music directly. It only emits music mood signals based on the current game state. The Python/Tk Royal GUI receives those signals and handles playback, volume, looping, and fade transitions. The C# Steam Host remains responsible only for Steamworks.NET initialization, achievements, stats, and process supervision.
In other words, BGM has been added without moving gameplay logic into the GUI and without moving Steam logic into Python.
Music assets and source records are now included in the game package. The current package contains opening, calm, and danger tracks, along with source and credit files. This should make future music replacement or expansion easier while keeping attribution and source tracking organized.
The build scripts have also been refined. Windows and Linux builds now use dedicated virtual environments for the Python build toolchain. This makes the build less dependent on the system Python installation and reduces the chance of package conflicts from other projects. The Steam user still does not need to install Python manually; the packaged build contains the required runtime.
Several existing systems were preserved. The 300-issue CSV agenda pool remains unchanged. Choice balance values remain unchanged. The save format remains unchanged. The Steam achievement bridge and profile synchronization remain unchanged. Restart behavior still forces a new reign instead of loading the existing save. The staged typewriter queue, manual status command, and automatic status text suppression are also preserved.
This update improves the first-session experience significantly. The player now enters a court that has sound, atmosphere, and state-aware mood shifts. The opening court session feels more ceremonial. Stable governance feels calmer. A collapsing realm now becomes audibly more dangerous.
The core achievement of this update is straightforward: music is now in the game, the build works with music included, and the existing game architecture remains intact.
The next focus will be music balance testing, crisis transition timing, volume tuning, and final Steam achievement verification.
Your reign is no longer recorded in text alone.
The court now has a sound of its own.
