descriptionSuckless PD 2D raycasting library
repository URLhttps://git.coom.tech/drummyfish/raycastlib.git
ownerdrummyfish@disroot.org
last changeFri, 17 Nov 2023 20:51:10 +0000 (17 21:51 +0100)
last refreshThu, 21 Nov 2024 08:20:54 +0000 (21 09:20 +0100)
content tags
add:
README.md

raycastlib

Public domain ray casting library for (not only) resource-limited computers.

If you like this, you may also like my similar project: small3dlib. These two libraries can very easily be combined together -- here is a proof-of-concept gif (environment rendered with raycastlib, cubes with small3dlib):

I've made a complete game with this library: Anarch.

eye-candy previews

Pokitto (32bit embedded console, 48 MHz, 36 kB RAM):

SDL (PC):

Arduboy (8bit Arduino console, 16 MHz, 2.5 kB RAM):

terminal:

Gamebuino META (Arduino 32bit console, 48 MHz, 32 kB RAM):

features

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.

how to use

Don't forget to compile with -O3! This drastically improves performance.

For start take a look at the helloWorld.c program and other examples. For more examples see my Pokitto demos repository.

Also see the library code itself, it is meant to be self-documenting -- you'll find the description of a lot of things at the start of the file.

The basic philosophy is:

license

Everything is CC0 1.0 (public domain, https://creativecommons.org/publicdomain/zero/1.0/) + a waiver of all other IP rights (including patents).

I've written all code completely myself from scratch, the art used in demos is either my own released under CC0 or someone else's released under CC0.

This is not a mandatory condition, but please consider supporting free software and free culture by using free licenses and/or waivers.

If you'd like to support me or just read something about me and my projects, visit my site: www.tastyfish.cz.

You can also choose to use this under the following waiver which is here to just ensure more legal safety and waiving of additional IP such as patents:

The intent of this waiver is to ensure that this work will never be encumbered by any exclusive intellectual property rights and will always be in the public domain world-wide, i.e. not putting any restrictions on its use.

Each contributor to this work agrees that they waive any exclusive rights, including but not limited to copyright, patents, trademark, trade dress, industrial design, plant varieties and trade secrets, to any and all ideas, concepts, processes, discoveries, improvements and inventions conceived, discovered, made, designed, researched or developed by the contributor either solely or jointly with others, which relate to this work or result from this work. Should any waiver of such right be judged legally invalid or ineffective under applicable law, the contributor hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to this right.

shortlog
2023-11-17 Miloslav CizFix division by zeromaster
2022-09-22 Miloslav CizAdd RCL_U
2022-09-20 Miloslav CizAdd extra waiver
2022-02-23 Miloslav CizUpdate readme
2021-06-18 Miloslav ČížFix readme
2021-06-15 Miloslav ČížRemove double license
2020-11-22 Miloslav ČížUpdate README.md
2020-10-31 Miloslav ČížFix mapping bug
2020-10-12 Miloslav ČížUpdate Doxyfile
2020-10-10 Miloslav ČížRemove a line
2020-10-10 Miloslav ČížFix SDL example
2020-08-22 Miloslav ČížFix render bug
2020-07-29 Miloslav ČížMerge branch 'master' of https://gitlab.com/drummyfish...
2020-07-29 Miloslav ČížFix collision bug
2020-06-21 Miloslav ČížUpdate README.md
2020-06-21 Miloslav ČížUpdate testSDL
...
heads
12 months ago master