· via Hacker News – Front Page (native)
Parin is a new open-source 2D game engine for D positioned between raylib and Godot
Parin is an open-source 2D game engine for D that offers more structure than raylib with far less overhead than Godot, shipping pixel-perfect physics, tile maps, dialogue and web builds.
Parin, an open-source 2D game engine written in the D programming language, reached the Hacker News front page on October 17 through a Show HN post linking to its GitHub repository. Its creator, who goes by Kapendev, pitches it as a middle option for developers: more guidance than a minimal library like raylib, and far less overhead than a large engine like Godot.
Between raylib and Godot
According to the repository's README, Parin is code-driven: it imposes no architecture of its own, so gameplay code can be organized in whatever way fits the project. Memory handling is flexible — D's garbage collector is on by default for convenience, but developers can fall back to manual management or avoid the GC entirely. Under the hood, most of the engine rests on Joka, a portable utility library that also works on its own, including alongside raylib. The README is careful to note that Parin is not a raylib wrapper; raylib is just one of its backends, and a custom backend is currently in experimental development.
What ships with it
The built-in feature set targets common 2D needs: a pixel-perfect physics engine, a dialogue system, an atlas-based animation library, tile map structures, and a UI library that is still under construction. Optional extras include Box2D, Steamworks, ENet and microui. A minimal example in the README consists of a single function that locks the resolution to 320 by 180, draws text at the mouse cursor every frame, and becomes a runnable program through a mixin — illustrating how little boilerplate a first project needs.
Setup, platforms and shipping
New projects start through DUB, D's build tool and package manager: dub init -t parin, followed by dub run. Templates exist for a basic setup and an entity-based one. Linux users must first install system libraries for sound, graphics and input, with commands provided for Ubuntu, Fedora, Arch and Void. Supported targets are Windows, Linux, macOS and the web; browser builds require LDC and Emscripten, with version 4.0.23 recommended, and the README explains how to package the output for itch.io as an HTML project. Steam releases and multiplayer are covered through the bundled Steamworks and ENet bindings, though those binaries must be downloaded and linked separately. The FAQ also confirms the engine suits HD games, not just pixel art.
Deliberate omissions
Several missing pieces are intentional. There is no built-in scene or entity system; instead, the examples folder shows how to assemble one using the engine's Union type. There is no scripting language either — the README points to third-party options such as a Wren port for D, arsd.script and Lua bindings. Hot reloading is explicitly unsupported, with the developer stating he simply has no interest in that feature. The project does list six released games built with it, including Twenty Seconds, Twenty Steps and Worms Within, and recommends a toolchain of the Zed editor, Tiled for level design, Pixelorama and GIMP for art, and MilkyTracker for music.
Why it matters
Many indie developers work somewhere between copying raylib samples and committing to Godot's editor-centric workflow, and that gap is exactly where Parin aims. D itself is a rarity in games — a compiled language with metaprogramming support and optional garbage collection — and Parin gives it a small but genuine ecosystem, complete with shipped titles, browser deployment and Steam support. The design is candid about its limits: absent features like the scene system are documented alongside recipes for building your own, which suits a tool whose stated appeal is being easy to modify. For solo developers and small teams that want structure without an engine's weight, this is a project worth watching.
- #game-engine
- #d-language
- #open-source
- #indie-games
- #2d-games