I'm Mortoc, the new graphics programmer on the team. I wanted to take some time to chat about KSP2's graphics and performance-where we are today and what our process is and what the team's goals are.
As many of you have noticed, KSP2's performance isn't amazing at the start of Early Access. In a game as complex as KSP2, there are a dizzying number of areas that we could spend our efforts on and the feedback we're receiving is invaluable for us to focus our time on the issues that affect the players the most.
There are different reasons that the framerate can suffer. If the CPU is asked to do too much during simulation or if the CPU is asked to send too much data to the GPU in an organized fashion, it can make the framerate drop without maxing out the GPU. In most cases the performance in KSP2 is bottlenecked by the GPU, and since I'm a graphics engineer, that's what we're going to investigate in this article. Other engineers are working hard on CPU-facing improvements that you'll see reflected in upcoming updates.
Deep Dive Warning: Numbers Ahead
Before we dig into the numbers, let's start with a primer on what we're looking for here. Game developers tend to think of framerate in terms of milliseconds rather than FPS because it's easier to budget out your frame time that way. Converting from FPS to ms is simple, you just use the formula 1,000 / FPS = ms (for example: 100FPS means it takes 10ms per frame, 1,000 / 100 = 10). This way we're talking about how long a system takes to run directly. We want to measure how many milliseconds each system in the game takes in order to figure out which are taking too much time and dropping the framerate.
We use a tool called RenderDoc for our automated performance testing (amongothertools). RenderDoc allows us to get the ground-truth timings for every single command sent to the GPU. Our tooling can then pull out the slowest GPU events for us to investigate.
The machine I'm using here for performance analysis is a laptop with i7-8650U CPU, Mobile Nvidia GTX 1060 6GB GPU and 16GB RAM. It has a slower GPU than our current min spec, so we're not expecting it to make a playable framerate yet.
KSC Landing Screen - 11FPS
In this scene, eight of the ten worst-offenders are related to PQS+. PQS stands for Procedural Quad System and it's the algorithm used to generate planet terrains. KSP2 uses a modified version of PQS from KSP1, generally referred to as PQS+ after all the modifications made to it for KSP2.
That table starts with a draw call to PQSRENDERTEMP, which emits 229,248 vertices. Each other draw call that uses that specific number is doing some work on the PQS mesh. The two draw calls not related to PQS in that table are the ones with a 6 in the name and are related to the cloud system. From this report we can see that the terrain clearly takes the most GPU time in this scene; 29.94ms in total.
Let's try another vantage point.
LKO - Low Graphics - 8FPS
As you travel away from any Celestial Body, we swap out the complex Local shader with a Scaled version that's much more efficient. This scene is from Low Kerbin Orbit, but still close enough to the planet to be using the Local version of the shader. PQS+ is again 8 out of the top 10 worst calls (the line Dispatch(12, 240,1) which is Draw Call #1 is from at the start of the frame when we kick off a compute shader to generate the terrain mesh). That first PQS+ call that took over 10ms is especially dirty.
Staying Grounded
Clearly the PQS System and related shaders are a big performance problem. Let's talk about that, but first dig into some background. A core philosophy for the early part of KSP2's EA cycle is to make sure "it still feels like a KSP game". This means that for each feature we build, we want to start with what KSP1 did and then build a similar system that improves on it.
Following that goal, the team started with the PQS design from KSP1 and added modern graphics features for KSP2's PQS+. As development progressed on KSP2, more and more features were added to PQS+ to keep pushing the artistic envelope.
I might be biased, but from orbit, Kerbol's planets look incredible. Our art team did a fantastic job. From the surface the game is still quite pretty, but the terrain itself just doesn't have the consistent visual quality we want yet. While trying to build that ground up to our visual ambitions, we added more features than the previous PQS architecture can support. It wasn't until the ramp up to EA that it became understood just how far past the limits of the tech we had reached.
Future Trajectory
OK, so, clearly there's a problem, what are we going to do about it? A few things are being done simultaneously. First, we're prioritizing performance optimizations for this system over the next couple of patches. Particularly for when graphics settings are "LOW", we want this system to be eating far less GPU time. This takes two forms: one is pure engineering optimization that doesn't affect final graphics, the other is to disable certain visual features when the graphics are set to "LOW" or "MEDIUM". That first category, engineering-only fixes, was taken about as far as it could be with PQS+. Our short-term plans are currently focused on the second category, turning off features that don't provide enough bang for the buck.
Here's an example of an optimization that affects the visuals. Coming soon in a patch, we will be able to turn off the Anti-Tile system in the terrain. In a bunch of places, the effect is negligible, but you can see the Eve surface has a repetitive texture artifact without it. This visual polish comes at the cost of accessing each texture a few more times, putting strain on the memory bandwidth of the GPU. Disabling this effect can have a small-to-medium sized effect on the framerate, depending on the GPU in question.
Optimizations like that one are happening now and will arrive in the next few updates. The rest of this article deals with systems that are in progress, so we cannot make specific promises about timelines or features until further along in development. But here's where we're heading:
In the medium term, my first major project on this team is to design and build a next-generation terrain system - what we're calling the CBT system (it uses a Concurrent Binary Tree data structure, but it could also stand for Celestial Body Terrain). PQS+ has served us well, but nowadays video cards are much more flexible and there are more modern approaches that will give us better results in terms of performance and visual quality. Exciting new earth-shaking architectures are possible. The next-gen CBT system will be the topic of a future dev blog which will contain a much more detailed look at what we're building. While it's too early to share any details, I will say that I'm excited about the artistic expressiveness, potential terrain variety, and performance of the CBT system.
Another area that will see a major shift in visual quality and performance is bringing the game up to Unity's modern renderer, HDRP (read more about HDRP here if you're curious, it rocks). The main benefits we get from HDRP are a more optimized render engine, which means faster framerates, and a more flexible shader model, which means more effective dev team efforts. It'll also make it easier for visual mods to be built. As a sidenote, despite how much we love you modders, this change will definitely break most visual mods (sorry modders, sometimes we must hurt the ones we love).
These in-progress changes will allow us to build more scientifically grounded yet fantastical worlds for the Kerbals to explore for years to come.
Graphics settings default to “high quality” on first playthrough. If you are having framerate issues on initial load, access Settings via the ESC menu and select alternate quality settings.
Fuel flow and Delta-V calculations are currently undergoing optimization, but on day 1 of Early Access, high numbers of engines pulling from a common fuel source may impact framerate. If you’re having trouble achieving a desired framerate on your machine, consider using a smaller number of higher-performance engines on your vehicle. This issue is very high priority for us and will be addressed in an upcoming update.
The center of lift indicator does not yet update dynamically when you adjust a wing in the editor - to see the effects of a wing modification, you must first exit the editor to update the center of lift.
In KSP2, the arrow keys now pan the camera, rather than rotating it (right mouse button still rotates the camera). If you get the camera in an undesirable state, press the Home key on your keyboard to reset it to its default position.
Known Issues Being Actively Worked On:
Some parts from the original KSP aren't available-a few parts won't carry over — for example, the increased flexibility of the new engine plate system has reduced the need for bespoke compound parts like the Twin Boar and Mammoth engines. Also, the old patchwork wing parts have been supplanted by procedural wings. Other parts (for example A.I.R.B.R.A.K.E.s) are still in development and will be added in future updates. And of course Science collection, future propulsion, and colony parts will be added alongside their respective feature updates.
There are still a few issues with our serialization code, and very rarely (especially when building high-complexity vehicles) your vehicle may collapse into an unrecoverable pile of parts on the floor of the VAB. The undo key may also break your in-progress build. For now, it’s a good idea to save frequently.
Trip planner – the trip planner occasionally displays inaccurate delta-v numbers for some destinations. All delta-v numbers in the VAB use vacuum specific impulse numbers, which affects their accuracy. This will be addressed in a future update. Delta-v numbers shown in the staging stack during flight dynamically reflect the current flight state.
Re-entry heating and thermal systems are offline - you'll have a brief window here at the beginning of Early Access during which you can re-enter any atmosphere without a heat shield. We’re still buttoning down our heat transfer, ablation, and occlusion systems. Vapor cone visual effects are also still in-progress.
No collision on trees or rocks - we're optimizing collision for these objects right now, and in the interest of maintaining good framerates we're going to complete that optimization work before letting you crash into these objects. For now, they're holograms. While KSC buildings ARE collideable, they are not yet destructible.
Framerate stutters/lag - we're continuing to work down the list of performance optimizations, from highest to lowest impact. As we push processes out of the main thread and continue to improve the efficiency of our physics, resource flow, VFX, and graphics systems, framerates should improve for all players.
Some UI elements can be challenging to interact with - we're still cleaning up the systems that give priority to different classes of information in the map view, and there are times when you need to click a few extra times to get a hold of the maneuver planner. Similarly, you may have some challenges associating selected parts with their data in the Part Manager. We’re making several changes to the current UI so you can expect this experience to improve over time.
This list is not exhaustive-we are tracking and working on a number of additional issues. If you have non-bug feedback during Early Access, please submit that feedback through the form in the launcher. If you've run into a bug (or think you have) please go to Private Division Support.
Kerbal Space Program 2 blasts off into Early Access today! Pioneer the game with us as we enter the deep space journey of Early Access. Your feedback and suggestions can help shape the future of the game. Make sure to join the Discord, Subreddit, and/or forums, and follow us on social media! We’ll be posting frequent game development updates, challenges, and much more across these channels. Don’t miss out!
For information on how to submit feedback, check here: Feedback FAQ.
Grab a snack and delve into Kerbal Space Program 2 Early Access! We can't wait to see what you build, discover, and accomplish.
From us at Intercept Games and Private Division, thank you for your support. Enjoy a new cinematic trailer to watch over and over! Happy launching!
Hey Kerbonauts, KSP Community Lead Michael Loreno here. I’ve connected with multiple teams within Intercept after ingesting feedback from the community and I’d like to address some of the concerns that are circulating regarding KSP 2 performance and min spec.
First and foremost, we need to apologize for how the initial rollout of the hardware specs communication went. It was confusing and distressful for many of you, and we’re here to provide clarity.
TLDR: The game is certainly playable on machines below our min spec, but because no two people play the game exactly the same way (and because a physics sandbox game of this kind creates literally limitless potential for players to build anything and go anywhere), it’s very challenging to predict the experience that any particular player will have on day 1. We’ve chosen to be conservative for the time being, in order to manage player expectations. We will update these spec recommendations as the game evolves.
Below is an updated graphic for recommended hardware specs:
I’d like to provide some details here about how we arrived at those specs and what we’re currently doing to improve them.
To address those who are worried that this spec will never change: KSP2’s performance is not set in stone. The game is undergoing continuous optimization, and performance will improve over the course of Early Access. We’ll do our best to communicate when future updates contain meaningful performance improvements, so watch this space.
Our determination of minimum and recommended specs for day 1 is based on our best understanding of what machinery will provide the best experience across the widest possible range of gameplay scenarios.
In general, every feature goes through the following steps:
Get it working
Get it stable
Get it performant
Get it moddable
As you may have already gathered, different features are living in different stages on this list right now. We’re confident that the game is now fun and full-featured enough to share with the public, but we are entering Early Access with the expectation that the community understands that this is a game in active development. That means that some features may be present in non-optimized forms in order to unblock other features or areas of gameplay that we want people to be able to experience today. Over the course of Early Access, you will see many features make their way from step 1 through step 4.
Here's what our engineers are working on right now to improve performance during Early Access:
Terrain optimization. The current terrain implementation meets our main goal of displaying multiple octaves of detail at all altitudes, and across multiple biome types. We are now hard at work on a deep overhaul of this system that will not only further improve terrain fidelity and variety, but that will do so more efficiently.
Fuel flow/Resource system optimization. Some of you may have noticed that adding a high number of engines noticeably impacts framerate. This has to do with CPU-intensive fuel flow and Delta-V update calculations that are exacerbated when multiple engines are pulling from a common fuel source. The current system is both working and stable, but there is clearly room for performance improvement. We are re-evaluating this system to improve its scalability.
As we move forward into Early Access, we expect to receive lots of feedback from our players, not only about the overall quality of their play experiences, but about whether their goals are being served by our game as it runs on their hardware. This input will give us a much better picture of how we’re tracking relative to the needs of our community.
With that, keep sending over the feedback, and thanks for helping us make this game as great as it can be!
Earlier this month we took a trip to Amsterdam and held the 'KSP Insiders Program' event in association with the European Space Agency. Content creators and news outlets got a sneak peek at Kerbal Space Program 2 before its release.
And today those previews go live! Everyone captured their own content and had their own adventures, so we highly recommend checking out the variety of content out there (we know we'll be watching!).
From exploring ESA's Erasmus center to watching the static-fire of Super Heavy, it was a great time! Thank you to ESA for hosting us and to everyone who came out! Here's a bit from our adventure:
Fret not, you won't have to wait long for KSP2's release! We hope you're as excited as Val and Jeb are!
This moment feels a little bit like dropping a kid off for the first day of school. We've got a lot of love for this game - we think we've prepared it for every eventuality, but we also know that it has more growing to do. We're about to take the first steps on a journey that will eventually carry KSP2 through colonies, interstellar travel, and multiplayer.
Now the real learning begins!
What to Expect
On day 1 of Early Access, players will be able to create and fly vehicles in Sandbox Mode and visit any location in the Kerbolar System. They'll also have access to our first four interactive tutorials, accessible via the all-new Training Center. These teach basic rocketry concepts to give new players a head-start on their space programs. You'll encounter new parts, including new procedural wings, new wheels, new command pods, new cargo parts, and new engines (and the first of the new fuels - liquid hydrogen). To pave the way for the upcoming interstellar-class parts, we've also added a new, larger core size. As we progress through Early Access, we'll continue to expand on all of these features.
We can't wait to finally see what creative feats the community can achieve with the new procedural and color-customizable parts. Our environment team is eager to watch players explore the revamped terrains of the Kerbolar System (and are curious if they'll discover anything unexpected). The UX/UI team is keen to learn how the updated user experience feels - they've put a lot of effort into wrangling a very complex set of requirements into a new, more streamlined presentation. This is it - the moment has arrived when all our plans come into contact with reality!
There are many new features, big and small, for you to explore on day 1. We've put together this guide to give you an overview of what's new and to break down some known issues. Release day notes and future patch notes will also live here.
In the launcher you'll find reporting tools that you can use to tell us about any problems you've encountered, as well as give feedback about any other aspect of the player experience you think we should know about. This feedback will be invaluable to us as we continue to improve the game's stability, performance, and playability.
What Comes Next
Many new features will arrive as we continue development, including Science Mode, Colonies, Interstellar exploration, and Multiplayer. Take a look at our Early Access Roadmap for more details.
In the meantime, we're bringing back Weekly Challenges!
We intend to mix things up a little bit going forward, but the first challenge will be a classic Achievement Challenge:
Primary Goal: Fly to the Mun and get a picture of a Kerbal in front of the most interesting feature you can find.
Stretch Goal: Strand a Kerbal there and pick them up with a second vehicle, returning them to safely to Kerbin.
Jeb-level Goal: Do any of the above on any other celestial body in the Kerbolar System.
If you want us to see (and maybe share) your achievement, use #KSP2WeeklyChallenge on social media, or share them in our official Discord.
Welcome to KSP2! The journey begins!
-Nate Simpson, Creative Director at Intercept Games
Your feedback will be crucial in helping to make KSP 2 the best it can be, and we want to hear about everything that is important to you. Below you can find common questions and answers related to how you can give feedback on your KSP 2 experience.
How can I give feedback on Kerbal Space Program 2 while it's in Early Access?
Kerbal Space Program has many places where you can provide us feedback on your experiences with the game. The Kerbal Community Team will regularly be reading and sharing player feedback heard among the Kerbal community channels with Intercept Games.
In the game's launcher, which can be accessed through the Steam and Epic versions, there will be a permanent feedback button where you can share your feedback on any topic. Periodically there will be topic-specific surveys from the team, which will help us concentrate feedback and ensure no one's feedback is missed.
What is considered feedback? What feedback are you looking for?
Early Access is about learning and improving, and our intent is to do that hand-in-hand with our community of players. While we build on the foundations of Kerbal Space Program 2, your experiences, both good and bad, will be invaluable in how we make the game even better - and that's what we want to know from you all throughout Early Access.
We absolutely want to hear about what you enjoy, don't enjoy, could be better, or tweaked. We also want to hear about any bugs you encounter throughout gameplay.
Anything more urgent such as crashes, freezes, or other game-breaking issues, please contact Private Division Customer Support. Our support agents will work to assist you while collecting as much information as possible, as fixing these are the highest priority for our development team throughout Early Access.
How can I give feedback on Kerbal Space Program 2 in the Game's Launcher?
When you launch the game through Steam or the Epic Games Store, a launcher will first appear. This is where you can start the game or find the latest news, patch notes, and community highlights. On this launcher, there are two ways to give feedback on your game experience to the development team:
Send feedback button: This button lives permanently in the launcher and can be accessed anytime. If you come across anything in the game you like, dislike, or think could be improved you could give feedback on it through this.
Active Survey: If there is a feedback survey currently live, you will see a button on the game page (in the launcher) allowing you to give your feedback. These surveys will be time-limited and topic-specific. For example, one may be activated once a new content update is released, or if we want to deep-dive on certain areas or features of the game.
What language(s) are you collecting feedback in?
Currently we are only supporting responses through the Send Feedback Button or Active Surveys in English.
Kerbal Space Program 2 launches in Early Access in a month. To celebrate, we are releasing one of several tutorials found within the game to improve the onboarding experience for new and returning players. These tutorials are introductions to concepts in the game, after which players will experience an interactive version of the concept.
This tutorial explores the concept of entering and maintaining orbit (through sandwiches science).