A game engine for top-down 2D RPG games.
rpg game-engine raylib c99
C 91.3%
Shell 2.6%
Other 6.2%
32 1 0

Clone this repository

https://tangled.org/emmeline.girlkisser.top/keraforge
git@knot.girlkisser.top:emmeline.girlkisser.top/keraforge

For self-hosted knots, clone URLs may differ based on your setup.

readme
Keraforge
=========

A game engine for top-down 2D RPG games.

[Warning]
Keraforge is still a work-in-progress. Expect breaking
changes!

Motive
------

  There's already a large number of quality game engines
and frameworks in the wild, so what does Keraforge do
differently?

  Design:
    Keraforge is designed with a specific kind of game in
  mind: top-down, story-driven, handcrafted RPGs. If your
  dream game fits in this category, then Keraforge aims to
  help make it a reality.

  Simplicity:
    Game engines and frameworks always have a learning
  curve. Keraforge is no exception. What I can aim for,
  though, is keep the learning curve from being exponential
  and overwhelming users. I want Keraforge to allow anyone
  to share their story with an engine that gives them the
  ability to pour love into their work.

  Cost:
    Keraforge is 100% free (BSD 3-Clause), zero royalties,
  no up-front costs, and no paywalls. I want to give people
  the chance to create something beautiful, not to take
  their money.

  It's also important to discuss the cons of Keraforge.
It's going to be fundamentally different from any other
engine since it's made for a very specific style of game.
This means that if your game does not fit this style, you
might have more trouble.

Usage
-----

  Pre-built binaries are not *yet* distributed. I'll start
publishing binaries once the engine reaches a stable state.
For now, you can compile it yourself. See the section on
development below.

  If you want to see my development progress, see <todo>.

Develop
-------

  Libraries (Debian):
    Raylib:
      libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev libwayland-dev libxkbcommon-dev
    Keraforge:
      liblzma-dev

  Initialise a development environment:
  `sh run.sh init`

  Build "system" is contained in a folder of shell scripts,
`scripts`. You can run these with the `run.sh` script to
run multiple tasks in order. Generally:
  `sh run.sh build run`
is all you'll need to run while developing.

  Please note that I will be hesitant to accept PRs to this
codebase. I am very nitpicky with my code style and if your
PR does not match it (or if it goes out-of-scope, adds
useless/redundant functions, further pollute global scope,
etc), then I will likely decline the PR or request a number
of changes. Ideally, please communicate with me before
submitting a PR just for it to get closed. You can find my
contact information on my website. I don't want you wasting
your time or effort!

  Additionally, please read through <etc/style.txt> before
attempting to contribute. It'll make your life much easier
if you understand my style *before* attempting a PR.

License
-------

BSD 3-Clause, see <license>.