# I WAS A KING — Cumulative Update Notes V30.27 ~ V30.63
Your Majesty,
Over the recent update cycle, I WAS A KING has received a major series of improvements across the Royal Court GUI, Steam integration, playable demo builds, achievement handling, readability, Linux/Windows packaging, and the Steamworks runtime layer.
This announcement summarizes all major updates from V30.27 through V30.63.
The main focus areas were:
1. Major readability and visual polish for the Royal Court GUI
2. Linux / Windows Steam GUI runtime stabilization
3. Dedicated playable demo build support
4. Diplomacy / Help / Petition / Court document UI cleanup
5. Achievement condition and Steam Achievement Bridge improvements
6. Steamworks native runtime packaging fixes
# Major Changes
## Royal Court GUI Overhaul
The largest visible change since V30.27 is the Royal Court GUI.
The previous interface was functional, but it still felt close to a developer console or terminal-based game. The new GUI has been revised to feel much more like a royal court screen.
Improved areas include:
- Royal court background images
- Unified royal top bar
- Left and right court information panels
- Improved state dashboard readability
- Cleaner input field and message card layout
- Dedicated document-style rendering for Help and Diplomacy
- Torch-themed scrollbar
- Global transparency control
- Background brightness, saturation, and contrast adjustment
- Dynamic message card height for long text
```
From V30.58 to V30.60 especially, background tone, transparency, card height calculation, and the Trans control were refined heavily. The overall readability of the game screen has improved significantly.
## Steam Achievement Integration
A major issue with Steam achievements has been addressed.
Previously, the game could calculate achievement conditions internally, but the C# Steam Host did not always receive a reliable achievement unlock intent.
Starting with V30.61, the achievement path is now structured as follows:
payload / game core
→ [IWAK_ACHIEVEMENT_JSON] semantic token
→ Python/Tk Royal GUI relay
→ steam_bridge_events.jsonl
→ C# Steam Host
→ SteamUserStats.SetAchievement()
This means that achievements based on metrics, endings, and player behavior can now be passed to the Steam Achievement API through the intended bridge.
## Steamworks Native Runtime Packaging
A Linux Steam build issue was also addressed.
The Linux depot was missing `libsteam_api.so`, which is required by Steamworks.NET for achievements and stats. Without this native runtime file, Steam API initialization could fail at runtime even if the C# host compiled successfully.
V30.62 added detection for this issue.
V30.63 then moved the Steamworks redistributable native runtime into a fixed bundled project path.
The Steam GUI builds now include:
Linux: libsteam_api.so
Windows: steam_api64.dll
This completes the native runtime layer required for Steam achievements and stats.
# Version-by-Version Notes
## V30.27 — Relaunch / F4 Help / Steam Bridge Patch
- Improved Royal GUI relaunch flow
- Cleaned up F4 Help behavior
- Improved Steam Bridge foundation
- Strengthened runtime flow between GUI and Steam Host
## V30.28 — Playable Steam Demo Limited Build
- Added Steam demo runtime mode
- Added 5-turn playable demo structure
- Added per-device demo play limit structure
- Separated demo profile behavior from the full version profile
## V30.29 — Dedicated Playable Demo Build Files
- Separated full build and demo build files
- Improved Linux / Windows demo packaging flow
- Strengthened Steam demo deployment structure
## V30.30 — Petition Internal Token Hide Patch
- Fixed internal issue keys, slugs, and metadata appearing in petition text
- Cleaned player-facing petition output
- Separated internal tokens from visible game text
## V30.31 — Agenda Pool Expansion and Korean Prose Polish
- Expanded court agenda and petition pool
- Added 36 auxiliary agenda items
- Improved Korean prose quality
- Reduced repetitive agenda exposure
## V30.32 — Royal Dossier Readability / UX Patch
- Improved readability of document-style Royal GUI screens
- Adjusted visual hierarchy for state documents and information screens
- No gameplay rule, save format, LLM, or Steam architecture changes
## V30.33 — Clean Readability UX Reset
- Rolled back overly heavy visual elements from V30.32
- Rebalanced UI toward a cleaner readability-first direction
- Reduced console-like visual weight
## V30.34 — Royal GUI Visual Lock Patch
- Locked the core visual direction of the Royal GUI
- Established baseline style for background, panels, text, and input area
- Set the visual reference point for later GUI patches
## V30.35 — Torch Scrollbar + Unified Topbar UX Patch
- Added torch-themed scrollbar
- Unified the top bar
- Adjusted background brightness
- Improved upper control and royal court header UX
## V30.36 — Language / Background / Advisor / Textbox UX Patch
- Fixed remaining Korean UI text in English mode
- Localized message card speaker labels
- Adjusted background brightness
- Relaxed advisor prompt behavior
- Improved input field and textbox boundaries
## V30.37 — Lower Panel Box Settings Rollback
- Rolled back part of the lower panel box treatment
- Restored a more stable V30.34-style visual baseline
- Preserved torch scrollbar and top bar improvements
## V30.38 — Uniform 15% Box Transparency Patch
- Unified UI box transparency behavior
- Fixed overly transparent-looking Tk stipple behavior
- Standardized major dark UI boxes around 15% transparency / 85% opacity
## V30.39 — Glass Ornament UX Lock Patch
- Applied glass-panel UI direction
- Strengthened royal ornament lines, panel borders, and glass-like presentation
- No gameplay, save, LLM, or Steam architecture changes
## V30.40 — Real Glass Header / Panel Alpha Fix
- Fixed the top area still appearing like an opaque black panel
- Replaced opaque Frame/Label top bar rendering with Canvas-based rendering
- Improved the real glass appearance of the header
## V30.41 — Rail Bounds + Glass Tuning
- Adjusted default panel transparency
- Aligned the central scroll rail area
- Cleaned up vertical boundaries between reading band and torch scrollbar
## V30.42 — High Transparency + Left Output Bounds
- Increased overall panel transparency
- Added dedicated top and bottom bounds for the left output stream
- Made the message output area blend more naturally with the background
## V30.43 — Output Box 80% Transparency
- Further adjusted transparency for the left output and document stream
- Reduced the visual weight of output cards
- Improved the balance between background and text readability
## V30.44 — Royal GUI Glass Renderer Refactor
- Unified scattered transparency logic into a role-based glass renderer
- Added draw_glass_panel()
- Managed panel alpha through panel_alpha_for_role()
## V30.45 — Scene-Composited Glass Renderer Fix
- Fixed the root cause of glass panels still appearing as black boxes
- Added dark glass overlay composited over the actual scene crop
- Reduced Tk native background interference with alpha-style rendering
## V30.46 — Output Glass Layer Fix
- Fixed multiple dark boxes stacking in the left output area
- Cleaned up broad reading underlay and message card fill overlap
- Reduced output area visual heaviness
## V30.47 — Output Layer Unification
- Simplified output card layer structure
- Clarified the roles of header, body, border, and accent line
- Reduced stacked rectangle appearance
## V30.48 — Remove Output Shadow
- Removed output card shadow
- Reduced unnecessary dark residue
- Made card structure thinner and clearer
## V30.49 — Remove Inner Output Rectangle
- Removed the extra dark rectangle inside left output cards
- Reduced the terminal-box appearance of message cards
- Improved output area transparency
## V30.50 — Document Tab No Terminal Card
- Fixed Diplomacy and Help tabs using the message card renderer
- Added separate document page rendering for document-style tabs
- Removed the large black terminal-card appearance from document tabs
## V30.51 — Glass Pipeline Root-Cause Fix
- Fixed incorrect scene image attribute usage in the glass compositor
- Cleaned up real background crop-based glass rendering
- Improved Diplomacy and Help tab rendering order
## V30.52 — Remove Left Output Underlay
- Removed the broad underlay behind the left output area
- Placed the court stream directly over the scene background
- Re-centered the output design around header, border, and accent lines
## V30.53 — Global Transparency + Residue Cleanup
- Added global transparency parameter
- Added Trans control to the lower-right control cluster
- Cleaned up remaining black and brown visual residue
## V30.54 — Weighted Global Glass Unification
- Connected Trans value to the full GUI
- Added role-based transparency response
- Unified top bar, dashboard, input, and output transparency behavior
## V30.55 — Native Black Residue Cleanup
- Cleaned up black residue from Tk native widgets
- Improved tint handling for buttons, input field, and controls
- Removed hardcoded black widget backgrounds
## V30.56 — Trans Fallback Pipeline Fix
- Fixed fallback behavior that could recreate black boxes after scene crop failure
- Removed synthetic black fallback panels
- Stabilized the transparency pipeline
## V30.57 — No Solid Fallback Fill
- Fixed black boxes reappearing at low Trans values
- Removed solid fill from fallback paths
- Changed fallback behavior to outline-only rendering
## V30.58 — GUI Asset Tone Pass + Transparency Min Tuning
- Applied a tone pass to GUI background and UI assets
- Brightness reduced by 50%
- Saturation reduced by 15%
- Contrast reduced by 10%
- Adjusted minimum Trans value
- Reduced visual conflict between background and text
## V30.59 — Dynamic Output Card Height
- Fixed long advisor text overlapping outside message cards
- Replaced character-count height estimation with pixel-width-based wrapping
- Message cards now expand dynamically based on rendered text length
## V30.60 — Linear Trans Control
- Fixed non-linear feeling in Trans control
- Removed role weight / clamp saturation behavior
- Simplified the model to overlay opacity = 1.0 - Trans
- Made the entire screen respond to Trans using the same visual curve
## V30.61 — Steam Achievement Bridge
- Added Steam achievement intent bridge
- Added [IWAK_ACHIEVEMENT_JSON] semantic token
- Strengthened payload → GUI → steam_bridge_events.jsonl → C# Steam Host → SteamUserStats.SetAchievement() path
- Fixed end-of-run achievements not reliably reaching Steam
- Improved ENDINGS_FOUND stat bridge behavior
## V30.62 — Linux Steam Native Runtime Packaging
- Investigated missing libsteam_api.so in Linux depot
- Added checks for the Linux native runtime required by Steamworks.NET achievements and stats
- Addressed the risk of Steam API initialization failing due to missing native runtime
## V30.63 — Bundled Steamworks Native Runtime
- Bundled Steamworks native redistributable runtime under a fixed project path
- Included Linux libsteam_api.so
- Included Windows steam_api64.dll
- Removed external SDK search logic from build scripts
- Stabilized the runtime foundation for Steam achievements and stats
# Current Architecture
As of V30.63, the runtime structure is now clearer:
Python/Tk Royal GUI:
- Main game screen
- Input
- Panels
- Documents
- Background rendering
- Semantic token relay
payload / game core:
- Game rules
- State metrics
- Achievement conditions
- Endings
- LLM dialogue generation
C# Steam Host:
- Steamworks.NET initialization
- Steam achievements
- Steam stats
- Launcher/runtime supervision
Steamworks native runtime:
- Linux libsteam_api.so
- Windows steam_api64.dll
AI still does not judge gameplay outcomes.
Player decrees are processed by the deterministic rule engine.
AI is responsible for advisor wording, court flavor, and dialogue.
# Developer Note
This update cycle was not just a series of small bug fixes. It was closer to finalizing the product shape of I WAS A KING.
Earlier GUI builds were functional, but still looked too much like a terminal game or a developer tool. Since V30.27, the Royal Court GUI has been reshaped into a more coherent game screen with background art, court panels, state dashboards, document tabs, input controls, and Steam achievement support.
The most important issues addressed were:
- Text readability
- Visual conflict between background and UI panels
- Help / Diplomacy tabs appearing like terminal cards
- Long output text overlapping message boxes
- Non-linear transparency control behavior
- Missing achievement bridge path
- Missing Steamworks native runtime
Next, the focus will be on stability, achievement verification, advisor voice differentiation, demo quality, and overall first-session polish.
May your reign thrive.
