Starcom: Unknown Space cover
Starcom: Unknown Space screenshot
Genre: -

Starcom: Unknown Space

Kepler 21519 Patch

Hot patch to fix issue with music not playing in latest update.

Kepler 21517 Patch Notes

Kepler 21517 Patch:


  • Mitigate potential memory leak when on the Operations Panel of the station
  • Several minor controller hints
  • Fix minor memory leak from saves
  • Changed navigating module selection with controller: DPAD up/down now cycles category, DPAD left/right now cycles module. Instead of wrapping, moves to next category.
  • Numerous missing localization symbols
  • Volunteer localization updates for Russian
  • Fixed issue with Ukrainian localization causing exceptions in a few dialogues
  • Various (ML) localization update to fill in missing symbols since initial creation
  • Shipyard rotate hint not showing correct controls for controller
  • Fix to dialogue option not shown for Sepharial Guild Envoy
  • Several minor typo fixes

Weekly Update: Feb 28, 2025

Another quick update this week. Just after last week's post I started to feel a bit of a scratchy throat and by Saturday I had my first full-on head cold in years and it was a rough one.

By Wednesday I was starting to feel a bit better and was able to get a patch build out to the opt-in beta branch yesterday. This one mainly adds a number of missing localization symbols for the various translations, plus a few minor bug fixes and tweaks to controller input.

Until next week,
Kevin

Weekly Update: Feb 21, 2025

Very quick update this week.

In the past week I spent a little bit longer investigating the memory leak on the Operations Panel I discussed last time, before posting a patch to the opt-in beta branch that mostly mitigates it.

Apart from that, I've:

  • Made progress with the help of some volunteer translators on eliminating the remaining few instances of untranslated symbols in the game
  • Started investigating reported Deck / Controller issues
  • Misc. business planning/annual tax stuff

Until next week,
Kevin

Weekly Update: Feb 14, 2025

There was another minor patch this week to fix a couple of issues in the latest update, improve the new thermal visualization system, and add volunteer improvements to Russian and Ukrainian language translations.

Apart from that, I've been investigating a reported memory leak. Several users had reported increasing memory consumption previously, but this week a user described a specific scenario they identified as reproducible.

A memory leak is a situation where a program continuously allocates memory (i.e., creates new objects) over time without properly releasing memory that is no longer being used, eventually exhausting system resources.

Debugging memory usage is a bit tricky. For one thing, memory management works differently in the Unity Editor compared to a build, and this leak didn't seem to happen in the Editor so I had to create a new build to test each new hypothesis. For another, memory usage fluctuates under normal usage both from game related processes as well as the engine unloading resources that have not been accessed in a while.

Here is a snapshot of all objects at a point in time using the memory profiler:



Or rather, the first few dozen objects out of almost half a million.

There are a huge number of objects in memory at all times representing textures, models, vfx, strings, numbers, etc. Basically any data the game is using. (Sometimes data is used briefly and then no longer needed, in which case it should be "recycled" by the garbage collector. There is some performance cost associated with this, so generally one prefers recycling objects to repeated create and remove, but garbage creation is not the same thing as a memory leak as its memory is automatically recovered.)

Looking at the above snapshot, I have no way of immediately recognizing which data might be part of a leak. I did at least have some clues. First, it was probably either something that made big allocations infrequently, or small allocations very often, probably every frame at least. Big allocations every frame would have been identified before, and small allocations infrequently would never exhaust system resources, even if left running for days.

The user had said they had left the game open in the station, which eliminated a large number of possibilities, because most of the game's logic is paused while in the station. This meant that I might
be able to find it just by opening the station, taking a memory snapshot, leave the game running, then capturing another snapshot later and comparing the new objects.

I quickly identified one possible memory leak from screenshot thumbnail captures that occurred during automatic game saves, but this was too small and infrequent to be the culprit of a noticeable leak.

After some further investigation I identified some allocations that were the result of an operation that only occurred on the Operations screen (no pun intended), and was complex enough to potentially be hiding some bugs:

In order to display the command staff status and whether their "call button" should highlight, for each actor the conversation system needs to check if they have an active and valid conversation topic, whether it is marked "attract", and whether the player has seen it. This is moderately expensive, but since the Operations Panel is not a performance critical game state, I hadn't spent time optimizing it. I could see no obvious reason why this should leak memory, since all of its memory should be freed after each check. The calls do rely on the Lua interpreter, which is a third party library, so perhaps there was either a bug or interaction that I didn't fully understand.



Without knowing exactly where the memory leak was, I could not fix it, and I'd already spent many hours investigating it. However if it was somewhere within the "call button" check, I could at least mitigate it. There is not a strong need to check the actor button status literally every frame, since it changes infrequently. So I added a cached value and check the state only when the Operations Panel is entered, then every half second thereafter. At 60 frames per second, this would reduce the calls by 97% (and the leak by a corresponding amount if it is the culprit).

Some additional investigation suggests that this leak doesn't always occur on the Operations Panel. It's possible it only happens if the active conversation check has to invoke Lua, or maybe with some specific Lua callback function.

While I like to get to the root cause of bugs, having spent several days on this I may have to satisfy myself in minimizing its harm.

Until next week!
- Kevin

Kepler 21508 Minor Update

Kepler 21508 Patch notes:

  • Compacted module selector layout to fix UI overrun
  • Modified thermal visualizer intensity, added subtle perlin animation
  • Further reduced respawning "deadman" station drops
  • Added volunteer Ukrainian language improvements
  • Additional volunteer fixes to Russian language translation
  • Fixed Polish character set issue
  • Fixed several localization symbol replacement errors
  • Several minor typos

Weekly Update: Feb 7, 2025

Very quick update this week:

Last week, the new Kepler 21506 update was promoted to default with a lot of new content, QoL improvements, bug fixes, etc. Since then, I posted patch 21507 to address relatively minor issues that have cropped up. The notes from that patch if you missed it are:

  • Added "resume autopilot" hotkey (default to "I")
  • Added "turn to mouse" in addition to "steer to mouse" hotkey
  • Volunteers have provided a number of corrections/improvements to the DeepL Russian translations

I'm currently working on another minor patch which will probably go up in the next day or two.

Until then, thanks for playing!
Kevin

Kepler 21507 Patch

Minor patch to the latest update:


  • Added "resume autopilot" hotkey (default to "I")
  • Added "turn to mouse" in addition to "steer to mouse" hotkey
  • Volunteers have provided a number of corrections/improvements to the DeepL Russian translations

Kepler 21506 Update

Starcom: Unknown Space has just gotten a significant update including dozens of new anomalies, several new side-quests and regions, a few new techs and modules and a bunch of fixes / QoL improvements.

Some of the more significant non-spoilery changes in this update:

New Anomalies



There are two dozen+ new anomalies, including a mix of procedural and story-related.



New Missions



There are several new minor quest lines, which I'll leave to players to discover on their own. (See the Existing Games notes below.)

More Guidance



Some of the existing main-storyline missions have gotten a little bit more guidance and hints where players have reported getting stuck.

Trading Change



By request, trading now tracks "fractional" resources during the same trade exchange, so the "spare change" from different resource transactions is combined in the final reserve currency delta.

Plasma Autofire



As an accessibility feature, plasma cannons now have an auto-fire setting in the ship systems so players do not need to hold down the autofire button. Related to this, higher Tactics skill will improve target selection with your plasma turrets more likely to choose targets that pose a greater threat and less likely to oversaturate low-health targets.

Saucer Bridge



A slightly smaller alternative to the Dreadnought, it's lower cost with a slightly lower max size but a higher built-in support crew limit.



Full Kepler 21506 Change List:



  • 25 New anomalies
  • Several new regions
  • Several new side quests
  • Several hint prompts in places where players reported getting stuck
  • Several new proc planet visuals
  • New "saucer" bridge module
  • Added "rename ship/commander" button to Ship's Log
  • New thermal visualization system, fixed heat not displayed for some modules
  • Trading now combines fractional values across resources
  • Steer to mouse bindable hotkey
  • Plasma autofire setting in ship info
  • Changes to some AI targeting values
  • Changes to plasma autofire: higher tactics skill improves target selection
  • Added lower particle count versions of Havok and Shroud bursts if graphics settings below "high"
  • Fixed reference issue possibly causing bugs with reloading the latest save
  • Fog of exploration "refogging" if a region is added to an already explored area
  • Fix for faction disposition not decaying if faction not loaded
  • Fix for possible rare soft-lock after Celaeno or Aletheia are destroyed
  • Fix for proc anomaly addition sometimes overwriting existing anomaly
  • Modified fixed gun cycle calculation to ensure fire rate is reached
  • Map color legend for interaction "rings"
  • Player damage now correctly preserved in saves
  • Change to VFX object pooling behavior
  • Various minor mission changes
  • Various code refactoring
  • Hovered module build selection now shows details (including for controller)
  • Fixed numerous missing minor localization strings
  • Added MIT attribution for Newtonsoft JSON library
  • Added "DebugMapCoord(string)" command line (shows map coordinates of persistent by id)
  • Several typos corrected
  • Enabled third-party download of Steam Workshop items (for GOG players)
  • Missile speed techs
  • Kinetic (collision) resistance tech
  • Angled kinetic armor module
  • Once the player has researched the Gravity Gun, a small cluster of unstable cores are added near the Chariot
  • New RP sources added periodically during the game to ensure the player cannot exhaust them before story-critical techs
  • Prevent one of the final showdown Devouts from spawning atop the player
  • Guild envoy not showing correct Iridium pricing for Sepharial info
  • New region now set as Emissary target
  • Warping now cancels autopilot, like other steering commands

Existing Games



This update is compatible with existing saves, so you do not need to start a new game to experience the new content. Although depending on how far along you are in the game, you may be less likely to encounter it "organically". Also, the more of the universe that you've explored, the less likely it is that you will encounter some of the new procedural anomalies.

I will give one low-spoiler hint for players who have completed or mostly completed the main storyline:

One of the goals of the new content is to guide players to revisit the Guild, who are necessary for two important main-story quests. In order to kick-off one of the new quest lines, you need to trade with the Guild, return to Celaeno, then talk to the Guild again.

These changes have been in testing for a while by opt-in beta testers, so I feel pretty good that there's no major new bugs introduced, but there's always the possibility that something was missed since opt-in testers are a small percent of total players. If you encounter a bug, please report in the discussion forums. And a big shout out to the beta testers!

Thanks for playing, until next week,
- Kevin

Weekly Update: Jan 24, 2025

Two weeks ago I posted that there was a new opt-in beta available with a bunch of new content, QoL improvements, bug fixes, etc. Since then, I've released 3 patches to fix various issues players have identified in it.

At this point around 500 players have played at least some of the updated build and there haven't been any major issues reported. So barring any surprise problems, I plan on promoting Kepler 25105 to the default branch in the next week.

If you want to switch to the beta branch now, or want to read a preview of the changes see this discussion post.

Until then!

- Kevin