Nobody has to guess anymore
The big theme of this release: a first-time user should never have to wonder whether something is working, finished, or stuck.
- Installs tell you where they are. The progress sheet now shows an explicit success state with a next step ("Engine ready — Create your first bottle"), how long the task has been running versus how long it usually takes, and a liveness signal driven by real output.
- Slow steps say so, while they run. .NET Framework 4.8 takes 20 to 40 minutes and looks frozen; Steam's first boot takes 15 to 25. The app now says exactly that, during the step, instead of leaving it to the README.
- Steam's first launch shows progress instead of silently looking hung for 20 minutes.
Epic games are first-class now
- Epic titles get the same artwork cards as Steam games — cover art, hover Play, one visual language — instead of plain text boxes.
- Install state is per bottle: a game installed in one bottle no longer shows "Play" in another where its files don't exist.
- Epic launches use the bottle's renderer (right-click a game for the full renderer menu).
- The misleading "Install Epic Games" tile is gone: that launcher can't work under Wine (#14), and the supported path — Connect Epic account, via the open source Legendary client — is now the only story on screen.
Fixes
- Installing .NET Framework no longer leaves the bottle on Windows 7 (which made Steam show an end-of-support banner). Recipes can now restore the Windows version, and the .NET recipe does. (#31 family)
- Recipes no longer silently override a renderer you chose explicitly — your choice wins, and the recipe says so in its notes. (#29)
- CLI:
highball epic listshows where each installed game lives.
Verified this week on this engine, with the compatibility database updated to match: Assetto Corsa (150–170 fps, M1 Pro, D3DMetal — needs the .NET dependency). Portal 2 is not reliable yet on the current engine and its database entry says so honestly (#34 tracks the engine-level fix).