v0.9.0 Development Updates
Added 2024-07-29 05:01:28 +0000 UTCIt's been a month since the last post, so let's dive into where LANCommander is at and the recent developments!
Launcher
This update will usher in the first full release of the LANCommander Launcher! The launcher will have the same feature set of the Playnite extension, but future iterations will unlock the ability to introduce bigger and better features. As mentioned previous, this means that v0.9.0 will be the last version to support the Playnite extension. We'll get into that more later, but here's a screenshot of the current dev build of the new launcher:

Many design choices were made to build a launcher that's simple and familiar. The application is built using Blazor (the same framework used for the server) on .NET 8. Blazor is a web framework, which means that what you see in the screenshot is all HTML/CSS in a single-app browser wrapper. However, the decision was made to not use a heavy wrapper like Electron. Instead, the app is powered by Photino which uses the operating system's built in web view to render. This means the total download size for the launcher's ZIP is around 80MB.
Performance is pretty good, but certainly can be improved. I've noticed RAM usage (which really shouldn't be scrutinized that much) sits around 200MB-500MB on my system. Most of this usage actually comes from loading the image assets for the games, so there may be some optimization tools that make it into the server side down the line.
Additional Media
v0.8.0 added the ability for you to upload additional media for a game, specifically game logos and manuals. These are supported by the new launcher (indicated by the screenshot above for the logo, and for the manuals there is a built in PDF reader) and can be added in the same interface on the server as the other media. Some improvements have also been made to the media grabbers where media can be grabbed directly from Steam's store pages. As the project progresses, I can definitely see more media such as screenshots and videos being added as available media types.
Playnite Extension Deprecation
v0.9.0 will be the last version to support the Playnite extension. There are more than a few reasons for this, but it really comes down to growth and the limitations .NET Framework. I mention growth because I believe that Playnite and LANCommander just have completely different objectives. I also think that LANCommander, er, commands a tighter integration between player and administrator/server in order to achieve a seamless experience.
Technology wise, Playnite 10 is built using .NET Framework which in the .NET space is considered by many to be ancient. This has stifled development of some features in LANCommander including cross-platform support, chat/friends, and VPN integration. This is not to say it's Playnite's fault, the world has just moved on from .NET Framework. And Playnite is moving on as well, as Playnite 11 is moving onto a modern version of .NET. If you want to follow development, I highly recommend supporting Josef over at his Patreon:
https://www.patreon.com/playnite
His work has been stellar thus far and I can't wait to see what he has cooking! From what has been discussed so far, I really appreciate how calculated and intentional his development process seems to be.
For LANCommander, v1.0.0 will see a separation of the codebase of the Playnite extension into a new GitHub project and removal from the main project. I will gladly accept contributors for anyone that would wish to maintain the extension.
Toolkit
Work has started on a complementary toolkit to LANCommander that will ease the pains of preparing games for your own server. The initial plan is to create an application that can record all of the files and registry keys that a game installer may create/update. This recording can then be uploaded directly into LANCommander. This should make it very easy to add new games to your library without needing an in-depth knowledge of PowerShell scripting or using tools like procmon to find every resource a game may use.
I'm hopeful that an initial form of this toolkit will be usable by the time v1.0.0 is due for release. The intention is to distribute this tool via a paid Patreon tier. This is the first time I will be restricting access to part of the LANCommander platform behind a paywall. This is a strategy to recoup some of my time put into the project as a whole and I would like to stress that this does not mean LANCommander itself will become a paid product. The core of LANCommander and the launcher will always be free and open source.
Cross-Platform
Some of you may have noticed that more builds for more architectures and platforms have been making their way into releases. As the project is built atop .NET 8, LANCommander has the potential to be ported to other platforms with almost no additional code required. Starting with v0.9.0, builds for the following platforms will be included in every release:
Windows x64
Windows arm64
Linux x64
Linux arm64
macOS arm64
These builds will be included for both the server and launcher. However, please note that anything but Windows x64/Linux x64 for the server and Windows x64 for the launcher are the only "supported" builds at the moment. Every other build should be considered experimental. Specifically for the launcher, there are quite a few issues with dependencies where running on anything but Windows probably will just not work. This should hopefully improve as time progresses.
Upcoming Development
So we're close to a v0.9.0 release and v1.0.0 is coming soon. Here's a general breakdown of what you can expect or what I'm hoping to accomplish:
v0.9.0
New launcher
Logo / manual support
Experimental cross-platform builds
v1.0.0
Retirement of Playnite extension
Embedded PowerShell runtime (huge potential for cross-platform)
Toolkit for packing new games
Potential Future Features
Chat / friends list
Guest mode (allow limited use without an account)
VPN integration
Game server integration with Docker
Invite system
What I'm Playing/Reading
It's been a bit! We're in the middle of summer so I haven't been playing many games, but here's some stuff that's been occupying my time:
Carmageddon Max Damage
This is my second time going through the game. I've always had a soft spot for Carma games. This one didn't get stellar reviews, but as a Carma fan I love it. There's parts that are repetitious, but it's got that good balance of taking a classic formula while adding a new spin on things.Baldur's Gate 3
I've always had a pretty big aversion to turn-based games. I started playing through Baldur's Gate 3 with my brother, and it's been... an experience. Neither of us are big into D&D, so most of the time we're just trying to deal with the information being bombarded at us. We're maybe ~6 hours in and trying to level our way up to go to the goblin camp. Talk about a dense game!Control Freak: My Epic Adventure Making Video Games - Cliff Bleszinski
I'm not a big reader, but I've been loving these titans-of-game-dev autobiographies. Last year I did Doom Guy, Romero's memoirs. I went through CliffyB's the weekend of Open Sauce. Absolutely worth reading to get a peek behind the curtains of one of gaming's first rockstar. Seems like a cool dude, would love to frag him at a LAN sometime.Sid Meier's Memoir!: A Life in Computer Games - Sid Meier
The second I finished Control Freak, I picked this up. Again, I was never much into turn-based, so I never played Civilization. However, I did play a lot of SimGolf. This was a great read as well and I think I may just have to try some Civ this winter.