Parin is a 2D game engine developed for the D programming language, designed to provide a balance between the minimalism of a library and the comprehensive features of a large-scale engine. The developer, Kapendev, positioned the tool to offer more structural direction than a small library like raylib while maintaining significantly less overhead than a heavy engine like Godot. It is built on Joka, a portable utility library, and is intended to be 'delightfully simple' and easily hackable for developers who prefer a code-first approach over engine-mandated architectures.
This image represents the Parin engine, which serves as a middle ground between low-level libraries and full-scale engines.
The engine's design philosophy centers on three core pillars: code-driven design, flexible abstraction, and modularity. Unlike many engines that force a specific scene or entity system on the user, Parin allows gameplay code to be structured however the developer sees fit. It also offers flexible memory management, providing garbage collection for convenience while allowing developers to opt for manual management or avoid it entirely. To simplify development, Parin includes 'batteries-included' features such as animation helpers, timers, pathfinding, and a pixel-perfect physics engine, alongside a flexible dialogue system and atlas-based animation library.
While Parin provides a robust foundation for 2D games, it has specific technical boundaries and requirements. It currently supports Web (via WebAssembly), Windows, Linux, and macOS, but it does not include a built-in scripting language; developers looking for scripting must integrate external projects like Wren or Lua. Additionally, while it includes bindings for Steamworks and ENet to support multiplayer and Steam integration, the binaries themselves are not included and must be linked separately. For web builds, the engine requires the LDC compiler and Emscripten to function. The project also lacks hot reloading out of the box, a choice made by the developer to keep the core engine lean and focused on its primary mechanics.