Version 2025.11.10.2915

From Kitten Space Agency Wiki
Jump to navigation Jump to search
Version 2025.11.10.2915
Development phase
Pre-alpha
Release date
November 25th, 2025

2025.11.10.2915 is a KSA build released on November 25th, 2025 which included the first support for various fuel types and combustions and several changes and fixes.

Additions

  • Added ability to reference bones by name
  • Added a few initial combustion processes and their supporting substances: Hydrogen+Oxygen, Kerosene+Oxygen, MMH+NTO, and one more exotic type.
  • Added TemperatureReference and MolarMassReference.
  • Added new celestial body types to help with interface drawing. PlanetaryBody, Asteroid, MinorBody, and others. These will be expanded and grown to influence their visuals and behaviors, but their addition now allows modders (and our artists) to make use of them.
  • Added user can set the amount of 'orbit solvers', which are worker threads doing orbital and physics work. This will default to half the number or cores a user has, exceeding the amount of cores will reduce efficiency.
  • Added tooltip when hovering over celestial interface box, indicating how to set/unset target and focus camera. Credit: NoMrBond.
  • Added Orbit Solver now shows the amount of processors available in the settings screen, so users can't accidentally set more than are available.

Changes

  • Implement new method to make depth buffer effects compatible with MSAA without supersampling/rendering multiple samples per pixel
  • Use new method on clouds, atmosphere and exhausts
  • Disable ocean tesselation when camera altitude is higher than max ocean tesselation distance
  • Fix load order of transparencies MSAA and exhausts
  • Fixed potential crash when clicking the parent body orbit line to create a parent transfer burn too close to the current parent position (so an invalid burn anyway as you have to allow time to escape the parent SOI).
  • Fixed Sphere of Influence rendering issues on older AMD cards.
  • Moved default ImGui font to the KSA project
  • Complete overhaul of how rocket engines of all types work in KSA.
  • Rockets are now split into controllers, rockets, cores, and nozzles. Cores consume propellant and produce energetic gases which are ducted into Nozzles to produce thrust. Each Rocket is exactly one Core feeding one or more Nozzles. Controllers issue coordinated commands to one or more Rockets.
  • Controllers, Rockets, Cores, and Nozzles can be spread to various parts of the XML tree to play better with the emerging part/sub-part system.
  • The initial type of core is currently the Combustor. This uses a CombustionProcess to turn propellant into exhaust gases via a chemical reaction.
  • Combustors are more efficient at higher chamber pressures, leading to efficiency losses when throttling.
  • The initial type of nozzle is currently the DeLavalNozzle. This is a fixed-geometry nozzle which turns low-velocity, high-pressure, high-enthalpy gas into high-velocity, low-pressure, low-enthalpy exhaust.
  • Nozzle thrust is now composed of both momentum thrust and pressure thrust, leading to variable thrust (and therefore specific impulse) depending on ambient pressure.
  • Implemented a SubstanceLibrary which contains both the Substances and the CombustionProcesses used by Combustors.
  • KNOWN ISSUE: Nozzles can produce zero thrust at high ambient pressure, will be resolved with a simple model for flow separation.
  • KNOWN ISSUE: Kittens, old Gemini, and old Apollo thrusters are inactive while I finish converting the XML.
  • KNOWN ISSUE: Thrust editor is non-functional while I convert it to use the new data types.
  • Fixed odd connection behaviors in the vehicle editor when a child part is in the vehicle's part tree but not using its connector.
  • Packed the radius of the sun into SunPosition in the UboLightingData
  • Changed calculations for celestial eclipsing shadows to factor in sun radius.
  • Fixed orbit lines for satellites and minor bodies would render no matter what. This meant that at large celestial body counts, too many distant orbit lines would be drawn. This work was identified by Brian Thrain and tomservo, who have made an excellent website to generate system mods. This will be the subject of a developer update. Their work allowed us to test large data easily.
  • Increased the maximum number of orbit lines to allow very large celestial object counts for modding.
  • Split out the ShouldDrawUiOrLines to have a wrapped function ShouldDrawLines. This means for some bodies (such as minor ones), we might draw the name but not the orbit lines. For major bodies, there is no change.
  • Unified the coloring for the boxes and the text, as it was disjointed seeing them different. This needs some tweaking, but is a visual improvement for now.
  • Fixed some of the template classes were not using correct inheritance, strictly speaking, although this wasn't causing any issues I could see for now.
  • Fixed issue where templates were not being loaded as their correct inherited class due to use of new rather than override. Only affected the visual template for interface.
  • Fixed inconsisent tooltip implementation methods.
  • Fixed I did not use the orbit line color for vessel name and box coloring, which would mean colorblind support settings were ignored.
  • Ported kitten EVA thrusters to the new rocket system.
  • Fixed a case where the flight computer could produce a NaN if a thruster was configured for an axis in which it had zero authority.
  • KNOWN ISSUE: The flight computer temporarily can't control the kitten EVA thrusters, requires a small rework to how rocket performance is computed.

Removals

  • Remove ocean screen-space mode because it complicates MSAA compatibility and switch back to using ocean meshes at large distances. Finetune ocean meshes, depth bias and shore filter to fix distant/shore z-fighting on the meshes without using the screen-sapce mode
  • Deleted the old broken thrust editor but made the related exhaust overlay easier to access (View -> Debug -> Show Engine Debug).

Changelog JSON

View changelog entries
{
  "build": "2025.11.10.2915",
  "date": "2025-11-25",
  "fromRevision": 2897,
  "toRevision": 2915,
  "commits": [
    {
      "rev": 2898,
      "date": "2025-11-24",
      "author": "Ghassen Lahmar",
      "lines": [
        "Implement new method to make depth buffer effects compatible with MSAA without supersampling/rendering multiple samples per pixel",
        "Use new method on clouds, atmosphere and exhausts",
        "Remove ocean screen-space mode because it complicates MSAA compatibility and switch back to using ocean meshes at large distances. Finetune ocean meshes, depth bias and shore filter to fix distant/shore z-fighting on the meshes without using the screen-sapce mode",
        "Disable ocean tesselation when camera altitude is higher than max ocean tesselation distance"
      ]
    },
    {
      "rev": 2899,
      "date": "2025-11-24",
      "author": "Ghassen Lahmar",
      "lines": [
        "Fix load order of transparencies MSAA and exhausts"
      ]
    },
    {
      "rev": 2900,
      "date": "2025-11-25",
      "author": "JPLRepoRocketwerkz",
      "lines": [
        "Fixed potential crash when clicking the parent body orbit line to create a parent transfer burn too close to the current parent position (so an invalid burn anyway as you have to allow time to escape the parent SOI)."
      ]
    },
    {
      "rev": 2901,
      "date": "2025-11-25",
      "author": "Morrow",
      "lines": [
        "Fixed Sphere of Influence rendering issues on older AMD cards."
      ]
    },
    {
      "rev": 2902,
      "date": "2025-11-25",
      "author": "Christopher Howlett",
      "lines": [
        "Moved default ImGui font to the KSA project"
      ]
    },
    {
      "rev": 2903,
      "date": "2025-11-25",
      "author": "Hanan Finnerty",
      "lines": [
        "Added ability to reference bones by name"
      ]
    },
    {
      "rev": 2904,
      "date": "2025-11-24",
      "author": "gravhoek-rw",
      "lines": [
        "Complete overhaul of how rocket engines of all types work in KSA.",
        "Rockets are now split into controllers, rockets, cores, and nozzles. Cores consume propellant and produce energetic gases which are ducted into Nozzles to produce thrust. Each Rocket is exactly one Core feeding one or more Nozzles. Controllers issue coordinated commands to one or more Rockets.",
        "Controllers, Rockets, Cores, and Nozzles can be spread to various parts of the XML tree to play better with the emerging part/sub-part system.",
        "The initial type of core is currently the Combustor. This uses a CombustionProcess to turn propellant into exhaust gases via a chemical reaction.",
        "Combustors are more efficient at higher chamber pressures, leading to efficiency losses when throttling.",
        "The initial type of nozzle is currently the DeLavalNozzle. This is a fixed-geometry nozzle which turns low-velocity, high-pressure, high-enthalpy gas into high-velocity, low-pressure, low-enthalpy exhaust.",
        "Nozzle thrust is now composed of both momentum thrust and pressure thrust, leading to variable thrust (and therefore specific impulse) depending on ambient pressure.",
        "Implemented a SubstanceLibrary which contains both the Substances and the CombustionProcesses used by Combustors.",
        "Added a few initial combustion processes and their supporting substances: Hydrogen+Oxygen, Kerosene+Oxygen, MMH+NTO, and one more exotic type.",
        "Added TemperatureReference and MolarMassReference.",
        "KNOWN ISSUE: Nozzles can produce zero thrust at high ambient pressure, will be resolved with a simple model for flow separation.",
        "KNOWN ISSUE: Kittens, old Gemini, and old Apollo thrusters are inactive while I finish converting the XML.",
        "KNOWN ISSUE: Thrust editor is non-functional while I convert it to use the new data types."
      ]
    },
    {
      "rev": 2905,
      "date": "2025-11-25",
      "author": "Morrow",
      "lines": [
        "Fixed odd connection behaviors in the vehicle editor when a child part is in the vehicle's part tree but not using its connector."
      ]
    },
    {
      "rev": 2906,
      "date": "2025-11-24",
      "author": "gravhoek-rw",
      "lines": [
        "Deleted the old broken thrust editor but made the related exhaust overlay easier to access (View -> Debug -> Show Engine Debug)."
      ]
    },
    {
      "rev": 2907,
      "date": "2025-11-25",
      "author": "Dan Southon",
      "lines": [
        "Packed the radius of the sun into SunPosition in the UboLightingData",
        "Changed calculations for celestial eclipsing shadows to factor in sun radius."
      ]
    },
    {
      "rev": 2908,
      "date": "2025-11-25",
      "author": "Rocket",
      "lines": [
        "Fixed orbit lines for satellites and minor bodies would render no matter what. This meant that at large celestial body counts, too many distant orbit lines would be drawn. This work was identified by Brian Thrain and tomservo, who have made an excellent website to generate system mods. This will be the subject of a developer update. Their work allowed us to test large data easily.",
        "Increased the maximum number of orbit lines to allow very large celestial object counts for modding.",
        "Added new celestial body types to help with interface drawing. PlanetaryBody, Asteroid, MinorBody, and others. These will be expanded and grown to influence their visuals and behaviors, but their addition now allows modders (and our artists) to make use of them.",
        "Split out the ShouldDrawUiOrLines to have a wrapped function ShouldDrawLines. This means for some bodies (such as minor ones), we might draw the name but not the orbit lines. For major bodies, there is no change.",
        "Unified the coloring for the boxes and the text, as it was disjointed seeing them different. This needs some tweaking, but is a visual improvement for now.",
        "Fixed some of the template classes were not using correct inheritance, strictly speaking, although this wasn't causing any issues I could see for now."
      ]
    },
    {
      "rev": 2909,
      "date": "2025-11-25",
      "author": "Rocket",
      "lines": [
        "Fixed issue where templates were not being loaded as their correct inherited class due to use of new rather than override. Only affected the visual template for interface."
      ]
    },
    {
      "rev": 2910,
      "date": "2025-11-25",
      "author": "Rocket",
      "lines": [
        "Added user can set the amount of 'orbit solvers', which are worker threads doing orbital and physics work. This will default to half the number or cores a user has, exceeding the amount of cores will reduce efficiency.",
        "Fixed inconsisent tooltip implementation methods."
      ]
    },
    {
      "rev": 2911,
      "date": "2025-11-25",
      "author": "Rocket",
      "lines": [
        "Fixed I did not use the orbit line color for vessel name and box coloring, which would mean colorblind support settings were ignored."
      ]
    },
    {
      "rev": 2912,
      "date": "2025-11-25",
      "author": "Rocket",
      "lines": [
        "Added tooltip when hovering over celestial interface box, indicating how to set/unset target and focus camera. Credit: NoMrBond."
      ]
    },
    {
      "rev": 2913,
      "date": "2025-11-25",
      "author": "Rocket",
      "lines": [
        "Added Orbit Solver now shows the amount of processors available in the settings screen, so users can't accidentally set more than are available."
      ]
    },
    {
      "rev": 2914,
      "date": "2025-11-24",
      "author": "gravhoek-rw",
      "lines": [
        "Ported kitten EVA thrusters to the new rocket system.",
        "Fixed a case where the flight computer could produce a NaN if a thruster was configured for an axis in which it had zero authority.",
        "KNOWN ISSUE: The flight computer temporarily can't control the kitten EVA thrusters, requires a small rework to how rocket performance is computed."
      ]
    }
  ]
}

See also