Launcher 2.0

I’ve wanted for quite a while now to redo the launcher. This is mostly due to two factors: Electron (the framework used for the launcher) becoming more and more outdated in terms of what packages can be used (here’s an issue open since 2019, which the Electron devs have not solved), and also they regularly deprecate features. One big thing they seem to want to deprecate is the use of native NodeJS modules in the browser process. The launcher heavily relies on that feature so if it was ever fully removed it would require a massive rework of the launcher anyway. The second big reason is that it would be nicer to work in a programming language that isn’t JavaScript.

So I’ve wanted to redo the launcher for a year or two at this point, and I’ve been dabbling in that a bit over the past few months. I’ve now decided to pull the trigger on this and released the last 1.x release that’ll say on there being a new launcher version to manually install it. The new launcher code is for the time being on a separate branch.

The new launcher is made with the Avalonia framework and written in C#. In addition to being a nice statically typed language, using C# allows code sharing between the launcher and the devcenter (also the helper scripts share code between Thrive, launcher, and DevCenter) using a shared repo.

The current status is that I’ve got most of the GUI layout done and implemented some of the basics like the news feeds (parsing the HTML to a way displayable in Avalonia is pretty difficult), links menu, most of the options menu, Thrive version info retrieving. I hope to complete the launcher updates before 0.6.0 and put stuff like the news feeds also into Thrive as the launcher 2.0 will have a seamless mode (launcher isn’t shown before Thrive starts) for the game stores version. I’ll also try to correct various issues and small problems with the previous launcher in addition to just reimplementing all the features.