Preferred Update Check Design

I am in the process of re-building the auto-update for Special K, and it occurred to me I have a few options this time around.

Steam was designed so that you basically had to launch SKIF before it would update (the client knew about updates, just didn’t apply them unless you launched Special K’s companion app)

Special K itself was originally designed to check for updates when you launch a game, because this was intuitive for standalone game mods.

  • Update check performed when launching SKIF (Steam-style)
  • Update check performed when launching a game (OG SK-style)
  • Update check must be manually requested

0 voters

The first two have their individual merits in my opinion; I use Global Injection with the services started at Windows logon and rarely open SKIF. If I weren’t the one actually coding these updates, I know I would be best served by auto-update at game launch rather than SKIF launch.

Anyway, it is really up to the community to decide / chime in. I know what I prefer, but I am not the entire user base :stuck_out_tongue:

1 Like

I dread the update check on launch of a game, as it caused quite the headaches for me whenever it was faced with a game that still engaged a window that prevented the user from interacting with either window.

/If/ you do an update check on game launch the it should preferably follow the following:

  1. Don’t perform the update through the game itself (like, really, that was like the cause of soooo many headaches and issues of that design). Instead instructs the user to perform it through SKIF.

  2. And don’t actually use a separate prompt/window to tell users of a pending update. Instead use the startup banner of Special K in the game, and/or a notification in the in-game SK control panel.

Ripping out update functionality from Special K itself and handling it through SKIF is honestly for the best.

I’m going to be the one guy for manually requested checks, though the way i see it, you can have a prompt/notif in the SKIF window, when there’s a new update. You don’t have to re-launch SKIF each time to check updates.

Perhaps that combined with a notif in the SK control panel as Aemony suggested would work?

Same, I’m with you on this one. The manually triggered update check (at least as an optional behavior) seems like a winning choice to me.

When SK works, it just tends to continue working, so an update might not always be desirable. Folks really should get the choice of updating to the latest whenever possible, and of course, it must be made clear that only and exclusively the latest version is supported.

I would be for an update outside of the game too but with a notification on the start of a game that an update is available. I don’t really need it to be updated via the game and I don’t mind launching SKIM as an extra step. But I would forget to check for updates so I am for Aemonys idea there too.

Okay, my plan was to re-write the update code using ImGui. I should be able to put it in either SKIF or Special K.

The reason it’s always been in Special K itself is so that deployments using just a Special K DLL in a game directory could still utilize update features. The Steam version of Special K changed all of that, since for the first time I could be fairly certain that the majority of the userbase would have SK’s companion application installed instead of just loose copies of Special K DLLs strewn around randomly in game directories :wink:

I don’t know if you remember, but there used to be an “Update” menu in SK’s control panel that showed available branches and version info. I can either move that completely to SKIF or keep the functionality there but require users to exit the game and schedule an update on next application launch.


In any case, the original design that used Windows UI and was problematic for you is going away. Using ImGui means the update dialogs will be rendered in whatever graphics API an application is using and will not behave like a separate Windows dialog.

I voted for “on game launch”, but I think the option I’d really prefer wasn’t available: I don’t launch SKIF often, like Kalaiden said in the first post, so that won’t get me update notifications.

If SKIF added a scheduled task to do that check in the background, silently, once a day… that’d be just as good. All I really want is to have it prompt me to update without my needing to do something “special-k specific” to make it happen. (and launching SKIF is “special-k specific” in my mind.)

OTOH, https://winsparkle.org/ isn’t actually that annoying as update notifications go, even in apps where I am 200 percent not going to restart them to install the update, so… there is that.

I’m starting to think auto-update itself is stupid. A simple manual version check / periodic notification would probably serve 98% of the community using the software just fine, they can deal with micromanaging versions.

The way things have turned out, there tends to be a specific release version that’s been tested for individual games anyway and my job should just be to archive the entire version history in these forums and on my GitLab server.

It’s about time I stop making stuff way more complicated than it needs to be :stuck_out_tongue: