Parin is a lightweight and beginner-friendly 2D game engine for the D programming language. It focuses on providing a simple foundation for building 2D games.
import parin;
void ready() {
lockResolution(320, 180);
}
bool update(float dt) {
drawDebugText("Hello world!", Vec2(8));
return false;
}
void finish() { }
mixin runGame!(ready, update, finish);
Warning
This is alpha software. Use it only if you are very cool.
- PC: Windows, Linux, macOS
- Web
This guide shows how to install Parin and its dependencies using DUB. While DUB simplifies the process, Parin itself doesn't require DUB.
Parin has the following dependencies:
Create a new folder and run inside the following commands:
dub init -n
dub run parin:setup
The final line modifies the default app.d and dub.json files, downloads raylib, and creates the necessary folders for Parin to function properly. The following folders will be created:
- assets: This folder is used to store game assets.
- web: This folder is used for exporting to the web.
Once the installation is complete, run the following command:
dub run
If everything is set up correctly, a window will appear showing the message "Hello world!".
Some libraries for sound, graphics, and input handling are required before using Parin on Linux. Below are installation commands for some Linux distributions.
Ubuntu:
sudo apt install libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev
Fedora:
sudo dnf install alsa-lib-devel mesa-libGL-devel libX11-devel libXrandr-devel libXi-devel libXcursor-devel libXinerama-devel libatomic
Arch:
sudo pacman -S alsa-lib mesa libx11 libxrandr libxi libxcursor libxinerama
For an initial understanding, the examples folder can be a good starting point. For a more detailed overview, check the TOUR.md file.
This project offers support for the @safe
attribute and aims for good compatibility with BetterC.
If you encounter errors with BetterC, try using the -i
flag.
To export a game to the web, the game must be compatible with BetterC. The web folder contains a helper script to assist with the web export process.
It can be used with DUB by running the following command:
dub run parin:web
While Parin provides a good game development experience in D, it might not fit everyone's needs. Here are some other notable alternatives to consider:
I add things to Parin when I need them.
The project is released under the terms of the MIT License. Please refer to the LICENSE file.