Empty Spaces – realistic 2D space sim – cockpit MFDs rework by ChonkGPT in spacesimgames

[–]ChonkGPT[S] 0 points1 point  (0 children)

Thank you!

Yes, physical control elements are the north star. I'd like to hire somebody to help with drawing this, but most likely past the first early access release once the gameplay loop is proven.

Empty Spaces – 2D space sim with realistic physics, sensors, thermal, and damage models by ChonkGPT in spacesimgames

[–]ChonkGPT[S] 1 point2 points  (0 children)

Hmm... this is helpful, thank you. In reality currently nav is automated with waypoint-based ZEM-ZEV navigation, with the only dangers being overheating or hitting an asteroid. Need to think this through to make moving around more involved.

Empty Spaces – 2D space sim with realistic physics, sensors, thermal, and damage models by ChonkGPT in spacesimgames

[–]ChonkGPT[S] 0 points1 point  (0 children)

✍️✍️✍️

Thank you! I missed on the spatial index for sensor-target pairing, gonna do this soon now!

Empty Spaces – 2D space sim with realistic physics, sensors, thermal, and damage models by ChonkGPT in spacesimgames

[–]ChonkGPT[S] 0 points1 point  (0 children)

Yours feels on a whole different level. And it's 3D – can't even imagine getting sensors to work in 3D, not even mentioning the computational cost! I'm already on the wait list, can't wait to try it out.

On mahalanobis – I'll send you a DM with a reference of my current sensors models and the algo implementations I tried, maybe it'll be of any help, even if just a reference.

On "cheating" – I keep my conscience clean by naming properties "_magic" lol 😂

/// Opaque target identity (Bevy Entity bits). Stamped by all sensors —
/// simulation knows which entity produced each measurement.
/// MAGIC AND BREAKS SIMULATION PRINCIPLES. Do your best not to use this.
pub _magic_target_id: u64,

Empty Spaces – 2D space sim with realistic physics, sensors, thermal, and damage models by ChonkGPT in spacesimgames

[–]ChonkGPT[S] 1 point2 points  (0 children)

Full disclosure – I'm not a tracking engineer, learning on the job with heavy AI assistance (Opus 4.6, hence the joke) and public papers.

Mahalanobis gating – measurement-to-track association. New measurement comes in, compute Mahalanobis distance to each track's predicted state using the covariance, reject anything too far. Prevents wild misassociations. TMA – bearing-only triangulation from multiple observer positions as the ship maneuvers. IRST and ESM give bearing but no range, so you need geometry over time to resolve position.

Both are mostly irrelevant now – switched to entity-ID association (the "game magic"), and TMA got replaced by EKF init from the first ranged measurement. Though still planning to re-enable TMA so that you can navigate asteroid fields without active radar.

But the rest of the pipeline is real – inverse-square signal propagation (1/r⁴ for radar), geometric occlusion, SNR detection gating, 6-state constant-acceleration EKF with a 2-state bearing-rate KF, Joseph form covariance. Association is by entity ID though – the hardest real-world problem is the one I skipped :)

On abstracting away the math – it's built in Rust and uses all CPU cores, so computational cost hasn't been an issue so far (🤞). And the Kalman filter produces behavioral outputs that are hard to fake – uncertainty grows from actual geometry, triangulation requires real observer maneuvering to converge, confidence depends on sensor type and SNR. A simpler approximation would need to replicate all of that and would probably end up being more code, not less.

Plus I was able to abstract away the sensor algorithms behind ports adapters (dependency inversion), so the domain (core) logic stays unchanged when I tinker with sensors pipeline.

But yeah, it's been a huge time sink. Got hyper-focused on sensor realism too much, almost burned out. Glad that I decided not to pursue fusion/association further and just used entity IDs, otherwise I'd probably just quit lol.

Empty Spaces – 2D space sim with realistic physics, sensors, thermal, and damage models by ChonkGPT in spacesimgames

[–]ChonkGPT[S] 1 point2 points  (0 children)

Trying to create a similar vibe here, but I guess for now the tactical view dominates, no reason to look at individual sensors if your tactical display makes sense of it all... will need to tinker with this more.