FASM implementation of https://github.com/ssloy/tinyraycaster/wiki
I've never done anything more than hello world in x86/x64 assembly so this will either never be completed, or will be a complete trashfire by the end. Or both! Hopefully just the latter tho!
At the moment I'm only building this for Linux and making Linux specific system calls. I might go insane and try to make it crossplatform when I'm done, but don't expect much.
- Download FASM
- Unpack it somewhere where you can access fasm.x64
- Run
fasm.x64 raycaster.asm
- Run
./raycaster
- Check that the
image_file.ppm
file contains something interesting - T-that's it.
- Part 1: crude 3D renderings
- Step 1: save an image to disk final commit
- Step 2: draw the map final commit
- Step 3: add the player final commit
- Step 4: virtual rangefinder aka first raycasting final commit
- Step 5: field of view final commit
- Step 6: 3D! final commit
- Step 7: first animation final commit
- Step 8: fisheye distortion correction final commit
- Part 2: texturing the walls
- Step 9: loading the textures final commit
- Step 10: rudimentary use of textures final commit
- Step 11: texturing the walls final commit
- Step 12: refactoring time! final commit
- Part 3: populating the world
- Step 13: draw monsters on the map final commit
- Step 14: black squares as a placeholder final commit
- Step 15: depth map final commit
- Step 16: one more problem with the sprites final commit
- Step 17: sort the sprites final commit
- Part 4: SDL
- Step 18: instead of SDL, I'll likely try to link againt opengl or sth more directly, I have no idea at the present moment how to work with graphics from FASM, so this will be interesing.