Skip to content

Releases: querygraph/saildoom

v0.3: SQLDoom's own client playing on Sail

Choose a tag to compare

@alexy alexy released this 06 Oct 19:40

saildoom-interactive.mp4 (95 s): SQLDoom's unchanged client playing Freedoom's E1M1 on Sail, recorded with scripts/record_play.py. The title screen and menus are driven by key presses; in the game the client's commands are the recorded bot run's (reference/run-e1m1-b, with its IDDQD and IDKFA), so the run is an eventful one. Every tic and every frame is computed live by Sail (the querygraph/sail saildoom branch) at the speed the client runs; the live rate is at the top left. This run is combat-heavy (god mode, every weapon, rockets): about 17 to 22 tics a second, against about 32 in lighter play; recording costs about 10%.

Play it yourself: git clone https://github.com/querygraph/saildoom && cd saildoom && scripts/setup.sh && scripts/play-sail.sh

Play data: Freedoom 0.13.0 as SQLDoom's tables (Parquet)

Choose a tag to compare

@alexy alexy released this 06 Oct 18:21

The tables SQLDoom (cedardb/sqldoom, GPL-2.0) loads from Freedoom 0.13.0 (BSD-3-Clause, FREEDOOM-COPYING.txt in the archive), exported as Parquet, every mutable table at its initial state. scripts/setup.sh downloads and extracts it into data/freedoom1.

sha256 fce9d80e9cf2345aeed1555d3caf52007ee138f2725125a6849a2bd3423cc992

v0.2: the game on Sail

Choose a tag to compare

@alexy alexy released this 05 Oct 09:44

Freedoom E1M1, 1,200 tics: every tic computed by Sail as one WITH RECURSIVE query (querygraph/sail work/recursive-cte @ 2285f2330) and every frame rendered by Sail. The world matches CedarDB's SQLDoom row for row at every tic. Only tic 0 and the player's commands come from the recorded run.

Renderer on Sail, pixel-checked against CedarDB

Choose a tag to compare

@alexy alexy released this 05 Oct 02:20

Every frame of a 526-tic Freedoom E1M1 run rendered by SQLDoom's renderer in Spark SQL on Sail main (d29516a7): 521 frames identical to CedarDB's, 5 differ by 1-8 pixels from last-bit libm differences (macOS vs glibc). The world state of each tic was recorded from SQLDoom on CedarDB; the game logic is not ported yet. saildoom-vs-cedardb-e1m1.mp4 shows Sail | CedarDB | differing pixels in red.