Quick update as this past week I've mostly been working on tasks that are not directly connected to development, but are still important and necessary. E.g., working with translator, new Store assets, reaching out to GOG, etc.
As I mentioned last week there's an opt-in beta patch for Kepler. I posted another patch to the same branch this week which adds/fixes the following:
If a player fighter drone is too far from ship, will be instantly recalled, allowing player to use fast travel without waiting for fighters
If Lost Goryr is not found within a few minutes of spawning, location will be revealed by crew.
Fixed missing "The End" achievement
Removed unused resource (Metallic He) from display lists
Fixed null reference error
Several typos
Once this latest patch gets a bit more player testing I'll post it to the default branch. As a reminder, anyone can switch to opt-in beta branches and this one is compatible with current saves (Kepler):
It's been over 3 weeks since Kepler was promoted to the default build. This is the first default build to have an ending to the main storyline (among many other changes and improvements since Icarus). While no game is ever perfect, I'm very happy with the current state of the game, and I think players are too. There are still a number of areas that I want to improve and a few missions that need fixing, but I am tentatively considering that some near-future update to Kepler will become the 1.0 release. What this means for players is that my goal is that future updates to the game will not be save breaking.
There are some kinds of content changes that are more difficult if I have to consider whether or not they could break an in-progress game, but at this point the overall main story feels solid enough that I don't expect to need to refactor major aspects of the story. I'm hopeful the outstanding areas of the game where players are having issues can be addressed via patches.
To anticipate a player question, I also plan to continue to update the game after 1.0. The content has a more modular structure and so adding side-content after the fact is much more feasible than it was with Starcom: Nexus. I'm also considering making some of the content authoring tools available for modders post-launch, so players can create their own anomalies-- maybe even their own missions and storylines?
Speaking of non-save breaking updates, there is an opt-in Kepler build available. You are welcome to switch over to it now, or wait until it has had enough testing that I'm confident in updating the default build. Details here:
Map "highlight investigate" now also draws attention to any unscanned or unsurveyed planets (a somewhat common cause of players getting stuck is players failing to notice a planet that was detected but never scanned)
Changes to gamepad controls
Change to the behavior of the gravity gun
Minor new anomalies, off-path content
Minor mission fixes, adjustments
Shields and battlestation charges persist across saves (but not Havok, yet)
Reduced the crew repair effect for large crews
UI tips in map view
Minor optimizations
Various minor bugs, typo fixes
Until next week!
- Kevin
Weekly Update: June 7, 2024
I'm currently working on an update to Kepler. This will initially be deployed on the Kepler opt-in branch. This means that it is intended to be save-compatible with existing Kepler games, but might be buggy so I don't want to deploy it straight to the default build. (Opt-in instructions here if you want your game to update as soon as its available, choose "Unstable Kepler").
This update will add:
Text scaling in Options
Option to change default map zoom behavior
Map "highlight investigate" now also draws attention to any unscanned or unsurveyed planets (a somewhat common cause of players getting stuck is players failing to notice a planet that was detected but never scanned)
Changes to gamepad controls
Change to the behavior of the gravity gun
Experimental difficulty settings
Minor new anomalies, off-path content
Shields and battlestation charges persist across saves
Reduced the crew repair effect for large crews
Tips in map view
Minor optimizations
Various minor bugs, typo fixes
There are a few more changes that it needs and some smoke testing, so I don't have an ETA, but unless something goes wrong, I expect to deploy it in the next week.
Until then, - Kevin
Weekly Update: May 31, 2024
In the last update I mentioned that I couldn't autodetect whether the game was running on the Steam Deck, something I wanted to do so that the new text-scaling feature could automatically be applied.
Two years ago when I was starting integration with Steamworks, I evaluated two possible C# libraries for Valve's API. One was "Steamworks .net," an unofficial straight 1:1 port of the API to C#, the other was "Facepunch," made by the maker's of the popular sandbox game, Garry's Mod. I ended up going with Facepunch because a) it's more of a proper C# implementation of the Steamworks API and b) the author of Steamworks .net himself recommended people use it instead. It works very well, but hasn't kept up with Valve's changes to Steamworks.
So last weekend I started migrating the workshop integration to Steamworks .net. Unfortunately, there's not a lot of documentation on the correct way to handle workshop calls. The examples I found felt brittle, and I ran into an issue that caused the Editor to freeze, which was both unsettling and time-consuming to troubleshoot.
After spending two and a half days attempting the migration, I decided it was turning out to be too time consuming (and too risky) for too little reward. The only feature I really wanted to do the migration for wasn't even connected to the Workshop, just find out if the game was on the Deck. So I ended up writing a two-line method based on the GPU (the deck uses a custom AMD GPU called "VANGOGH"). It's a hack that works, but not ideal-- for example it may not detect the next iteration of the Deck.
Game dev is fundamentally a process of exploration, and it's inevitable that some time will be lost investigating paths that lead nowhere, but still frustrating to abandon days of work.
I did make some progress in the past week:
Worked on some missing controls for gamepads
Fix for battlestation and shield "charge" not persisting across saves (not Havok, though)
Changes to a late game player "weapon" that make it a bit easier to use for its intended purpose and more fun
As always, changes discussed in these posts are works in progress and will not be immediately available to players until a build is deployed.
Until next week! - Kevin
Weekly Update: May 24, 2024
The big news for the past week was Kepler being promoted to the default build, as announced here.
So far, players have reported few significant bugs. I think at this point the biggest question mark is how many "stuck points" will first time players encounter. I.e., points where, due to unanticipated player behavior, the game provides insufficient guidance as to how to proceed. There were a lot of these in Ganymede, and some in Icarus. While Kepler addressed most of the outstanding ones, it also adds new content so there are probably still at least some.
Besides monitoring player feedback, I've started work on improving the game's Steam Deck support, particularly adding the option to scale text up. This seemed like a relatively minor task, but has turned out to be larger than anticipated for a few reasons:
First, there are a lot of individual textual objects in the game, and the "correct" way to scale them depends on multiple factors. For example, with the ship status HUD in the lower right, the correct behavior it seems is to scale the entire transform up, including the bars and icons, so that it takes up a greater percentage of the total screen space. While with something like an anomaly dialogue, which already takes up most of the screen, that wouldn't work. So there the font is scaled up but the dialogue container remains the same size.
Second, it makes sense for this to happen by default on the Deck, since the scale that looks good on a PC monitor is too small. But the third party API wrapper I use for Steam is out of date and doesn't have the IsSteamRunningOnSteamDeck() method.
Finally, there's the added friction that development on the PC is quite fast because in Unity I can test most changes within seconds in the Editor, where to test a change on the deck I need to build the game, deploy it to Steam, then update the game on the deck and run it.
Incidentally, if you are playing on the deck, there's a "secret" opt-in beta with the super secret password of "111111111111" (that's twelve ones). This build enables a text scaling option. It's "secret" because I'm deploying untested changes to it unannounced, and do not plan on maintaining it long term.
Until next week! - Kevin
Kepler Build Now Live
The "Kepler" build has now been promoted to default build for Starcom: Unknown Space. Since the previous default build was "Icarus", this is a significant update, incorporating the changes from both Jupiter and Kepler.
The biggest change is that the main storyline now has a proper ending, but there are lots of other updates of various magnitude, including a number of new side quests, factions, and more "off-path" regions.
Since both Jupiter and Kepler were made available for opt-in testing and dozens of players have reached the end, I feel confident that Kepler is at least pretty solid: there have been some issues reported, but few serious bugs as of the latest 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 Icarus to finish your current game. See here for instructions and select "Icarus Rollback".
Here is a minimal-spoiler list of changes since Icarus:
Ending to main story line
Prologue opening transition
46 new planet anomalies
Anomaly "environment soundscapes"
New stories, side quests, factions, Easter Eggs
Improved guidance/fixes for missions where players commonly found themselves stuck
Numerous new character dialogues, crew prompts
New ship modules and technologies
New weapons, variants
Numerous balance changes
New enemy attacks, AI
NPCs now automatically aggro'd by attacks to their allies (unless also allied with aggressor)
Changes to fixed guns
New music tracks
New achievements
Mission "priority" indicator for main story critical missions
Newly unlocked techs highlighted
Ability to toggle mission goal tracking
Difficulty / skill roll modifiers now in 5% increments
Changed autosave timing
Fix for vsync not being saved
Engine turbo sound fades out
Improvements to game controller support
Fix for anomaly image change not reflected in log
Fix for projectiles, effects persisting after save game load
Various QoL improvements
Additional analytics
Performance optimizations
Early Access Content Progress
As with previous named builds, for comparison purposes, here are some metrics to give a rough sense as to how much content has been added to the game since it first entered Early Access almost 16 months ago:
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 (October 2023): 179 anomalies 3340 mission logic elements 64,000 words
Jupiter (January 2024): 197 possible anomalies 4329 mission logic elements 82,182 words
Kepler (current Default): 225 possible anomalies 4848 mission logic elements 90,400 words
For comparison, Starcom: Nexus had roughly ~195 anomalies and 65,000 words of text. It used a different mission system, so there's no clear comparison, but Starcom: Unknown Space definitely has significantly more mission logic and text.
There are still a number of features, fixes and content I'd like to add, but at this point I am starting to think about a 1.0 release, possibly later this summer. Although as I have said since the start of Early Access, the key determinant is how players feel about the state of the game.
Thanks for reading, and thanks for playing Starcom: Unknown Space!
Weekly Update: May 17, 2024
Since last week's update at least two dozen players have made it to the end of Kepler's content and there have been no major new bugs reported. I've also deployed several patches to Kepler, but these are fairly minor. Assuming no major issues appear, I plan to promote Kepler to be the new default build in the next week.
If you're about to start a new game, you may want to switch to Kepler, as it has the most content/improvements, but is not save compatible with previous named builds (Opt-in instructions here).
Here are the changes relative to Jupiter (the last opt-in beta):
Non-spoiler changes in Kepler:
New side-quests
27 new anomalies
Additional void regions
Changes to existing missions
Difficulty / skill roll modifiers now in 5% increments
New alien
Several changes to late game
Player drones
Ability to toggle mission goal tracking
New music tracks
Three new achievements
New analytics tracking for various progress metrics, localization
If anomaly image changes during anomaly, the last image will appear in the log
New enemy weapon
New ship modules
New technologies
New achievements
Numerous balance changes
Changes to fighter sounds, trails
Changes to enemy AI
NPCs now automatically aggro'd by attacks to their allies (unless also allied with aggressor)
Refactor fighter drone logic
Various performance optimizations
Various UI fixes
FPS limit option
Priority mission identification
Fixed transient objects, screen shake persisting after game load
Added discovery sounds/tier labels
Block players from interacting with cloaked ships
Fix several minor anomaly bugs reported by players
Fix for potential soft-lock in late game
Fix for null reference exception
Added some missing gamepad UI indicators, controls
Known Issues:
Loading a game during a transition (such as a wormhole) can break the game camera
Player drone behavior/balance needs some work
Until next week!
- Kevin
Weekly Update: May 10, 2024
As promised last week, the first Kepler build was made available as an opt-in beta last Sunday. There have been two patches since then to fix potentially significant bugs, but at least some players have made it to the game's end.
Here are the changes relative to Jupiter (the last opt-in beta):
Non-spoiler changes in Kepler:
New side-quests
27 new anomalies
Additional void regions
Changes to existing missions
Difficulty / skill roll modifiers now in 5% increments
New alien
Several changes to late game
Player drones
Ability to toggle mission goal tracking
New music tracks
Three new achievements
New analytics tracking for various progress metrics, localization
If anomaly image changes during anomaly, the last image will appear in the log
New enemy weapon
New ship modules
New technologies
New achievements
Numerous balance changes
Changes to fighter sounds, trails
Changes to enemy AI
NPCs now automatically aggro'd by attacks to their allies (unless also allied with aggressor)
Refactor fighter drone logic
Various performance optimizations
Various UI fixes
FPS limit option
Priority mission identification
Fixed transient objects, screen shake persisting after game load
Added discovery sounds/tier labels
Block players from interacting with cloaked ships
Fix several minor anomaly bugs reported by players
Fix for potential soft-lock in late game
Fix for null reference exception
Added some missing gamepad UI indicators, controls
Known Issues:
Loading a game during a transition (such as a wormhole) can break the game camera
Plasma range extender doesn't unlock
Player drone behavior/balance needs some work
Since Jupiter was never promoted to default, unless some critical bug appears, I hope to make Kepler the default build once enough players have finished it that I'm confident in the stability.
If you're about to start a playthrough, you may want to switch to Kepler, as it has the most content/improvements, although there may still be some undiscovered bugs. (Opt-in instructions here).
Until next week!
- Kevin
Weekly Update: May 3, 2024
I chiseled through most of the small items I wanted to finish for Kepler and started another playthrough. The playthrough so far uncovered three major bugs introduced by the various changes, which I have fixed.
I still need to finish the playthrough and then tackle a few small items that would be difficult to fix in a patch, but Kepler should hopefully be ready for opt-in testing in the next few days. There are some items which I plan on deferring to a patch.
As usual, I'll start with a post on the discussion forums. Once a few players have had a chance to check it out and it doesn't look like there are major issues I'll post a news announcement.
Fingers crossed! - Kevin
Weekly Update: April 26, 2024
Last week I mentioned that I had two big items and about 50 smaller items that I wanted to get done for the Kepler opt-in, plus another fast playthrough to ensure nothing major has broken.
The two bigger items took a bit longer than I expected, but they are now done. One was a new enemy attack, the other is a new side-quest that connects some story threads. That still leaves about 40 smaller items and a playthrough, but hopefully these will go faster and Kepler will be ready for opt-in in the next week or so.