Find a file
2018-09-30 14:40:27 +02:00
convert_png.py Adjust textures 2018-09-27 15:25:20 +02:00
demo1.cpp Adjust physics 2018-09-30 14:27:49 +02:00
demo2.cpp Adjust physics 2018-09-30 14:27:49 +02:00
demo3.cpp Adjust physics 2018-09-30 14:27:49 +02:00
general.hpp Fix average color computation 2018-09-30 14:40:27 +02:00
height_profile.py Start demo 3 2018-09-10 11:26:20 +02:00
helloRay.cpp Adjust helloRay 2018-09-30 14:12:21 +02:00
My_settings.h Adjust physics 2018-09-30 14:27:49 +02:00
palette.png Start switching to HSV 2018-09-27 10:30:52 +02:00
raycastlib.h Fix uninitialized bug 2018-09-24 23:09:56 +02:00
README.md Update README 2018-09-29 20:07:29 +02:00

Pokitto Ray Casting Demos

These are demos showing ray casting (pseudo) 3D rendering technique using raycastlib (a Pokitto-independent C library I made along with this project) on a small gaming console Pokitto.

There are these demos:

  • helloRay: Hello world program showing the very basic usage of raycastlib on Pokitto. If you want to learn about the code, start here.
  • demo1: Showoff RPG-like program demonstrating most raycastlib features.
  • demo2: Classic "flat/1D" ray casting program in a sci-fi mood.
  • demo3: Minecraft-like demo with procedurally generated editable world.

Included are also other tools I created, such as Python scripts for image conversion to the format I use. Everything should be sufficiently commented.

The last three demos use common definitions from the general.hpp file. This file contains some useful resources that you can use in your own game. You can of course as well create a game by expanding any of the demos.

There are a lot of compile-time options you can try out, like turning various effects on/off, setting the rendering quality etc. Check out the defines at the beginning of each source code file.

This repository contains the version of raycastlib that I tested the demos with, but you can find the most recent version of the library among my other repositories.

The demos use display Mode13, i.e. 110x88 with 256 colors. I recommend you use this mode for your games, but the other ones are an option too. I created a custom general 256-color HSV-based palette that allows for fast brigtness manipulation of colors, which is important for fog/dimming. Reusing this palette (or modifying it) will most likely be the best option for your project.

License

Everything is under CC0 1.0, including all the assets (they are mostly based on CC0 images I found at OpenGameArt). I always appreciate credit, but it's not required. More than credit I appreciate if you share your own software as free and open-source. With that said, use this in any way you want.