adpextwindong / obelisk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Obelisk

Wolf3D style rayCasting engine in progress. Architecture modeled after DinoRush. (Thanks jxv!)

This project is meant to serve as a reference engine for teaching with as much of the core raycasting code as pure as possible. This way you can play with the code in GHCI to use as a reference for your own raycasting engine in another language.

Progress Demos

Raycasting

  • Get wall renderering working.

  • Fish eye fix

2022-03-22.16-11-19.mp4
  • Wall Texturing
wallTextures.mp4
  • Multi Texture Selection
2022-04-01.12-26-03.mp4
  • Transparent walls

DEV BUILD

Nix and Nix-shell setup to make things more consistent

Windows Build

Needed dlls

  • SDL2.dll
  • SDL2_ttf.dll
  • libfreetype-6.dll
  • zlib1.dll

CODE PAGE

Make sure code page 65001 is set. For some reason hPutChar in Criterion yakks cause codepage 437 is set. The .ghci file should handle it.

Benching

Profiling raybench

./RayBench +RTS -p
Profiteur raybench.prof

TODO fprof-auto costcenters for Ray.hs

Credits

Thank you to:

About

License:BSD 2-Clause "Simplified" License


Languages

Language:Haskell 99.7%Language:Nix 0.3%