popka 0.0.16

A lightweight and beginner-friendly 2D game engine for the D programming language.


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:


This package provides sub packages which can be used individually:

popka:setup - A helper script that automates the project setup.

popka:web - A helper script to assist with the web export process.

Popka

Popka 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 popka;

bool gameLoop() {
    drawDebugText("Hello world!");
    return false;
}

void gameStart() {
    lockResolution(320, 180);
    updateWindow!gameLoop();
}

mixin callGameStart!(gameStart, 640, 360);

[!WARNING] This is alpha software. Use it only if you are very cool.

Supported Platforms

  • Windows
  • Linux
  • MacOS
  • Web

Games Made With Popka

Dependencies

Installation

This guide shows how to install Popka and its dependencies using DUB. While DUB simplifies the process, Popka itself doesn't require DUB.

Create a new folder and run inside the following commands:

dub init -n
dub run popka:setup

The final line modifies the default app.d and dub.json files, downloads raylib, and creates the necessary folders for Popka 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!". To avoid downloading raylib, pass offline to the script.

Documentation

For an initial understanding, the examples folder can be a good starting point. For a more detailed overview, check the TOUR.md file.

Attributes and BetterC Support

This project offers support for some attributes (@safe, @nogc, nothrow) and aims for good compatibility with BetterC. If you encounter errors with BetterC, try using the -i flag.

Web Support

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 popka:web

raylib Bindings

Popka provides bindings for raylib that are compatible with BetterC and the web.

import popka.ray;

void main() {
    InitWindow(800, 450, "raylib");
    while (!WindowShouldClose()) {
        BeginDrawing();
        ClearBackground(RAYWHITE);
        DrawText("Hello world from raylib!", 16, 16, 20, GRAY);
        EndDrawing();
    }
    CloseWindow();
}

Note

I add things to Popka when I need them.

License

The project is released under the terms of the MIT License. Please refer to the LICENSE file.

Authors:
  • Alexandros F. G. Kapretsos
Sub packages:
popka:setup, popka:web
Dependencies:
joka
Versions:
0.0.22 2024-Sep-13
0.0.21 2024-Sep-10
0.0.20 2024-Sep-07
0.0.19 2024-Sep-05
0.0.18 2024-Sep-03
Show all 23 versions
Download Stats:
  • 0 downloads today

  • 3 downloads this week

  • 14 downloads this month

  • 53 downloads total

Score:
0.9
Short URL:
popka.dub.pm