TL;DR
Get the latest gadgets delivered free with Prime
- Fast, free delivery on millions of items
- Prime Video, Amazon Music and more included
- Member-only deals all year
Parin, a 2D game engine written in the D programming language, was presented in a Show HN post as an option between a small library such as raylib and a larger engine such as Godot. Its project documentation describes built-in animation, physics, dialogue and tile-map features, with support for Windows, Linux, macOS and the web. The project’s adoption, performance and long-term roadmap are not established in the supplied material.
Parin, a 2D game engine written in the D programming language, was presented in a Show HN post as a middle option between a small graphics-and-game library such as raylib and a larger engine such as Godot. Its GitHub project describes a code-driven toolset with built-in features including animation, dialogue, tile maps and physics, aimed at developers who want reusable systems without an engine-mandated project structure.
The project’s README describes Parin as simple to set up and hack, with common game-development features included. Its design avoids requiring developers to use a specific architecture: the documentation says gameplay code can be organized to suit each game. A short example uses D code to set a resolution and draw text at the mouse position, then a mixin to create the program’s main function.
Listed features include a pixel-perfect physics engine, a dialogue system, atlas-based animation and tile-map structures. The project also lists a simple user-interface library as a work in progress. Optional integrations include Box2D, Steamworks, ENet and microui; the README says the required binaries for integrations such as Steamworks and ENet are not included and must be obtained or built and linked separately.
Parin supports Windows, Linux, macOS and web builds, according to its documentation. Users can start projects through DUB, D’s package and build tool, or use scripts included with the project. The web build instructions call for LDC and Emscripten, with the project recommending Emscripten version 4.0.23. Linux users also need system libraries for graphics, sound and input, with installation examples provided for several distributions.
A Code-First Option for D Games
Parin’s pitch addresses a familiar choice for game developers: assemble functionality from a relatively small library, or adopt a larger engine with more built-in systems and conventions. The project presents itself as an intermediate option, offering ready-made 2D tools while leaving game structure to the developer. That approach may appeal to D programmers who want a shared foundation without adopting a scene or entity model imposed by the engine.
The distinction matters because Parin explicitly says it has no built-in scene or entity system. Its documentation instead points to examples showing how users can build such systems with D’s Union type. For developers, this can mean more control over architecture, but also more responsibility for designing and maintaining parts that larger engines provide. The project’s own description frames that trade-off as flexibility rather than a promise that Parin suits every game.
As an affiliate, we earn on qualifying purchases.
How Parin Sets Its Scope
Parin’s project documentation places it between raylib and Godot in scope: more structured and feature-rich than a small library, but with less overhead than a larger engine. It says most of the project is built on Joka, a portable utility library that can also be used independently. The documentation also describes optional garbage collection, while allowing developers to use manual memory management or avoid garbage collection.
The project lists several games made with Parin, including Twenty Seconds, Twenty Steps, Worms Within and Clean & Haunted. It also provides examples, a cheatsheet and a tour for learning the API. The README says Parin has no scripting language; it points users to separate D projects and bindings for languages such as Wren and Lua if they need scripting support.
“Parin sits somewhere between a small library like raylib and a big engine like Godot.”
— Parin’s GitHub project description
As an affiliate, we earn on qualifying purchases.
Adoption and Project Roadmap
The supplied source material does not provide usage figures, performance benchmarks, release history or an independently assessed comparison with raylib or Godot. The project lists games made with Parin, but does not give details such as their development timelines, platforms or whether they were released commercially. It is also unclear how active development is or what features are planned next.
The documentation identifies the UI library as a work in progress and notes that certain integrations require users to obtain or build external binaries. It does not specify which versions of D compilers or dependencies are supported across all platforms, beyond recommending Emscripten 4.0.23 for web builds. Those details may affect how readily new users can set up projects.
As an affiliate, we earn on qualifying purchases.
Try the Templates and Examples
The project’s documentation directs new users to start with its examples or cheatsheet, or create a project using DUB’s Parin template. It offers basic and entity-oriented starting templates, and a quick-start command intended to open a simple window when setup succeeds. For web development, users can follow the separate build instructions and package the resulting HTML files for hosting.
The README invites users to report missing features through GitHub issues and discuss ideas in GitHub discussions. It also describes an addons folder for small, single-file D libraries. Further evidence of Parin’s development pace, compatibility and user uptake would depend on project updates and community activity; the supplied announcement does not set out a release schedule or specific upcoming milestone.
As an affiliate, we earn on qualifying purchases.
Key Questions
What is Parin?
Parin is a 2D game engine written in D. Its project describes it as an option between a smaller library such as raylib and a larger engine such as Godot.
Does Parin include a scene or entity system?
No. The project says it does not provide a built-in scene or entity system. It points users to examples showing how to build these systems using D’s Union type.
Which platforms does Parin support?
The project lists Windows, Linux, macOS and web support. Web builds require LDC and Emscripten, and Linux users may need to install graphics, sound and input libraries.
Can Parin be used for multiplayer or Steam releases?
The README says Parin includes Steamworks and ENet bindings and points to integration examples. The related binaries are not included, so users must obtain or build and link them separately.
Does Parin include a scripting language?
No. Parin’s documentation says it has no built-in scripting language and lists separate projects and bindings, including options for Wren and Lua, that developers could use.
Source: hn
Halloween Picks
halloween
As an affiliate, we earn on qualifying purchases.
