Luxtorpeda is a Steam Play compatibility tool (like Proton), that allows you to run various games on Steam with Native Linux game engines.
What's the point? Well, many games on Steam are old and no longer updated. However, a growing amount have community-build game engines that dramatically upgrade them and Luxtorpeda allows you to just install them directly in Steam. I previously did a guide on how to use it, and while focused on the Steam Deck the same applies to using it on a Linux desktop:
Direct Link
From what the developer told us in the GamingOnLinux Discord, here's what's changed in Luxtorpeda version 60:
* Move GUI to Godot, using godot-rust
* godot-rust allows for the underlying code for downloading, extracting, etc to stay the same in rust, and then allow for fairly simple communication between Godot and rust, using the Godot signal method. The Godot layer handles user input and the UI, and rust handles all the pieces behind the scenes
* This move makes maintaining the UI easier, with being able to use the many built-in Godot features and the editor
* Controller and window support, such as DPI, is now handled by Godot, instead of custom code on top of SDL2
* Instead of opening individual windows for each action (like choices, download progress, etc), one Godot window is used for the full flow until the game has closed, which should make the UI flow better
* Progress is now shown for install and setup steps, to make it clearer to the user what is going on
* [striezel] misc - fix a typo
* [striezel] Update crate dependencies
* [striezel] update actions used in GitHub Actions workflowThe big part of that is moving the UI to Godot, using godot-rust to keep all the logic inside rust. This was mainly to take advantage of Godot's easy to use editor and all the GUI tools available. This should make creating and maintaining UI easier. If you run into any issues with it, please feel free to open a issue about it or talk to me on discord.
For a quick example, with Morrowind in Steam set to use Luxtorpeda, you will see after downloading the UI that allows you to pick what to run it with:
I can see alot of people wondering the point of the move to Godot. I did put some explanation on the release notes above, but the main reason is making the UI easier to maintain. I had alot of custom code around controller support, detecting proper DPI for the window, and navigation with keyboard & controller for the UI, as well as the UI itself. Moving to Godot helps to eliminate a good portion of that code, relying on built in pieces of their UI toolkit. Godot is designed around games, which have alot of keyboard and controller input needs, where other UI toolkits generally except reliance on the mouse to navigate. Because of this, Godot was a good fit.
This move does make the download slightly bigger, because now the program is being built with godot, but it's much better than if the UI was done in something like Electron. There are some things that can probably be done to improve the download size as well, which I will plan on looking into.
It does sound like so far all the functionality seems to still be working as expected from what I've seen, which is good to see :)
First thing I noticed was that it quadrupled the size of the download. It's still on the small size, but made me wonder if there's a big Godot runtime statically linked in.
Yet another project thinks it's a good idea to use a game engine as an UI library. What next, a notepad in Unreal?
Also if you haven't completed Morrowind, do so now!!! OpenMW works like a charm, fully playable to 100% completion!
I can see alot of people wondering the point of the move to Godot. I did put some explanation on the release notes above, but the main reason is making the UI easier to maintain. I had alot of custom code around controller support, detecting proper DPI for the window, and navigation with keyboard & controller for the UI, as well as the UI itself. Moving to Godot helps to eliminate a good portion of that code, relying on built in pieces of their UI toolkit. Godot is designed around games, which have alot of keyboard and controller input needs, where other UI toolkits generally except reliance on the mouse to navigate. Because of this, Godot was a good fit.
This move does make the download slightly bigger, because now the program is being built with godot, but it's much better than if the UI was done in something like Electron. There are some things that can probably be done to improve the download size as well, which I will plan on looking into.
It does sound like so far all the functionality seems to still be working as expected from what I've seen, which is good to see :)
Thanks d10sfan for explaining the reasons too. I had to deal with electron apps and unpolished rust crates, neither experiences were fun.
Also, considering many parts of godot seems to be pretty modular, or at least possible to tear down, it's interesting to see you take this path.
Considering the tweaks and what's not reimplementations of game engines help with, it's really cool to see them brought to the masses out there. I do remember way back in 2005 trying to get some game on linux and failing to understand how the parts were split (ie art versus code) and such, so any helper tool here is godsend.
### 61.0 (2022-11-29)
Everything from Pre-release 60.0 plus
* Add theme for tooltip, to improve readability
* Fixes to github action workflows, for deprecated actions
* Build custom Godot export template, to decrease the size of the resulting build
See more from me