There was a previous launcher called PowerPatcher that a lot of people used. Recently however, the game developer changed the way the game receives it's patches which rendered PowerPatcher and other alternative launchers dead.
I decided to make my own launcher with the fixed patching method based of of PowerPatcher.
What it does
This launcher will start the game as well as keep it up to date. With Plugins a user can write a module out to add additional functionality into the launcher.
It allows a user to manage multiple installations of the game (which is common) as well as multiple accounts.
How I built it
Since this was a fork of PowerPatcher, most of the core code was already built but a lot needed to be changed. The original launcher used WInForms and relied on the AddIn framework in order to load plugins.
I converted the launcher's UI to Windows Presentation Foundation (WPF) and changed the plugin system to use the Microsoft Extensibility Framework (MEF) instead.
To prove just how powerful MEF is, I actually separated all of the patching logic in a plugin which is included when you download the launcher.
Challenges I ran into
The biggest thing was getting it converted to WPF. The way WinForms worked compared to WPF required a lot of code to change.
Accomplishments that I'm proud of
The biggest things are the patching logic as well as the fact that most of the launcher operates asynchronously using the Task Parallel Library (TPL)
What I learned
I learned a lot more about WPF than I thought I originally knew and I also learned a lot about TPL.
What's next for Hyddwn Launcher
I plan to rewrite this launcher using some of the newer WPF practices such as Model-View-Viewmodel (MVVM) and help improve it's perfrmance and ease of use.