Parin is a compact, MIT-licensed 2D game engine implemented for the D programming language that positions itself between lightweight libraries like raylib and full-featured engines like Godot. It emphasizes a code-driven approach with no enforced architecture, flexible memory options (garbage collection available but avoidable), and a modular foundation built on the portable Joka utility library. Out of the box it provides pixel-perfect physics, an atlas-based animation system, efficient tile maps, a dialogue system, a simple UI (work in progress), and bindings/extras such as Box2D, Steamworks, ENet, and microui. Cross-platform support includes Windows, Linux, macOS and WebAssembly builds, and sensible defaults and helpers (animation utilities, timers, etc.) aim to reduce boilerplate while keeping the engine hackable.
Getting started uses DUB templates or manual install scripts; a small runtime helper runs a user-supplied per-frame function so projects can stay very code-centric. Web builds require LDC plus Emscripten, and Linux users need standard development libs for audio/graphics. There is no built-in scene/entity or scripting system by design, but example projects demonstrate patterns using D unions and suggested scripting ports are listed. Hot reloading is intentionally unsupported, small addons can live in an addons folder, and several indie games are listed as examples of use. Documentation, examples, and a cheatsheet are provided to accelerate adoption.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.