SamuKata
LANCommander
LANCommander

patreon


LANCommander v1.0.0

It's finally here! The first full release of LANCommander is live and available to download RIGHT NOW!

https://github.com/LANCommander/LANCommander/releases/tag/v1.0.0

This was probably the largest shift in the codebase since the start of the project (almost two years at this point!). As such, I have a lot of thoughts so let's dive right in.

Playnite Extension Deprecation

As indicated in previous posts and releases, v0.9.x was the last version to support the Playnite extension. There will no longer be any further development and it is incompatible with v1.0.0. For reasons we'll get into in a minute, this was a necessary change for the project. As of now the extension has been moved out of the main git repository and separated into its own project.

https://github.com/LANCommander/LANCommander.PlaynitePlugin

While I have stopped any development on it, any contributors are welcome to continue where I left off. The extension might see some official support again in the future, but I believe it would require the release of Playnite 11 as it's going to be built on .NET instead of .NET Framework. I'm looking forward to seeing how that project turns out and can't wait to see what Josef comes up with.

Under the Hood

With v1.0.0, much of the major functionality that the launcher uses has now moved to the SDK assembly. While this is transparent from an end-user standpoint, this effectively means that anyone could write their own launcher or wrapper while relying on the SDK to handle routines such as game installs, script executions, save game uploading/downloading, etc.

Additionally, script execution was something that previously held the project quite a bit. Previous implementation of the scripting runtime was hacky at best. At a high level, scripts were downloaded from the server on game install and then fed to `PowerShell.exe` with some baked in variables. This caused two primary issues. The first issue was security with PowerShell execution policies. The second issue was that this method of execution effectively locked LANCommander clients to Windows only.

Both of these issues are no longer relevant as the SDK now has an embedded PowerShell runtime. This should mean less friction getting games to run, better compatibility overall with PowerShell, and cross platform support for the SDK and CLI.

Cross Platform Support

Builds for x64 macOS have now been added for both the launcher and server for those that need it.

Launcher support for Linux and macOS is still considered experimental and honestly probably doesn't work. This is an outstanding issue with the UI framework that the launcher uses and the resolution is unknown at this time. The CLI, however, should work on these platforms!

Command Line Interface

Oh yes, did I forget to mention that LANCommander as a CLI that is distributed with all versions of the launcher? This is mainly designed for people who may want to automate the process of installing or importing games, but it's also required to run some scripts that require admin access. More information about the CLI can be viewed over at its documentation page.

Documentation

Oh boy, another sneaky update! Documentation has been revamped now lives over at:

https://docs.lancommander.app

This will likely replace the wiki in the future once I figure out a good path to allow user-publishable game configs. For now the most important pieces are documented and up to date. Some areas will need to be expanded upon, but that will happen soon!

Release Notes

Finally, let's hammer out these release notes. Here's everything that's changed since v0.9.1:

Server:

Launcher:

Breaking Changes

Detect install scripts for redistributables have been slightly reworked and thus has introduced a breaking change where you will need to update these scripts. Where an exit code was previously supplied, now the variable `$Return` must be set. See the documentation for more details.

Final Thoughts

First of all, a huge thank you to the community and anyone who has contributed to the project. Whether it was a pull request or testing a build or submitting an issue, it's extremely hard to field everything in a project of this size as one person. I also want to thank all of the supporters and Bawlers out there who are subscribed here on Patreon. At this rate, LANCommander won't offset the time I've put into the project for a couple of lifetimes, but seriously every little bit helps. So far I've been able to pay off some licensing costs and get myself a case of Bawls. Thank you thank you thank you!

Work is far from done, but I will be taking a bit of a break from heavy features for a few weeks as we start to edge towards LAN party season. Now that we're on a modern platform across the board, there is the serious potential to start adding some pretty impactful features to the platform. Features like one-click VPN access, emulator support, handheld mode, etc. are all somewhere on my radar. I'm getting ready to move past what I've considered the "bare essentials" and start working on all these fantastic features that really aren't seen anywhere else.

That's enough for now. Go grab some friends and bring back the LAN!


More Creators