1. Starcom: Unknown Space
  2. News

Starcom: Unknown Space News

Weekly Update: October 20, 2023

As I mentioned last week, this is an abbreviated work week as I had eye surgery which I'm now recovering from (I wrote most of this draft just before the surgery and am recovering well, thanks!)

Following the promotion of Icarus build to default and general announcements to that effect, there's been a flux of first time players into the game. I've been monitoring player feedback and analytics to see how things are going and overall I've happy with reports. There are some issues, but for the most part they're minor. The few reports of players getting stuck have come from known areas in the late game. (As a reminder, in game feedback is anonymous: if you submit a save game with a comment of being stuck, be sure to also post in the discussion forums or give some way to contact you)

Apart from that I've worked on:
  • Optimize performance in map view, which can get a bit CPU heavy in the late game;
  • Creating an anomaly indicator for the map to highlight anomalies with additional interaction;
  • Adding a toggle to certain ship log entries to drop a pin on the map for that entry;
  • Made progress on implementing the oft requested "zoom to cursor" when in map mode. This has turned out to be surprisingly tricky, but getting close. For one thing, I had initially wasted a lot of time implementing a zoom that centered on the cursor position. But the right behavior is actually to zoom the camera so that whatever is under the mouse doesn't move.

Until next week!

- Kevin

Weekly Update: October 13, 2023

The big item from this past week was making Icarus the default build. A big thanks to players who did opt-in play testing of the build: it seems like this build is solid with few serious issues reported (knock wood).

I've spent most of the past ten days or so chiseling away at localization. There are currently over 70,000 words of text in the game spread across 4500 chunks of text, even more than Starcom: Nexus. (In the Icarus news update I had the count at less, but the localization process has revealed that I undercounted some areas.)

Localization requires organizing and exporting all of those text strings into a format that can be used for translation.

The text in the game can be organized into three broad categories:

Story Content

One of the technical design decisions for the game was to move content out of the game engine's domain. This includes all conversations, anomalies, missions, items, discoveries, etc. There were several reasons for this: one, the Unity engine tries to serialize everything in the project before running in the editor which created a significant drag on iteration for Starcom: Nexus. Two, it allows me to use version control more effectively for the content. Three, it theoretically should make it easier to allow modders to create content. And finally four, exporting the text for localization became very simple.

Story content makes up 95% of the text in the game, but there was still...

Static UI Text

There's a bunch of text in the game that never changes. E.g., the "New Game" button on the main menu always says "New Game". This text was also pretty easy to localize. Basically I added a component to these UI elements that identifies them as localization targets and an Editor script grabs everything with those components. These components also register themselves with a LocalizationManager so if the current language changes they know to replace their text and font.

Finally there is...

Code Generated Text

Code generated text is a very small percentage of text in the game, but every string needed a small amount of work. E.g. change the code that said:

return string.Format("Fire rate: {0} shots/sec", baseFireRate);


to

return $"{LocalizationManager.GetTextWithDefault("SHIPYARD_UI->FIRE_RATE")}: {baseFireRate} {LocalizationManager.GetTextWithDefault("SHIPYARD_UI->SHOTS_SEC")}";


Here is the Operations screen with localization applied:



The "language" is "Progent-A": a fictitious language I created to pseudolocalize Starcom: Nexus using symbols from extended Unicode characters. Besides looking vaguely sci-fi, I can sort of read it, while at the same time can immediately tell if some text has not been replaced. It also uses a different character set, making sure font substitution works correctly.

This is what took up the most time of the past week, but the good news is that I made a lot of progress: almost all UI elements have been exported except for the options/keybinding menus. None of the text has actually been translated to a real language yet, but all of this work is a necessary precursor to that.

Finally, as I mentioned previously, I will be having eye surgery next week so there may not be the regularly scheduled weekly update.

Until next update!
Kevin

Icarus Build Now Live

Two weeks ago I posted the opt-in beta build "Icarus" for players to begin testing. There have been a couple patches since then to address several minor issues, but overall the build seems to be a solid improvement over Helios and Ganymede (the previous default build). So now I'm promoting Icarus to the default build.

Saves are not compatible between named builds, but if you were in the middle of a game, don't worry: you can always switch back to Ganymede to finish your current game. See here for instructions and select "Ganymede Rollback".

[h3]Here are the combined changes from Helios (the previous opt-in beta) and Icarus, relative to Ganymede:[/h3]

  • 34 new planet anomalies
  • New stories, side quests, factions
  • New ship modules, techs
  • New enemy types
  • New discoveries
  • Mission log now differentiates missions, objectives by "actionable" status
  • Additional mission details to help with common "stuck" areas
  • Mission progress scaling by actionables, e.g., timed events and hints trigger faster if the player has few or no active mission objectives
  • Fog of Exploration tech
  • Alternate laser fire controls
  • Change to crew progression system
  • Changes to encounter, drop and anomaly balance
  • NPCs no longer aggro from small damage
  • All ships will eventually fully recover lost modules, e.g., Celaeno will repair itself. This has the added benefit of reducing save file sizes (a significant chunk of saves' data is storing full ship layouts)
  • Drop attract max speed scales up with ship speed (minimizes outrunning drop pick up)
  • NPCs will pick-up drops for their own kills after a brief delay
  • Scaled up asteroid objects
  • Trade planet icons
  • Allow mission lane expansion (should make releasing story patches easier)
  • Changes to visibility system
  • Increased color brightness of some factions
  • Lateral thruster changes, VFX
  • Change to mouse steering option
  • Lua console for debugging with F11
  • Straight-line autopilot option
  • Autopilot to station will automatically dock
  • Changed "home" map marker
  • Numerous balance changes
  • AI changes
  • Support/maintenance crew
  • Added support for vysnc, exclusive full screen
  • Additional display options
  • Performance improvements
  • Numerous minor bug fixes


[h2]Early Access Content Progress[/h2]

When I posted the Icarus opt-in announcement, I gave a summary of content progression since the start of Early Access. Here it is again, with a few minor corrections to some of the numbers.

There are several very rough metrics for how much content has been added since the start of Early Access: mission logic elements, number of different anomalies, and number of words. Mission logic elements are the smallest unit of "quest" logic. By itself, the number isn't particularly meaningful, but it tends to grow roughly in line with the amount of game play content. Anomalies are interactions that the player may encounter on planets or when interacting with derelicts and celestial artifacts: while some anomalies may be encountered more than once, this number excludes any duplicates (even though some duplicates may behave very differently when encountered again). Word count is self-explanatory.

A small snippet of mission logic from the early game. Each green or pink colored box is a mission logic element.

I want to stress that I'm personally not focusing on any numeric metrics of content: I want to deliver the best possible experience to players. Part of that is having lots of different anomalies and things to discover, but increasing content numbers are a side-effect of the goal. I'm presenting these numbers to give players a sense of the overall progress.

Betelgeuse (Dec 2022, first Early Access version):
75 anomalies
1264 mission logic elements
25,000 words

Draconis (Jan 2023):
91 anomalies
1516 mission logic elements
29,000 words

Europa (Mar 2023):
111 possible anomalies
1839 mission logic elements
36,000 words

Fornax (May 2023):
120 possible anomalies
1990 mission logic elements
40,000 words

Ganymede (June 2023):
145 anomalies
2390 mission logic elements
48,000 words

Icarus (Latest Build):
179 anomalies
3340 mission logic elements
64,000 words

Examples of some of the 179+ anomaly images

For comparison, Starcom: Nexus had ~195 anomalies and 65,000 words (it used a different mission logic system so the numbers are not comparable, but it had considerably less mission logic than Unknown Space does now).

In terms of game length, the median time for first time players of Betelgeuse to reach the end of the main story line was 8 hours. For Ganymede, it was 16 hours. Again, I want to stress that I'm not focusing on numeric values: some of the more recent changes have been with the goal of reducing time spent wandering around not having any obvious missions to progress on.

At this point, I am starting to steer the huge vessel that is Starcom: Unknown Space toward an ending. I have a vision of what that ending looks like, but it will likely evolve as I implement it and get feedback from players.

To anticipate the question of "when is full release", the answer remains unchanged: when it's done. I hope to have an ending in place in the next few months, but it is likely that once that ending is in place I may spend several more months iterating on it. There are also a number of items not directly related to content development that will add several weeks here and there. As always, if players are finding that the game isn't done, then it's not done.

Thanks for reading, and thanks for playing Starcom: Unknown Space!

- Kevin

Weekly Update: October 6, 2023

Last Sunday I posted a patch for a few issues in the new opt-in Icarus build. Overall Icarus seems solid so I plan to make it the default build later this weekend and post an announcement at that time. Again, anyone starting a new game now is recommended to switch to Icarus now.

This week I've started working on implementing the localization logic. This is fairly straight-forward but tedious work: 95% of the text in the game is in a format the makes export/import of symbols easy, but the remaining 5% is various hard-coded strings that need to be identified and moved into look-up tables.

This is a good task for the period immediately surrounding a new default build when I am collecting feedback from new players that may influence the next milestones. I probably won't finish localization before I switch back to the more fun aspects of content development, but it is something that needs to be done and I'll be glad to have chipped some of it away before we're closer to 1.0.

Incidentally, I have not determined yet which languages will get professional translation at this point, but I hope to have quality translations for any language with over 1000 wishlists, and the files will be easily accessible for anyone who wants to create their own translations.

Finally, I will be having eye surgery in a little under two weeks. It should hopefully be a minor procedure but I will probably be unable to work for several days to a week, so there may be a pause in regular updates.

- Kevin

Icarus 15011

Minor patch to Icarus unstable:

  • Added fix for issue that could cause the Relays mission to become permanently blocked
  • Locked the unfinished alt-Havok tech
  • Check for potential null reference error on particular VFX