Use Turbowarp unless you want 1 FPS: https://turbowarp.org/687768878?fps=60&hqpen&stuck Also, please tell me your FPS of the project run on Turbowarp, not with the Scratch interpreter. WASD, Arrows and Space key x to perform an action
NOTES FROM ME: I think this project opens a gateway for more interesting stuff, as does it approach the limits of Scratch. Once again, this was pretty rushed... And wow this is laggy... I wasn't sure about whether I wanted to share this project as a new update or a snapshot of the update but since I planned to make to new update on shadows, and I implemented shadows already, I will share this as a new update. As a result, there are a bunch of bugs involving portals. Shadows are also currently disabled because they are incredibly laggy. NEW FEATURES: This project now implements a shadowing algorithm which I call the "cookie-cutter shadowing algorithm". It works by using the planes of the faces of a shadow volume to partition a chunk of space. Then, it takes this chunk of space, which is the shadow, and disables lighting with that specific light source. Another feature which I am in the process of implementing is the "clipping portal". These also use space partitioning to create some specific visual effects. BUGS: There is still a skybox bug which has to do with a unpatched singularity of the quaternion swing-twist decomposition function. Also, the lens flare does not get obstructed by objects when it is supposed to. Some simple raycasting will probably fix that. As I released this, I noticed that colored lights do not overlap properly in multiple light source shadows. I thought I fixed this but I guess not. "Clipping Portals" still have a lot to improve on... IN THE FUTURE: Although there was not really a single direction in which this update took, I'd say it unlocks pathways for much more to do. I am planning on implementing volumetric shadowing/lighting using raycasting for the next update. CREDITS: The improved BSP(binary space partitioning) algorithm uses a triangle cutting method by @Vadik1. The code itself is slightly based off of their code, except it is pretty much original. You can find and compare their code here: https://scratch.mit.edu/projects/277701036/editor/ The Bezier code for camera paths is (almost) directly taken from @gtoal's project: https://scratch.mit.edu/projects/131769048/ Quaternion look-at code from Unity forums. Compare with @ggenije's code: https://scratch.mit.edu/projects/470670022/ Much of the collision detection-response code comes from: https://wickedengine.net/2020/04/26/capsule-collision-detection/ Quaternion swing-twist decomposition code and derivation come from: http://www.euclideanspace.com/maths/geometry/rotations/for/decomposition/index.htm Song is "Wait" by C418