Version 2025.11.6.2939
Jump to navigation
Jump to search
Version 2025.11.6.2939
Development phase
Pre-alpha
Release date
November 27th, 2025
2025.11.6.2939 is a KSA build released on November 27th, 2025 which added an engine designer and included several changes and fixes.
Additions
- Added an engine designer which can be found in View -> Debug -> Show Engine Designer. This is intended to help modders create engines with their desired performance values using the new thermodynamic engine model.
- Added a float slider to the ImGui helper library.
- Added a two-column text widget to the ImGui helper library.
- Added a default size when opening the engine designer window.
- Adding new Brutal.Concurrency package
- Adding new Brutal.Render.Mesh package
- Added IRenderContext interface from Framework
- Added Directory.Build.props file to simplify project management
- Added sampler and texture handles to the LightSystemSettings.
- Added TextureGather Macro for TextureSet.glsl
- Added template free constructor to construct Kittens without the need for a template.
- Added ability to deserialize vehicles and kittens from save files and correctly find and reference their template parts and subparts from the ModLibrary. This is a big step forward in our serialization capability for save files.
- Added ability to create completely new vehicles in the dev part editor and be able to serialize them out into save files and reload those save files.
Changes
- Fix mismatch between image view format and glsl image type in 2d clouds causing validation error
- Reduce noise on clouds appearing on sudden camera movements
- Improve cloud upscaling stability when a cloud layer passes in front of another
- Reduce long trails on cloud upscaling at short/medium distances, can still be visible at long distances where flicker reduction is needed
- Use an anisotropic sampler on 2d clouds
- Improved tiny timestep logic to combine timesteps rather than drop them, which eliminates a slight jitter observed when sailing.
- Fixed an off-by-one error in combustion properties lookup tables which was causing properties to snap to each data point rather than interpolate.
- Adjusted some precision for physical quantity numeric printouts.
- Brutal 2025.11 Update
- Core, FMOD, GLI, GLFW, GLTF, ImGui, KTX, RakNet, ShaderCompiler, STB, and Texture packages all updated to 2025.11.x
- Integrated new ByteSize and ElementCount types from where they're being used in Vulkan and Core
- New String8, RefString8, RefString8Array type added
- Mem.Size and sizeof replaced with ByteSize.Of<T>
- For parameters that are now ByteSize, magic numbers have been replaced with ByteSize.Zero or ByteSize.Of<T>
- Replaced Align utilities with the existing AlignTo function in ByteSize
- Replaced ByteEx.Format usage with existing ToString in ByteSize
- Replaced integers in project with ByteSize type where applicable to mitigate refactoring
- RawSpan superceded by NativeStrideSpan
- Raw pointers superceded by Ptr<T> and Ptr where applicable
- ElementCount replacing usages of countable integers where applicable
- Support for local project references to Brutal packages for ease of development
- Texture Utility functions ported from Framework
- Optimisation for Kittens outside of their render range
- Optimisation for shader data passed to secondary windows
- Optimisation for location name rendering on planets (like cities/landmarks)
- Optimisation for Orbit line data packing
- Moved LightSystem's shadow atlas to become a bindless textue.
- Reordered the descriptors in pipeline for Part Renderer and added in the BindlessTextureSet.
- Promoted GpuTextureSystem to Program, to use the descriptor set in other systems.
- Serialize Vehicles and Kittens seperately into save files - for now we only serialize template Ids of parts and transform information. Later we will add other part related information as it gets created. For now all the rest of the data is instantiated from the template of each part that is loaded on game startup.
- Destroy existing vehicles and kittens before loading a save, the restore them from the individual save - no templates or existing vehciles required.
- PSA: THIS CHANGE WILL BREAK ALL EXISTING SAVE Files Again!!!!
- Replace all "string" usages in ImGui with our new ImString type
- Small engine designer improvements.
Removals
- Deleted Framework reference
- Removed the wind sound from the save file. Not necessary to serialize this out.
Changelog JSON
View changelog entries
{
"build": "2025.11.6.2939",
"date": "2025-11-27",
"fromRevision": 2924,
"toRevision": 2939,
"commits": [
{
"rev": 2925,
"date": "2025-11-26",
"author": "Ghassen Lahmar",
"lines": [
"Fix mismatch between image view format and glsl image type in 2d clouds causing validation error"
]
},
{
"rev": 2926,
"date": "2025-11-26",
"author": "Ghassen Lahmar",
"lines": [
"Reduce noise on clouds appearing on sudden camera movements",
"Improve cloud upscaling stability when a cloud layer passes in front of another",
"Reduce long trails on cloud upscaling at short/medium distances, can still be visible at long distances where flicker reduction is needed",
"Use an anisotropic sampler on 2d clouds"
]
},
{
"rev": 2927,
"date": "2025-11-26",
"author": "gravhoek-rw",
"lines": [
"Improved tiny timestep logic to combine timesteps rather than drop them, which eliminates a slight jitter observed when sailing."
]
},
{
"rev": 2928,
"date": "2025-11-26",
"author": "gravhoek-rw",
"lines": [
"Added an engine designer which can be found in View -> Debug -> Show Engine Designer. This is intended to help modders create engines with their desired performance values using the new thermodynamic engine model.",
"Fixed an off-by-one error in combustion properties lookup tables which was causing properties to snap to each data point rather than interpolate.",
"Adjusted some precision for physical quantity numeric printouts.",
"Added a float slider to the ImGui helper library.",
"Added a two-column text widget to the ImGui helper library."
]
},
{
"rev": 2929,
"date": "2025-11-26",
"author": "gravhoek-rw",
"lines": [
"Added a default size when opening the engine designer window."
]
},
{
"rev": 2930,
"date": "2025-11-27",
"author": "GitHub",
"lines": [
"Brutal 2025.11 Update",
"Core, FMOD, GLI, GLFW, GLTF, ImGui, KTX, RakNet, ShaderCompiler, STB, and Texture packages all updated to 2025.11.x",
"Deleted Framework reference",
"Adding new Brutal.Concurrency package",
"Adding new Brutal.Render.Mesh package",
"Integrated new ByteSize and ElementCount types from where they're being used in Vulkan and Core",
"New String8, RefString8, RefString8Array type added",
"Mem.Size and sizeof replaced with ByteSize.Of<T>",
"For parameters that are now ByteSize, magic numbers have been replaced with ByteSize.Zero or ByteSize.Of<T>",
"Replaced Align utilities with the existing AlignTo function in ByteSize",
"Replaced ByteEx.Format usage with existing ToString in ByteSize",
"Replaced integers in project with ByteSize type where applicable to mitigate refactoring",
"RawSpan superceded by NativeStrideSpan",
"Raw pointers superceded by Ptr<T> and Ptr where applicable",
"ElementCount replacing usages of countable integers where applicable",
"Support for local project references to Brutal packages for ease of development",
"Added IRenderContext interface from Framework",
"Texture Utility functions ported from Framework",
"Added Directory.Build.props file to simplify project management"
]
},
{
"rev": 2931,
"date": "2025-11-27",
"author": "Christopher Howlett",
"lines": [
"Optimisation for Kittens outside of their render range",
"Optimisation for shader data passed to secondary windows"
]
},
{
"rev": 2932,
"date": "2025-11-27",
"author": "Christopher Howlett",
"lines": [
"Optimisation for location name rendering on planets (like cities/landmarks)"
]
},
{
"rev": 2933,
"date": "2025-11-27",
"author": "Christopher Howlett",
"lines": [
"Optimisation for Orbit line data packing"
]
},
{
"rev": 2934,
"date": "2025-11-27",
"author": "Dan Southon",
"lines": [
"Moved LightSystem's shadow atlas to become a bindless textue.",
"Added sampler and texture handles to the LightSystemSettings.",
"Reordered the descriptors in pipeline for Part Renderer and added in the BindlessTextureSet.",
"Promoted GpuTextureSystem to Program, to use the descriptor set in other systems.",
"Added TextureGather Macro for TextureSet.glsl"
]
},
{
"rev": 2935,
"date": "2025-11-27",
"author": "JPLRepoRocketwerkz",
"lines": [
"Serialize Vehicles and Kittens seperately into save files - for now we only serialize template Ids of parts and transform information. Later we will add other part related information as it gets created. For now all the rest of the data is instantiated from the template of each part that is loaded on game startup.",
"Added template free constructor to construct Kittens without the need for a template.",
"Destroy existing vehicles and kittens before loading a save, the restore them from the individual save - no templates or existing vehciles required.",
"Added ability to deserialize vehicles and kittens from save files and correctly find and reference their template parts and subparts from the ModLibrary. This is a big step forward in our serialization capability for save files.",
"Added ability to create completely new vehicles in the dev part editor and be able to serialize them out into save files and reload those save files.",
"PSA: THIS CHANGE WILL BREAK ALL EXISTING SAVE Files Again!!!!"
]
},
{
"rev": 2936,
"date": "2025-11-27",
"author": "Christopher Howlett",
"lines": [
"Replace all \"string\" usages in ImGui with our new ImString type"
]
},
{
"rev": 2937,
"date": "2025-11-27",
"author": "JPLRepoRocketwerkz",
"lines": [
"Removed the wind sound from the save file. Not necessary to serialize this out."
]
},
{
"rev": 2938,
"date": "2025-11-26",
"author": "gravhoek-rw",
"lines": [
"Small engine designer improvements."
]
}
]
}