Skip to content

DEV BLOG

Dev Blog 0: What's a Redux?

KSP2 Redux Dev Blog 0: “What’s a Redux?”

Section titled “KSP2 Redux Dev Blog 0: “What’s a Redux?””

Hello everyone, let me introduce myself first, my name is Safarte and I am the developer of the Kerbal Life-Support System and Docking Alignment Display KSP2 mods. I joined the KSP2 Redux development team something like a month and a half ago and I’ve mostly been working on debug tools and some bug fixes.

The goal of this first dev blog for Redux is to introduce you to the project in more details and provide you with some information on what we plan to do with it.

  • The next big AAA amazing space exploration game™
  • A quickly put together collection of existing mods
  • A teapot

Now that that’s out of the way, let’s focus on what Redux really is.

We are a team of (mostly) KSP2 modders that really like this game and would like to see it reach its potential. There are currently a bit less than ten people working on Redux to varying levels of involvement.

Our plan for Redux is to try and achieve what we interpret as the core vision of the original developers of KSP2. This means both fixing existing bugs in the game, improving performance and most importantly bring to life promised features like colonies, interstellar travel or multiplayer. We also want to make the game as moddable as possible by providing tools to help the development of mods. Regarding features such as colonies, the current plan is to include all core functionality, with some parts to fill the necessary gameplay roles. Fancier parts will be left to modders to add to the game, for example: Redux might include a simple ISRU for colonies but mods could add many more of varying size, style, etc…

Redux will most likely be distributed as an installer which will apply some patches to the relevant files in an existing KSP2 installation. Redux will not take the form of either a standalone executable or a simple Spacewarp mod, it’s gonna be something in-between.

We hope to be able to integrate Redux’s installer into CKAN to make installation as simple as possible.

What’s gonna be in the first few releases?

Section titled “What’s gonna be in the first few releases?”

The aim of the first releases will be to get KSP2 to a state where we feel we can safely add more features to without it crumbling down to pieces. This mainly includes stuff like performance improvements, bug fixes and enhanced modding support.

We also plan on including some quality of life stuff like some debug tools that can help develop mods or pinpoint issues.

If you’re a player: we are open to suggestions, do not hesitate to drop your ideas in the #🟡redux-suggestions forum. Also, once Redux has released, please report any bug that you can find and think could be caused by our modifications.

If you’re a modder: please get in touch with us so we can accompany you on how to migrate your existing mods to support Redux.

If you’re a Redux developer: chop chop get back to work

Redux is a fan project entirely developed by a team of (passionate) volunteers, we do not have access to the resources of a full game studio so temper your expectations with this in mind. Redux might (and probably will) introduce new bugs to the game, we cannot check every possible scenario otherwise we’d never release anything. We also do not have any affiliation with the former KSP2 developers, please do not interpret this project as an official continuation of KSP2’s development.

Performance Improvements Overview

Basic rundown of Redux FPS improvements:

Leverage newer unity features

  • Enable unity “Graphics Jobs” setting. Cuts 3-5ms off the frame on my computer.
  • Disable Unity Physics.autoSyncTransforms option. This required rewriting a lot of code to avoid depending on the autosync behavior.

Overhaul widely used systems for better performance

TransformFrame is how the game deals with multiple moving reference frames, and is used extensively through the code base. Redux replaces this with an ECS/Burst based system that is significantly faster.

Lots of individually minor “depessimizations” that add up to significant improvements.

Too many to list in a discord comment. Many, many code systems have been tweaked to remove unnecessary steps, fix unnecessary garbage allocations, and accomplish the same task with fewer resources.

Performance test results compilation

All tests are on my system: i7-4790K @ 4GHz, 32GB DDR3 @1333MHz, RTX2080

Small vessel test:

50 fps -> 78 fps

200 part test:

18 fps, 55.95ms/frame -> 24fps, 41.49ms/frame

1500 part test

638 ms/frame -> 347 ms/frame

Unable to recover small-vessel-redux.png from Discord: HTTP Error 404: Not Found

Unable to recover small-vessel-stock.png from Discord: HTTP Error 404: Not Found

200 part test 1

200 part test 2

Unable to recover 1500-part-test-1.png from Discord: HTTP Error 404: Not Found

Unable to recover 1500-part-test-2.png from Discord: HTTP Error 404: Not Found