Use Turbowarp: https://turbowarp.org/1034190572/fullscreen?stuck&hqpen&fps=60 Press green flag and wait for BSP to compile. WASD and Arrows for movement (I should've added mouse controls but I didn't) Space to jump If you get stuck or clip through the map(which is pretty often), press x to return to spawn. #startsolid of 1 can indicate that you are stuck in a solid.
A new development which implements player movement and an AABB sweeping function against the BSP tree. The lamps causes solidity classification problems. At this moment, I'm not sure what's the best way to fix it. The Model is Dust II but I had to use some online tool to compress it which caused it to magically lose its materials. I read the player movement source code for Quake/Quake III Arena/Source/GoldSrc and got confused a million times. In the end, it seems I have a working replication. Some values and functions are tweaked but its very similar. I expected the code to be nice and readable. It ended up being not so nice and readable to me. I'm not sure if that's a me problem, or if Carmack or whoever just had unconventional code conventions. I spent hours trying to understand exactly what was going on. Eventually I gave up and just used my intuition to kind of replicate the functions and it apparently all of a sudden started coming together and working. It took off and in one day I got from something quite dysfunctional to something working quite well. I know that the Source Engine movement is more readable, and probably more robust even, but I ended up reading off the original Quake player movement instead. One of the things of many that I find slightly inelegant is the use of a "NudgePosition" function, which simply nudges the player by some small amount up to 27 times upon getting stuck in a solid position. I found in this project that the player often gets stuck in a solid position. I feel like there exists a more elegant solution. Oh well. RESOURCES: Quake Player Movement Code: https://github.com/id-Software/Quake/blob/master/QW/client/pmove.c A Very Helpful Breakdown of the Movement Code: https://github.com/myria666/qMovementDoc Bunnyhopping from the Programmer's Perspective: https://adrianb.io/2015/02/14/bunnyhop.html CREDITS: 3D BSP sort adapted from 's 2D BSP sort. Compare the code, which can be found here: Uses 's "Ridiculously fast Image scanner": Triangle filler by (): Uses clipping scheme from Vadik1's 3D engine: PVS soon