Save/Load UI, Autosave, Intel Map Markers, and More

Since the previous release, I’ve been working on a bunch of quality-of-life features. This wasn’t exactly planned – at least not specifically for right now but these were all things that had to get done at some point, and now is as good a time as any. Perhaps a better time than most, even, since I’m feeling oddly motivated to work on these. Part of it is upgrading from Java 7 to Java 17; it’s nice to see the game running more smoothly – and in a similar vein, it’s satisfying to bring some older parts of the game up to par.

Save / Load UI
First up is the way the game handles savegames. To be clear, I’m talking about just the UI parts of it here; the behind-the-scenes “how a game is saved” mechanism remains almost exactly the same.

A quick recap of how it currently works: you get a save slot, and you can use a “save copy” option in the menu to make a copy of that slot. There’s also quicksave/quickload. It’s just about the minimum amount of functionality necessary for things to “work”, and there are no bells and whistles – you can’t add a description to a save, for example. The UI itself is also a bit messy, in large part because it’s old and, frankly, I’ve gotten more experience with UI over the years and can generally do a better job of it now.

Let’s just jump into the changes, without belaboring the “why” too much. So:

To start with, I’ve updated the overall look and feel of the UI to make it cleaner, and since it’s now more compact, you can see more saves at the same time. Also, if you’re ever had trouble with a corrupted save, you’ve probably found out that the game keeps a backup of the previous time you’ve saved, and you can go and rename some files to make the game load it. Now, the game will just automatically try to load the backup if loading the primary savefile fails for any reason.

Save As
“Save Copy” is replaced with “Save As”, which is more intuitive as to the expected behavior. You can save to a new slot, or overwrite an existing slot.

When you do “Save As” (or regular “Save” / “Save & Exit” from the menu), you have the option to type in a brief description for that save. If that’s left blank, it defaults to showing your fleet’s current location, e.g. “Hyperspace” or “Gamma Terror Star System”. The text entry field is pre-selected, and you can immediately type in a description, then press Enter twice – once to finish text entry, and again to save. Or, you can just click “Save” button if you don’t care about a description.

If there’s already a description in the text box, you can press Ctrl-Backspace to delete one word at a time (this is actually a standard UI shortcut that works pretty much anywhere, e.g. in most/all? browsers), or you can press Shift-Backspace to clear the whole field (this one is Starsector-specific).

An initial version of this dialog had the entry field be more prominent – the standard Starsector text field, with a full border and a background. David pointed out that this made the description feel less optional, and suggested what you see now, which I have to agree, looks much cleaner!

When doing “Save As”, you can choose whether the new save becomes the “current” one – for quicksaving, quickloading, and the “Continue” option from the main menu. The expected behavior of a “Save As” action is that the new save becomes the current one, and that’s the initial default (though the game remembers the state of that checkbox). But, if you’re trying to save off a checkpoint – for example, “Near hypershunt, about to fight defenders” – you wouldn’t really want that save to become the current one, you want to put it to the side and continue with your original save, and I wanted to make this easy to do.

(Another way to handle this would be to have quicksave save to special quicksave slots, but with that approach you either end up with a ton of quicksave slots littering both the dialog and your harddrive, or – if they get recycled for different campaigns – with the risk of losing a game. Having a “make current” checkbox seems cleaner all-around.)

Limited autosave
One of the benefits of the upgrade to Java 17 was a pretty significant improvement in save/load times. That said, though, saving the game still takes a couple of seconds – let’s say 2-4 for a vanilla save, more or less. It’s obviously going to depend on your CPU, your harddrive/SSD, and so on; this is extremely approximate.

So, given the save time we’re working with, a pervasive, “you don’t need to save manually” autosave that triggers every time you leave a market, enter a star system, fight a battle, salvage a station, or do anything else of significance – that’s off the table; we’re not even aiming for that. Instead, the goal is to limit the amount of progress that can be lost, by a player that just plain forgot to save for a long time – hence, calling it “limited autosave” here;  I don’t want to oversell it.

The way it works is, autosave will trigger approximately once per the autosave interval, which can be configured in the in-game settings menu, from 5 minutes to an hour. Autosave can also be turned off entirely in the same menu.

The exact timing of when an autosave will happen depends on what’s going on in-game; it’s more likely to trigger after a jump to a new location, but won’t trigger if there’s a strong hostile fleet nearby (mostly to avoid interruptions/distractions), or when your fleet is traveling extremely quickly (such as mid-slipsurge), and a few other checks like this. The timer is also reset any time you save manually, or load a game.

Autosave rotates through 3 save slots (which are labelled in the save/load dialog), and will NEVER overwrite a manually-created save slot. So, even if it saves at the worst possible time somehow, it’ll just be a useless save, it won’t do any damage. It’s also disabled entirely when playing in iron mode, since that doesn’t allow for multiple save slots. Having it run quicksave instead in this case is a possibility, but on the balance, I’d rather stick with it never ever touching a manual save slot, for any reason.

When playtesting this, it felt intrusive to have the save bar pop up in the middle of the screen when it triggers – so, I shrunk the bar moved it the upper right corner of the screen. Surprisingly, this actually made autosave feel faster. I think it’s because it doesn’t interrupt what you’re looking at, so the time that’s taken up by it running isn’t completely wasted, you’re still taking in the surroundings. Possibly the bar itself being smaller contributes to it feeling faster, too; I wouldn’t be surprised if there’s been psychological research on the subject.

(One problem with this was that it highlighted a minor longstanding issue – the screen rapidly switching between the previous two frames while the save is in progress. Not a huge deal if you’re expecting it and just looking at the save bar in any case (which isn’t affected by this), but much more of a problem if all of a sudden the main view you’re looking at starts to vibrate. So, I fixed that up.)

Intel map markers
Occasionally when exploring, you’ll find something that you’d like to come back to, but that the game won’t automatically make an intel item for. Perhaps it’s a planet you’d like to colonize later. Perhaps it’s a derelict capital ship you’re like to recover later, when you can actually afford it. To help keep track of these things, you’ll be able to create “map markers”.

To create a marker, you open the map, left click and hold on the target entity, and select the “Create intel map marker” menu option. You can select an icon, and type in a name and an optional bullet point. The amount of text you can put in is very limited; it’s just meant to be a brief reminder.

The marker is an intel item that shows up under the “Fleet log” tag in the intel screen (and also a new “Markers” tag); there’s a checkbox to open the intel screen immediately on creating the marker. From there, you can edit or delete the marker as you like.

New intel
Doing this made me think about what you’d want to use the feature for, and there are a few things you find that you would pretty much always make a marker for. So, the game will create those for you automatically (some light spoilers here):

  • Remnant Nexus (when discovered)
  • Domain-era Cryosleeper (when interacted with)
  • Coronal Hypershunt (when interacted with)
  • Wormhole Termini, with arrows on the intel map showing connections (when deployed or interacted with)

Salvor’s Tally
You’d probably also want to use markers to keep track of salvage you’ve found, but decided to leave for later, say due to running out of cargo capacity, or running low on fuel or supplies and having to return to the core worlds. That would feel like busywork – but I also wouldn’t want to clutter up the intel screen with auto-generated items for every single derelict Kite-class shuttle you’ve found floating out there in the black.

So, a new intel item – a “Salvor’s Tally” – that keeps track of *all* the potential salvage in a star system. Orbital installations, derelict ships, debris fields, planetary ruins, and so on, tracked in one intel item (per system) for easy reference – and for making sure you didn’t miss something that you’d detected but perhaps not actually noticed.

This intel is automatically created for the star system after 1) you’ve found something  salvageable, and 2) it’s been at least an in-game day since you’ve either detected something salvageable, or salvaged something. The goal is to avoid spamming the player with Salvor’s Tally intel whenever they find something and just immediately salvage it. For example, if you find a ship graveyard with a bunch of derelict ships, you would normally just salvage them one after the other, and unless you leave one for later or take an unusually long time in between, a Salvor’s Tally won’t pop up at all.

The tally intel goes away when you exit the star system, if there are no salvageable entities (that you know of) left. The tally shows up under both the “Exploration” intel tag, and a new “Salvage” tag.

And, finally, to make life a little easier – if there’s just one source of salvage remaining, the “show on map” from Salvor’s Tally button takes you right to it, instead of just opening the star system map. (This change brought to you by: “me spending *way* too long trying to find the one remaining derelict in a star system, even though I’d already technically “found” it. It was hiding right next to a jump-point.)

Pinned intel tags
One of the issues with the current intel screen is the tags at the bottom can seem to be in a kind of random order, and it can take a few seconds to find the tag you’re looking for. Let’s say you’re looking for “Bounties” – is it alphabetical? Doesn’t *look* like it, but then at some point it is, and it’s just a bit of a confusing/disorienting moment every time.

The reason it feels this way is that certain intel tags – the more “important” ones (according to yours truly) – show up first in the tag list, followed by the rest of the tags. But looking at it at a glance, they all look the same, so you can’t tell where “pinned, fixed order tags” end and the “rest of the tags, alphabetical” begin.

So, what I did is change the look of the “pinned” tags – making them more prominent – and put them in a separate section. In addition, the “pinned” tags will always be shown, even if they have zero intel items under them allowing you to remember where each of those tags actually is.

Combined, these changes – for me, at least – eliminate that momentary confusion when trying to find a tag. It can still take a second if it’s in the middle, alphabetical section, but it feels much better.

Oh, and also – there’s now a shortcut (“Q”) to select the “Major events” tag. That’s the one for important stuff like Colony Crises, Hyperspace Topography, and TBD in the future.

Other intel changes
Clicking on a star takes to you the star system map, and you can go back to the intel screen by pressing S (which is the key to show something on the map/return to intel when looking at an intel item). The idea is to smooth out the map/intel integration a little bit. It’s tempting to want to just combine the map and the intel screen – it seems like a fairly obvious “it should work that way” – but it’s trickier than it seems. I think it’d end up being fairly close to the current implementation, regardless – shifting the map between two modes vs shifting between two UI tabs. It’s something I’m keeping in mind, but in the meantime: a quick and easy change to make life easier.

“Fleet log” vs “Exploration”
I also had another look at the Fleet Log and Exploration tags; it’s been a while since the original implementation of a lot of the intel items, and it didn’t look like there was a whole lot of rhyme or reason for how things ended up assigned to either (or both) of these.

So, reconsidering what these mean:

Exploration: “things that likely lead you to explore places you haven’t been yet”.

Fleet log: “things you’ve found / learned about”, and also a bit of a catch-all for miscellaneous things that don’t fit elsewhere. (Hey, I didn’t say it would be perfect!)

So, for example, the new intel items – Remnant Nexus, Wormhole Terminus, Cryosleeper, etc – go under “Fleet log”, which is actually pretty sparsely populated now.

On the flipside, stuff like “you found out there’s a research station in some other unexplored star system” goes under “Exploration”.

I’m not 100% sure about where the new Salvor’s Tally is going to go – right now it’s under “Exploration”, too, on the assumption that since you haven’t cleaned that system out, there’s probably still some exploring to do. Classifying things cleanly is basically impossible. This is one of the nice things about a tag-based system, though – you can put something under multiple tags and make it easy to find anyway. In this case, a new “Salvage” tag for Salvor’s Tally.

Survey data intel
I also removed all the “found out about a planet with <interesting condition>” or “got systemwide preliminary survey data” breadcrumbs you’d find during salvage. These seemed like a good idea during the initial implementation, but in practice, they don’t actually matter much at all.

The only planet-related info you’ll find now is full survey data for a planet, and the quality of the planets you find out about this way is much higher – generally only Class IV or Class V, with a few exceptions.

I’ve also spruced up Survey Data intel item, to make it both more useful and more visually appealing. Also, critically, you can spin the planet by right-clicking and dragging it; this is Perfectly Safe.

And, finally, David added lots of new icons for intel items that previously shared the Fleet log one – it makes the screen feel much more lively, if I do say so myself!

 

Comment thread here.

 

Tags: , , , , , , ,

This entry was posted on Wednesday, April 10th, 2024 at 1:23 pm and is filed under Development. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.