Jump to content

KSP2 Redux


Recommended Posts

wPjnIs2.png
Announcing KSP2 Redux
Hello everyone, it's been a little while since you’ve heard from me in the modding scene!

As you all know, the development of KSP2 has unceremoniously ended over half a year ago, and we haven't heard much since. In all likelihood, the game is never going to picked up again and its development restarted. All those teased features, all the hard work put into the game by the developers and the modders alike, all the hopes and dreams of the community. Wasted? But that would be such a shame, wouldn't it? 

Well, we decided to do something about it.

Introducing: KSP2 Redux

What is Redux?
KSP2 Redux is a fan-driven revival of Kerbal Space Program 2, going beyond just a typical mod in order to continue the game’s development where it was left off. The project's ultimate goal is to bring in the long-promised features and milestones that never came to be, and to make KSP2 into the game we all wanted it to become. Yes, that includes colonies, resource management, interstellar travel, multiplayer and a dating sim. That’s still a distant target, though; for now, the priority is nailing down a solid, reliable base for both players and modders.


What will the first release include?
The initial release will focus on three main goals: major performance improvements, various bug fixes, and enhanced built-in modding support. Along with Redux, we are working on an all-in-one solution for modders - the SpaceWarp SDK for Unity. There’s also a small surprise in this first release — nothing major, just a little extra something as a teaser of what's to come.

When is it coming?
The Rendezvous Entertainment team is hard at work finishing up this first release, and we're looking forward to sharing it with you soon. We’re hoping for a 2025 release. And of course more information will be shared on the KSP2 Modding Society Discord and here so stay tuned for further updates!

Fly safe, and shoot for the stars!


Join us in the KSP2 Modding Society Discord to talks about all things Redux! https://discord.gg/ksp-2-modding-society-1078696971088433153

Trailer: https://www.youtube.com/watch?v=PHOAInTu27w

Edited by NexusHelium
Link to comment
Share on other sites

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.

What Redux isn't.

  • 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.

Who's working on Redux?

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.

What is our scope for this project?

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...

What form will Redux take?

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?

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.

How can I contribute?

If you're a player: we are open to suggestions, do not hesitate to drop your ideas in the #redux_suggestions forum of the KSP2MS discord server. 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

Final disclaimer

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.

Edited by Safarte
Link to comment
Share on other sites

Basic rundown of Redux FPS improvements:

Leverage newer unity features
- Enable unity "Graphics Jobs" setting.  Cuts 3-5ms off the frame on my computer.
 <https://docs.unity3d.com/2022.3/Documentation/Manual/playersettings-windows.html>
- 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.
Resource flow request system has had some optimization, and a _lot_ of stuff uses flow requests.

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

Many, many code systems have been tweaked to remove unnecessary steps, fix unnecessary garbage allocations, and generally accomplish the same task with fewer resources.  I've grabbed a few message from the commit history for illustration of the kinds of things that were improved:

  • Disable unused IMGUI OnGUI() events.
  • VesselSAS: Use eco-friendly overload of GetComponents().
  • ThermalOcclusionGraph: Remove needless Count() enumerator walk.
  • Use null coalesce and getter cashing on heavily used convenience getters
  • Module_ResourceConverter: Remove unneeded material property getter.
  • Module_RCS: Remove unnecessary string formats. Add markers.
  • Module_WheelSuspension: coalesce vessel getter.
  • Data_Drag: Do the cheap check first when changing cube weights.
  • Module_SolarPanel: Cleanup string handling and reduce garbage.
  • CenterOfThrustQuery: fix garbage and simplify code.
  • GetPartOwner() is expensive, so cache results.
  • Rework MessageCenterMessage subclasses to avoid garbage on Clear()
  • SessionManager: Avoid garbage from re-boxing difficulty settings value
  • ResourceFlowRequestManager: Fix reflection garbage in value type
  • ResourceContainerGroupSequence: Fix garbage from enumerating interface,
  • Fix struts causing thermal code to rebuild data every frame.

None of these have a significant performance impact on their own.  However, they do add up, and there are quite a large number of them.

Performance test results compilation

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

Small vessel test:
53 fps -> 78 fps

Spoiler

lU3Zh2S.png

o0uDAg2.png

 

200 part test:
18 fps, 55.95ms/frame -> 24fps, 41.49ms/frame

Spoiler

mflDmj6.png

FLyhMlL.png

 


1500 part test
638 ms/frame -> 347 ms/frame
 

Spoiler

dJd72ty.png

gXLxWjq.png

 

 

Edited by foonix
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...