Implementing Steam Cloud and Dark Mode


It has been a busy January, during which I accomplished a great deal on the WTF-Model.
Here’s an overview of the updates:

Keyboard Shortcuts

I integrated keyboard shortcuts and developed a dynamic, language-adjusting and mobile-friendly mouse-over overlay that fades in/out while hovering the Menu button.

Mouse-Over Keyboard Shortcuts

Dark Mode Implementation

Dark Mode was a major update, requiring extensive manual fine-tuning and coding in addition to basic CSS optimizations. If the user has App-DarkMode enabled in Windows settings, it will be automatically detected and applied as the default.

Dark Mode

Steam Cloud Integration

On the Steam/Valve front, I achieved full Steam Cloud integration using the Steamworks.NET SDK, a wrapper for the official C++ Steamworks DLL. This feature ensures current settings and toggles are saved and automatically loaded during the next app startup.

Steam Cloud Integration

A transparent cloud sync icon in the upper-right corner informs users about the current state of the sync.

Cloud Sync

In the Steam Game Options, users can view the saved cloud data -which should typically stay under 10 KB.
Users can also set their preferred language, which is passed via C#/JS interop into the app at startup.

Steam Cloud and Language Settings

The implementation of C#/JS interop for was straightforward and worked seamlessly. Have this code for reference:

C#/JS Interop Code Excerpt Language Setting via Steam and WebView2 WPF

I relocated the previously prominent language selection to the Options modal, making it more intuitive and appropriate. However i deemed it useful that the Steam User Setting will override any in App-Change at restart.

Language Selection moved to Options

Relativ Display Rework

I reworked the Relativ Display, now featuring toggle arrows on its sides. This improvement also included a cleaner CSS implementation.

Rework of Relativ Vortex

Developer Features

I also added developer arguments to the app, enabling features like a debug console and frontend DevTools.

Active Console and Dev Tools

Things are progressing well, and I’ll continue to keep you updated as I work on new features and improvements.

comments powered by Disqus