seaquest — swarm trainer (the sim as a library + a live viewer)
=====================================================
simcore.dll is seaquest's deterministic simulation as a library. Link it into
a program of your choosing (any language with a C FFI) and drive a FLEET of headless
runs at full speed — no window, no renderer — to TRAIN or EVALUATE a bot. The decide
logic you write here runs unchanged in the real game: same observation, same buttons.
simviewer.exe is a companion GPU window that renders your swarm live, driven
from your harness over a socket — so you can watch what your bots are doing.

This is a developer toolkit, not a game — it has no path to the leaderboard. A bot
trained here reaches a score the normal way: by playing through the real game, which
records a replay the server re-simulates to verify.

Contents:
  simcore.dll  — the sim library (built for this platform)
  simviewer.exe  — the GPU viewer (watch your swarm; needs a GPU + Vulkan)
  examples/  — ready-to-run harnesses (Python, stdlib-only + C)
  README.md  — the sim API: C-ABI, the Python Fleet, determinism, the observation contract
  VIEWER.md  — the viewer: launch + the control-socket protocol

Needs Python 3.7+ (for the Python examples) or a C compiler (for the C example).

Try it (Python, from this folder):
  SIMCORE_LIB=./simcore.dll python3 examples/fleet_smoke.py

Watch a swarm render live (needs a GPU + Vulkan) — point the viewer at the game/
folder's art, then stream to it from your harness (protocol in VIEWER.md):
  ./simviewer.exe --assets ../game --socket 9977
(On Windows run simviewer.exe from a terminal in this folder.)

The C genetic-programming example (Linux/macOS; needs a C compiler with OpenMP):
  cc -O2 -fopenmp examples/evolve.c -L. -lsimcore -lm -lpthread -ldl -Wl,-rpath,. -o evolve
  ./evolve
