A .NET framework for building cross-platform 2D and 3D games in C#, re-implementing Microsoft's discontinued XNA Framework.
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
Create a new folder and generate a project from the template with DUB
dub init -t parin - 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
A Rust framework and studio app for building native and web apps and games with a GPU-accelerated UI runtime and live-editable UI DSL.
Open 3D Engine (O3DE), a multi-platform, real-time 3D engine for building games, cinematic 3D worlds and simulations.
A Rust CLI and WASM tool that snaps messy AI-generated pixel art onto a clean, consistent pixel grid with a fixed palette.
A fast 2D rendering library for the web that draws graphics, sprites and text with WebGL and WebGPU.
Official Unity integration for Yarn Spinner, a screenplay-style dialogue system for running branching conversations in games.