Show HN: I wrote a DOOM clone in my own programming language

· coding gaming · Source ↗

TLDR

  • 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.

Original | Discuss on HN