Cubedoom is a raycasting arena shooter built entirely in Spectre, a custom language, using SDL2 and demonstrating C-interop and multi-dimensional arrays.
Key Takeaways
Spectre’s extern-based header syntax was introduced specifically to support C-interop for Cubedoom’s SDL2 integration.
Raycasting renders the 3D world per-frame; wall distance determines vertical slice height, keeping the engine lightweight.
v0.0.5 adds a --translate-c flag, experimental LLVM and C99 backends, improved type invariants, and faster compile times.
Roadmap includes sound, more enemy types, and an ammo system; both Spectre and Cubedoom are open to contributions.
Hacker News Comment Review
One commenter correctly noted the rendering is Wolfenstein 3D-style raycasting, not DOOM’s BSP/seg-based renderer – the title is technically imprecise.
No substantive discussion of Spectre’s language design, LLVM backend, or C-interop beyond surface-level reactions.
Notable Comments
@Panzerschrek: flags that raycasting is Wolfenstein 3D’s technique, not DOOM’s – a meaningful technical distinction for the renderer’s architecture.