⚠️ Due to list size limitations, this project does not work on Scratch. To run this project, you must use Turbowarp. https://experiments.turbowarp.org/next/888694096 Plug your computer in for better performance. Mouse drag to look around, WASD/arrow keys to move. This is a technical demo, not a game, and not a fully-developed game engine! I am working towards a 1.0 release with everything you need to create a 3D game, but this is not there yet. Please do not complain if you find that it is hard to use or lacking features. CHANGELOG: - Added sun shadows - Added mip-mapping - Optimized texture access - Added color correction - Added more creative controls to lighting - Added spatial sound - Added fixed-tick updates I started with this tutorial: https://lodev.org/cgtutor/raycasting.html Mergesort implementation from the Scratch Wiki: https://en.scratch-wiki.info/wiki/Sorting_Values#Merge_Sort Credit to GarboMuffin for the stage size detector: https://scratch.mit.edu/projects/588493413/ Wolfenstein textures copyright by id Software. Skybox by Richy Mackro on OpenGameArt: https://opengameart.org/content/sky-box-sunny-day This page helped me to understand tonemapping in general and the Reinhard algorithm in particular: https://64.github.io/tonemapping/ Textures from OpenGameArt: https://opengameart.org/content/wall-grass-rock-stone-wood-and-dirt-480 And a big shoutout to the members of 3D Graphics and Scratch, who gave me feedback, pointers, and put up with my technical inexpertise. https://scratch.mit.edu/studios/32030084/comments