Hello Snappers. I want to work on a 3D game using Snap! mostly for fun. I would prefer not to write one on my own. So do you think that what I have previously made https://snap.berkeley.edu/project?user=odysseus_ssb&project=raycasting or something else would be a better starting point?
The general idea for my game is a shooter with elements of more advanced movement. It doesn't need to be true 3D; it can be more like DOOM's '3D'.
I don't think that is a good place to start. Snap's ray length block should work if you want just to find distance, but if you calculate it yourself it would probably be better to use sectors and linedefs.
A good place to start would be an engine where you can place linedefs and sidedefs, with a front and back texture. I might use the UDMF format for this. I would not recomend using the doom graphics format, since modern computers are fast enough to manage png or stripes of costumes.
Then you could add bsp, and other features. Features include sectors with distinct floor and ceiling heights and flats, and LZDOOM extensions like fofs and slopes. It might be possible to extend the UDMF format to include proper raytraced lighting as well, although I haven't seen that anywhere in the past.
I also do not recommend turbo mode, since it speeds up everything except display, so it has to display the screen sometimes. Instead, I would combine the raycasting and player movement into one sprite, and put a warp around it.
LZDOOM is almost 3d, if you ignore the format. The only thing missing is sloped fofs, which only means slopes are limited to the bottom floor and top ceiling of any vertical column. Not a substantial limitation.
I could probably make sidedefs and linedefs, with their correct heights, without looking at the LZDOOM source. However, LZDOOM is GPL, so you can use it for more complicated elements.
LZDOOM snap has actually been a project I had meant to do for a long time, but I never made it. I could help you with this project if you want, maybe using netsblox.