#163 (closed) caused me some frustration, made worse by the fact that you can't have you messages open and log in at the same time.
I think a much more streamlines approach is that instead of giving you a password, a key is automatically added to your key ring, so you only need to enter the (short) username to log in.
Other than that I really enjoyed the game. I'm eagerly waiting for more missions and things to do. I'm not sure how linear/open world it will be, or how much puzzle/automation focused it'll be, but it'll be fun. It's like Kerbal Space Program, TS-100, and EVE Online all mixed together.
Actually, two things I'd love to see you steal from KSP are fast-forward and target position at next intercept.
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related.
Learn more.
Thanks. I think that a keypair system is a great idea, though ideally a new editor mode (similar to the mail client) would need to be added to list the keys along with where they were intended to be used. Would love to take a patch for that, otherwise I'll add it to the list to implement for the next beta.
My original intent was that you would be able to copy and paste between emails and the login prompt, but I just noticed that those edit commands are currently broken in the minibuffer.
Thanks for the kind words about the game. I feel like I'm pretty happy with where the engine is for the most part, and now the hard part is "how do we make it actually fun to play". The KSP fast-forward does exist, but it's not at all obvious; you have to buy it as an upgrade. I am starting to wonder after talking with players whether it should be included as standard equipment from the start.
I have no experience with this engine or language, but maybe I'll give it a go. I guess I can try to figure out how the mail screen works, copy some of that, try to figure out how passwords work, glue everything together, presto. (hours later...)
I agree the fast-forward should be a standard feature, or one you buy as part of the first tutorial missions. I could probably play the game a lot more "star wars mode" with the amount of fuel you have, but being a KSP player, waiting for your orbits to intercept can get a bit boring at normal speed.
There's two possible ways to represent "does the player have this key yet?" as data. You can either put a literal string representing the key into the in-game filesystem somewhere and have the SSH client (in user-space code) figure out which key to send while connecting, or you can keep a table of "has the key for this account been acquired yet?" out of the sandbox in the outer ship table and check it completely outside user-space when an SSH connection is made. My general rule is to prefer doing things in user-space when possible, but either way would be fine here.
All the mail delivery happens inside mail.lua in the deliver function, so you can check for the presence of a specific pattern in the text of the message being delivered and put the key or flag into the ship table there.
The os/client.lua code is responsible for establishing the connection from the ship (in the main thread) to the remote OS in another thread. The os/server.lua code runs in the remote threads and checks the username/password upon login, but the logic for this depends on what OS the remote host is running; space stations will use is_authorized in the os/orb/init.lua file while rovers will use the one in os/rover/init.lua.
Once the keys have been added and used to auth the connections, writing a mode to display them can be done in a separate issue.
On a different level, this project is also a mix of a Tolkien-esque universe and Yak shaving paradise. Basically you wrote an editor, mail client, several programming languages and operating systems already. I think this place needs at least a full-blown window manager (to navigate while coding), init system (instead of the hard-coded subsystem status at the beginning of the game) and network stack based on a simulated wireless link layer (so you get increased latency and packet loss if you log in from too far away) before working on the story. Basically, I suggest you work on the universe for the rest of your life, creating dozens of races with their own computer architectures, and at some point release a small side-story as a trilogy, which will become wildly popular, leading to book and film adaptations.
Jokes aside, thanks for the pointers. While I wait for Farnell to deliver my parts, I may have a few hours to toy with this tomorrow morning.
Haha; perfect. I had been thinking of it more like Anathem, but Tolkien makes sense too!
Anyway, we do have Emacs-style window management with arbitrary splits implemented already, (no docs, and the UI for invoking it is a bit awkward) plus there is code for calculating packet loss when you go out of range (it's currently commented out on master but take a look at the top of os/client.lua) The only reason the init system hasn't been implemented is that it's implied that the startup sequence you see upon starting the game actually involves booting up the hardware on which the player's machine consciousness personality construct runs, so you can't start that up in-game for Gödel reasons. But two out of three isn't bad!
Anyway, if you think it would be fun to have a shot at it, go for it, but if not that's fine too!
I adjusted my goals to a simple password manager, and got super confused about the different scopes and how to access and reload them.
I think this should more or less work, but it does not.
It does add the credentials to the ship when I near the station (the trajectory drawing seems to be missing? Worked in beta)
But the SSH code does not like my changes. I did try CTRL+R and wiping the save. I have to leave now though, so I'll look at what kind of stupid thing I did later.
I think it must have just been a mixup loading the changed ssh mode, because when I try this on a fresh game it works fine; nice job.
Note that you can reset just the in-game ship code without wiping the whole state with ctrl-f1, then ctrl-r or dofile "src.ssh".
For the trajectory, is it possible you're running on love 0.9.x instead of 0.10.x? Most things except the trajectory and syntax highlighting should work on that.