EDITOR CONTROLS: -Click to place walls in the editor -Left/Right or A/D to swap between colors -E to undo (kind of slow, sorry) -R to revert to the last created save code (more on that later) -Flag to reset (might add a button for resetting in the future, idk) -Space to switch to 3D mode 3D MODE CONTROLS (Arrow keys/WASD): -Up arrow to move forward one square -Down to move back one square -Left/right to turn 90 degrees -Space to go back to the editor SAVE CODES/VIEWING EXAMPLES -Generate save code will create a save code of the current maze you are working on, copy+paste it so you can share your maze (or come back to it later) -Import save code will let you put in other's codes to view their mazes -Importing a save code will delete your current maze, but you can cancel it by typing anything that isn't a save code in the prompt -View examples will show you some mazes and templates made by me, for you to either play or get ideas from -To edit an example maze or template, go into 3D mode and back to confirm it -When you confirm a maze when viewing examples, the maze you were making will be saved, which you can recover by pressing R. Please note that generating a save code of an example will overwrite your original maze! OTHER STUFF: -Your maze won't disappear if you switch between modes, so you can try it out in 3D and make edits as necessary -If you've read this far, here's a cool thing I made (it didn't really work as an example): 11111111111111111 14440000000022001 14040044444432001 14440040000040001 10002232222040401 10002040002040401 10202040002040401 10202040002040001 10202044443440001 10002000002002221 10043222222002021 10044000000002221 11111111111111111 -If you skipped here, read the rest of the instructions (they're useful!)
Post save codes in the comments, and be sure to try others' out, too! (if your maze is good, it might get added as an example!) Thanks to @putneycat for the system used to store block coords/colors, a fix for the "bulging" effect seen in most raycasters, and some lag optimizations. Definitely go check out his stuff if you want to make your own raycaster! Working with a list-based raycaster was a fun challenge, as optimizing and bugfixing it was anything but straightforward. I think that most of what I came up with was clever and works well, so I'm happy with how it turned out. (hopefully it's not too buggy) One last thing: Please leave your suggestions/improvements in the comments! (no one is going to read all of this lol) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~