1
0
Fork 0
mirror of https://git.coom.tech/drummyfish/raycastlib.git synced 2024-12-22 01:16:19 +01:00
Find a file
2018-10-24 15:06:00 +02:00
media Update Gamebuino 2018-10-24 15:06:00 +02:00
make.sh Update tests 2018-09-21 11:14:02 +02:00
raycastlib.h Bump version 2018-10-02 14:59:15 +02:00
README.md Update README.md 2018-10-23 06:28:36 +00:00
test.c Fix empty pixels 2018-09-29 08:13:00 +02:00
testSDL.c Add texture height level 2018-09-29 09:33:51 +02:00
testTerminal.c Rename variable 2018-09-21 13:50:27 +02:00

raycastlib

Ray casting library for (not only) limited-resource computers.

Take a look at my Pokitto demos repository, it contains some better code for learning the usage, including a very simple hello world.

eye-candy previews

Pokitto:

SDL:

Arduboy:

terminal:

Gamebuino META (quick and dirty port):

features

  • Very fast, small and efficient.
  • Uses only integer math.
  • No dependencies (uses only stdint standard library).
  • Single header, KISS.
  • Advanced rendering of variable height floor and ceiling.
  • Textured walls and floor.
  • Depth information (for fog).
  • Camera shearing (looking up/down).
  • Camera movement with collisions.
  • Support for opening door.
  • Pure C, tested to run as C++ as well.
  • Optional framework functions that handle the whole rendering.
  • Still flexible -- pixels are left for you to draw in any way you want.
  • Tested on multiple platforms (PC, Arduboy, Pokitto).
  • Many compile-time options to tune the performance vs quality.
  • Well commented code.

NOTE: Backwards compatibility isn't a goal of this libraray. It is meant to be an as-is set of tools that the users is welcome to adjust for their specific project. So new features will be preferred to keeping the same interface.

TODO

  • Transparency (conditional ray passing through).
  • Doors in the middle of squares.
  • Rolling doors for RCL_renderComplex.
  • Possibly merge all rendering functions into one.

license

Everything is CC0 1.0. Please share your own software as free and open-source.