Repolode
Kapendev

Kapendev/parin

A simple 2D game engine for the D programming language, with built-in physics, animation, tilemaps and dialogue.

Stars
133
Forks
6
Open issues
2
Last commit
2 days ago

What is it?

Parin is a 2D game engine written for the D programming language. It sits between small libraries like raylib and large engines like Godot, aiming to give game code some structure without imposing a fixed architecture. Garbage collection is available for convenience, and developers can switch to manual memory management when needed.

The engine bundles common game needs such as a pixel-perfect physics engine, a flexible dialogue system, atlas-based animation, efficient tile map structures, and a simple UI library that is still in progress. It also includes bindings for Box2D, Steamworks, ENet and microui. Most of its utilities are built on Joka, a portable library that can be used on its own.

Projects can be created with DUB using starter templates, or set up by cloning the repository. Supported targets are Web (via LDC and Emscripten), Windows, Linux and macOS.

Key features

  • 01Pixel-perfect 2D physics engine
  • 02Flexible dialogue system
  • 03Atlas-based animation library
  • 04Efficient tile map structures
  • 05Bindings for Box2D, Steamworks and ENet
  • 06Web, Windows, Linux and macOS support

Use cases

  • Building small 2D games or prototypes in D
  • Making browser-playable games compiled to WebAssembly
  • Creating games that need Steam integration or multiplayer networking

Quick start

  1. 1

    Create a new folder and generate a project from the template with DUB

    dub init -t parin
  2. 2

    Run the project

    dub run

Things to know

  • Hot reloading is not supported and the author does not plan to add it.
  • Linux needs several system libraries installed before it will build.
  • Parin has no built-in scene or entity system and no scripting language.

Topics

FAQ

What is parin?
A simple 2D game engine for the D programming language, with built-in physics, animation, tilemaps and dialogue. Parin is a 2D game engine written for the D programming language. It sits between small libraries like raylib and large engines like Godot, aiming to give game code some structure without imposing a fixed architecture. Garbage collection is available for convenience, and developers can switch to manual memory management when needed.
Is parin free to use? What license does it have?
parin is open source under the MIT license. Check the license terms before using it in commercial products.
Is parin still maintained?
Actively maintained. The last commit to parin was on Oct 18, 2026.
What can I use parin for?
Building small 2D games or prototypes in D Making browser-playable games compiled to WebAssembly Creating games that need Steam integration or multiplayer networking
How do I install parin?
Create a new folder and generate a project from the template with DUB: dub init -t parin Run the project: dub run
Where can I get parin?
The source code and installation instructions are on GitHub: https://github.com/Kapendev/parin

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects