r/starlancer • u/cinaed666 • 4d ago
OpenReliant 0.10: update notifications, and StarLancer's hidden script debugger brought back
For those unaware: OpenReliant is my open-source rebuild of StarLancer's engine. It runs the game on modern Windows, macOS and Linux using the files from your own copy, and it adds things the original never had, like any resolution, much better lighting and shadows, support for any controller, and mods.
Version 0.10 is out today. It's a smaller one: two new features and a handful of fixes. It's also the last release I'll announce like this for a while. More on that below.
OpenReliant now tells you about updates
From 0.10 on, OpenReliant checks for a newer version when it starts. If there is one, the main menu tells you once, and YES opens the download page. The check runs in the background and gives up after a few seconds, so it never slows down the start, even without an internet connection. It only asks GitHub which version is the latest, and sends nothing about you or your game. Don't want it? Untick CHECK FOR UPDATES on the VIDEO tab of the settings.
You'll need to update to 0.10 by hand this one time. After that, OpenReliant tells you itself.
StarLancer's script debugger, brought back
Here's a fun bit of archaeology. StarLancer's executable still has the code that let Warthog's own mission editor talk to the running game. The editor was never released, but the game's side of it is all still there: the editor could pause a mission, stop its script at a breakpoint, step through it, and even change the mission while it was playing.
OpenReliant brings that link back, and 0.10 comes with a small debugger that uses it: openreliant debug. Start the game with --editor-link, run the debugger in a terminal, and you can:
- set breakpoints in a mission's script, even before the mission starts
- step through it one statement at a time
- see the script's clock, threads and variables
- pause the whole mission, or run any part of the script on the spot
It works with the original missions and with your own. If you've ever wondered why a mission's trigger doesn't fire, this is for you. The guide shows how: https://openreliant.github.io/openreliant/docs/guide/debugging/
(For the technical folks: the original talked to its editor through a block of shared memory. OpenReliant uses a local network connection instead, so any program can talk to the game, on all operating systems.)
Fixes
- Saved games, pilot files and settings are now written safely: a crash, a power cut or a full disk while saving can't damage them anymore.
- Settings you change in the Reliant's rooms are kept when you close the window there.
- The engine sound and the radio stop when a mission ends.
- Warping no longer sends your ship's position off to infinity behind the scenes, which flooded the log with sound warnings.
- The pause menu's joystick and monitor icons are drawn solid, like in the original.
- For modders: a mod's license.txt and Markdown files no longer count as game files.
Smaller releases from now on
I'm going to stop working toward big milestone releases. I was pushing myself too hard to finish them and get them out. I'm not stopping: I'll keep going forward, just with frequent smaller updates and less fanfare. The net result should be many more smaller minor versions coming out, and less stress for me to get a promised milestone out the door.
That also means I won't announce every minor update here anymore. The update notification takes care of that now, and I'll only post about the big ones. The roadmap on the website has been updated to match: 1.0 and 2.0 are the two big steps, and everything in between comes in small updates.
What's next
The debugger is the first piece of something bigger: a proper WYSIWYG mission editor that hooks into the same link, so you can build a mission and see it in the game as you go.
Multiplayer is coming too, after 1.0. The plan is the original's game modes and rules over a modern network connection, in place of the DirectPlay the original used. A public matchmaking server will help you find games, so you can join without port forwarding, and you'll also be able to run your own dedicated server. Mods are already being written with it in mind: the scripting is split the way it will run in network games, so a mod made today that follows a few rules will work there too.
Sim pit folks: support for several controllers at once is on the list. Right now OpenReliant reads a single joystick, just like the original, so a throttle on its own plug, rudder pedals or a button box do nothing. The plan is to let each device do its own job: the stick for pitch and roll, the throttle and rudder from whichever devices have them, and the buttons of every device you plug in, all bindable in the game's controls screen. That covers HOTAS sets like the Thrustmaster Warthog, the Logitech X56, and most Virpil and VKB setups.
Further out, 2.0 is still the long-term goal: OpenReliant as a standalone engine that can run more than one game, with StarLancer always coming first, so other space games can be made with it or ported to it. Some work has gone into mapping and documenting the formats of related games already. sltool can now export models from Battlestar Galactica (2003, xbox) and import them into openreliant, for example.
Thanks
- LordBlacksun, for decoding how the original game talks to its editor. Those notes were the map for bringing the link back.
Links
- OpenReliant: https://openreliant.github.io/openreliant/
- Debugging mission scripts: https://openreliant.github.io/openreliant/docs/guide/debugging/
- Release notes: https://github.com/OpenReliant/openreliant/releases/tag/v0.10.0
- Report a bug: https://github.com/OpenReliant/openreliant/issues
You'll need your own copy of StarLancer. OpenReliant doesn't come with any of the game's files.
Buy me a coffee
If you'd like to sponsor my time on this project, I have a buy me a coffee account. It's completely optional, only if you're willing and able.
3
u/KP_Neato_Dee 2d ago
Thanks for your work! And I think this is a really wise decision. Burnout sucks, and as a person who does hobby projects, it's got to integrate into your full life in a healthy way or it's unsustainable.
Cheers!