The projection math is all point-based and supports lines and quads. Most of the quads (like the walls and roof) have stamped tiles (most of which are small squares) that are bi-linearly interpolated (not all placed manually).
There are ~2.5k points in this scene, ~2.3k of which are tiles. There are lines at the edges of these quads to cover up some of the jaggedness.
The point data is stored in lists, and there is one world sprite that sets up these lists and then a separate render sprite. There are several layers that get rendered in a fixed order. There is no realtime z sorting going on. Sin and cos operations use a lookup table.
Video of layer-by-layer render in scratch:
https://www.youtube.com/watch?v=to4FeIwCKgs
I used a Japanese basketball game called Slam Dunk as a reference because it had a lot of flat geometry.
All of the development so far has taken place over the past few days in the scratch editor, and for the time being it runs well enough that I don't have much reason to move it to turbowarp.
Next goals after finishing up this scene are making it easier to save and load scenes and adding the ability to adjust graphics settings.
The coming semester should be less busy for me so I hope to continue working on this project.










1 comment