Version 2025.9.6.2317
Jump to navigation
Jump to search
Version 2025.9.6.2317
Development phase
Pre-alpha
Release date
September 05th, 2025
2025.9.6.2317 is a KSA build released on September 5th, 2025 which included updates to ground tracking, key bindings, and several changes and fixes.
Additions
- Added planet map rendering to the ground track window.
- Added helper functions for computing the billboard and texture matrices for planet rendering.
- Added a tiny amount of ambient light to the planet map renderer's surface view.
- Added methods to retrieve object Keplerian velocity at a given game time.
- Added keybindings are only serialized if they are different from the default, to ease changes to default keybindings during development. If the user sets a custom binding, it will not be touched - but if the user is using the default binding, it will be updated if the default changes. Credit: Anth.
- Added light intensity value
- Added a simple color darkening for distant celestial sprites depending on the approximate lit fraction of the visible disc. This mostly works seamlessly but does show a little bit of artifacting in the sprite-sphere blend phase.
- Added the first ability to set a spacecraft roll target independently from a pointing target. Currently you can set NORM (behaves as previously), INVERT (rolls 180 degrees from NORM), or ANY (nulls out roll rate but does not try to control roll angle).
- Added First pass on Location music player. Plays music tracks tagged with the current SOI parent ID.
- Added tweaks to distant object rendering. Now blending is much better between sprites and their distant spheres. The minimums have been reduced a bit, and the sun is now better modulated based on its distance, ready to render multiple solar systems at once.
Changes
- Simplified reusable active thruster buffer by removing the interior nullable types and eliminating an unnecessary per-loop data copy.
- Reduced a small amount of duplication in vehicle target navigation code.
- Reduced the curvature strength of the earth erosion terrain modifier.
- Reformatted the DrawLatitude function for readability.
- Fixed hitching at max time warp due to flight plans expiring immediately. This is a stop-gap fix, will look at a more robust flightplan expiry system.
- The flight computer now correctly tracks objects in Keplerian orbits, even at high time warp.
- Fixed a method name spelling error.
- Fix for secondary viewports when moving between windows with different DPI scaling
- Fixed keybindings would not be loaded. This occurred due to changes in TOML serialization. Now saved keybindings will be correctly loaded when set by the user.
- Overhauled KSA lighting to utilize clustered lighting which greatly improves performance and increases how many active lights we can have at one time. (was 32 max now with current tests at 1000+)
- LightCollection to hold the CPU specific light info.
- LightUtils for functions that help with light calculations.
- FramePackedVkBuffer to aid in packing lots of data into one buffer and making it easier to work with frames in flight
- Tetrahedral based shadow calcs for point lights, reducing how many times the closest objects are required to be re-rendered and thus improving performance in comparison to the traditional cube maps
- Shadow atlas to pack shadow maps into one texture.
- WIP Spotlight shadows (just need to sort out the sampling part)
- A debug window for lights (holds CPU times, debug visuals and more info on the way)
- Inverse VP now can be accessed from camera
- VmaAllocator now in program and can be passed into classes such as FramePackedBuffers
- Changed the light z-sorting to use a Radix sort instead of purely a less than comparison, improving performance.
- Moved BufferHelpers to Extensions folder.
- Enabled the light PBR calculations to get better visuals.
- Changed cluster selection in shaders from brute force to O(1)
- Renamed LightData.glsl to PunctualLighting.glsl for clarity
- Changed attenuation calcs to vulkan gltf extension recommendation in preparation to make it easier for designers to curate lights
- Refactored part of Orbit's GetNearestPoint() logic since it was taking up a significant portion of frame time. Still using the old system for hyperbolic orbits as they need a bit more precision.
- Fixed some GetNearestPoint() logic that was unintentionally behind a null check.
- Fixed light transmitance color being black due to dark side of the planet results in early escape from mesh rendering, causing lights to not be drawn (or their shadows) when a vessel is in the shadow of the planet.
Removals
- Removed light type from flags and promoted to it's own var
- Removed DescriptorPool from ShadowMapSystem in favor of a passed in one
Changelog JSON
View changelog entries
{
"build": "2025.9.6.2317",
"date": "2025-09-05",
"fromRevision": 2300,
"toRevision": 2317,
"commits": [
{
"rev": 2301,
"date": "2025-09-04",
"author": "gravhoek-rw",
"lines": [
"Simplified reusable active thruster buffer by removing the interior nullable types and eliminating an unnecessary per-loop data copy."
]
},
{
"rev": 2302,
"date": "2025-09-04",
"author": "gravhoek-rw",
"lines": [
"Reduced a small amount of duplication in vehicle target navigation code."
]
},
{
"rev": 2303,
"date": "2025-09-04",
"author": "Linx-RW",
"lines": [
"Added planet map rendering to the ground track window.",
"Added helper functions for computing the billboard and texture matrices for planet rendering.",
"Added a tiny amount of ambient light to the planet map renderer's surface view.",
"Reduced the curvature strength of the earth erosion terrain modifier."
]
},
{
"rev": 2304,
"date": "2025-09-04",
"author": "Linx-RW",
"lines": [
"Reformatted the DrawLatitude function for readability."
]
},
{
"rev": 2305,
"date": "2025-09-05",
"author": "JPLRepoRocketwerkz",
"lines": [
"Fixed hitching at max time warp due to flight plans expiring immediately. This is a stop-gap fix, will look at a more robust flightplan expiry system."
]
},
{
"rev": 2306,
"date": "2025-09-04",
"author": "gravhoek-rw",
"lines": [
"The flight computer now correctly tracks objects in Keplerian orbits, even at high time warp.",
"Added methods to retrieve object Keplerian velocity at a given game time.",
"Fixed a method name spelling error."
]
},
{
"rev": 2307,
"date": "2025-09-05",
"author": "Christopher Howlett",
"lines": [
"Fix for secondary viewports when moving between windows with different DPI scaling"
]
},
{
"rev": 2308,
"date": "2025-09-05",
"author": "Rocket",
"lines": [
"Fixed keybindings would not be loaded. This occurred due to changes in TOML serialization. Now saved keybindings will be correctly loaded when set by the user.",
"Added keybindings are only serialized if they are different from the default, to ease changes to default keybindings during development. If the user sets a custom binding, it will not be touched - but if the user is using the default binding, it will be updated if the default changes. Credit: Anth."
]
},
{
"rev": 2309,
"date": "2025-09-05",
"author": "GitHub",
"lines": [
"Overhauled KSA lighting to utilize clustered lighting which greatly improves performance and increases how many active lights we can have at one time. (was 32 max now with current tests at 1000+)",
"LightCollection to hold the CPU specific light info.",
"LightUtils for functions that help with light calculations.",
"FramePackedVkBuffer to aid in packing lots of data into one buffer and making it easier to work with frames in flight",
"Tetrahedral based shadow calcs for point lights, reducing how many times the closest objects are required to be re-rendered and thus improving performance in comparison to the traditional cube maps",
"Shadow atlas to pack shadow maps into one texture.",
"WIP Spotlight shadows (just need to sort out the sampling part)",
"A debug window for lights (holds CPU times, debug visuals and more info on the way)",
"Inverse VP now can be accessed from camera",
"Added light intensity value",
"VmaAllocator now in program and can be passed into classes such as FramePackedBuffers",
"Changed the light z-sorting to use a Radix sort instead of purely a less than comparison, improving performance.",
"Moved BufferHelpers to Extensions folder.",
"Enabled the light PBR calculations to get better visuals.",
"Changed cluster selection in shaders from brute force to O(1)",
"Renamed LightData.glsl to PunctualLighting.glsl for clarity",
"Changed attenuation calcs to vulkan gltf extension recommendation in preparation to make it easier for designers to curate lights",
"Removed light type from flags and promoted to it's own var",
"Removed DescriptorPool from ShadowMapSystem in favor of a passed in one"
]
},
{
"rev": 2310,
"date": "2025-09-05",
"author": "Morrow",
"lines": [
"Refactored part of Orbit's GetNearestPoint() logic since it was taking up a significant portion of frame time. Still using the old system for hyperbolic orbits as they need a bit more precision."
]
},
{
"rev": 2311,
"date": "2025-09-05",
"author": "Morrow",
"lines": [
"Fixed some GetNearestPoint() logic that was unintentionally behind a null check."
]
},
{
"rev": 2312,
"date": "2025-09-05",
"author": "Rocket",
"lines": [
"Fixed light transmitance color being black due to dark side of the planet results in early escape from mesh rendering, causing lights to not be drawn (or their shadows) when a vessel is in the shadow of the planet."
]
},
{
"rev": 2313,
"date": "2025-09-04",
"author": "gravhoek-rw",
"lines": [
"Added a simple color darkening for distant celestial sprites depending on the approximate lit fraction of the visible disc. This mostly works seamlessly but does show a little bit of artifacting in the sprite-sphere blend phase."
]
},
{
"rev": 2314,
"date": "2025-09-04",
"author": "gravhoek-rw",
"lines": [
"Added the first ability to set a spacecraft roll target independently from a pointing target. Currently you can set NORM (behaves as previously), INVERT (rolls 180 degrees from NORM), or ANY (nulls out roll rate but does not try to control roll angle)."
]
},
{
"rev": 2315,
"date": "2025-09-05",
"author": "matthew.caradus",
"lines": [
"Added First pass on Location music player. Plays music tracks tagged with the current SOI parent ID."
]
},
{
"rev": 2316,
"date": "2025-09-05",
"author": "Rocket",
"lines": [
"Added tweaks to distant object rendering. Now blending is much better between sprites and their distant spheres. The minimums have been reduced a bit, and the sun is now better modulated based on its distance, ready to render multiple solar systems at once."
]
}
]
}