Building a Tiny 3D Renderer for a Tiny Handheld(saffroncr.itch.io)
249 points by g0xA52A2A 3 days ago | 20 comments
tl;dr: A developer built a 3D software renderer from scratch for the Playdate handheld, which has no GPU and a 1-bit display, using Quake's BSP format to leverage precomputed visibility (PVS) and lighting via existing tools like TrenchBroom. Key techniques include a 16-bit reciprocal z-buffer, perspective-correct texture mapping with cheap reciprocal approximations, 8x8 Bayer dithering for faux-grayscale lighting, and half-resolution (200x120) rendering scaled up. The final look is a cel-shaded, high-contrast style inspired by Obra Dinn, chosen because fully textured scenes became too noisy on a 1-bit screen.
HN Discussion:
  • Admiration for designing thoughtfully to the medium's constraints rather than fighting them
  • Sharing related projects or similar hardcore low-level rendering experiences
  • Technical curiosity about specific implementation choices like float routines and upscaling order
  • Appreciation for combining art direction with rendering tech rather than just technical feats
  • Pointing to relevant related techniques like fractal dithering or ASCII art on same display