← All projects

Games & simulation · 2 min read

Signal Ghosts

Signal Ghosts separates what exists in the world from what an agent believes about it. A hunter receives imperfect sound information, updates a probability grid, and uses that estimate to navigate and intercept another actor.

My role
Personal project
Project scope
Offline Godot / C# prototype · private source
Signal Ghosts paused with a probability heatmap, sound-wave rings, agent routes and a live mathematics panel.Open full image in a new tab
Paused gameplay showing the posterior probability grid, sound observations, route overlays, and Bayesian calculations. The training view exposes ground truth to the player.
System walkthrough

The main responsibilities in this workflow.

  1. Noisy delayed sound
  2. Belief-grid update
  3. Estimated target state
  4. Navigation and interception
  5. Inspectable simulation

The belief is different from the true position

The simulation uses prior, likelihood, and posterior layers to represent uncertainty. Sound observations are noisy and delayed, so the hunter should not behave as though it has direct access to an exact target position.

The player can inspect these layers and optionally display ground truth. That overlay is for the person observing the simulation; it is not the information used by the autonomous decision model. Keeping those views separate makes it possible to explain an apparently mistaken movement as a consequence of incomplete evidence.

An estimate has to become an action

The project connects sensing and beliefs to navigation and interception. Visibility-graph navigation helps route movement around obstacles, while interception calculations account for motion. Projectiles use swept collision and ricochet behavior rather than relying only on a final-position overlap.

The interesting engineering problem is the connection between these stages. A believable posterior alone does not create a useful game: the agent has to make a decision from it, and the result has to be legible on screen.

Pause and inspect instead of guessing

Player and spectator modes, observer selection, probability overlays, single-step execution, and speed controls make behavior inspectable. The core sensing and simulation code is separate from the Godot input and rendering layer.

Deterministic verification programs accompany the core. The model still uses simplified sound propagation, attenuation, and reflection; it is an educational uncertainty experiment rather than a physically complete acoustic model.

Project notes

Private offline prototype. No claim of learned AI, production game deployment, or physically exact acoustics.

Related work