No more tilemap, z-sorting, Shadows and bullet hit detection
Summary
Using 3 kinds of renderer (Sprite, Tile and Mesh) was making the z-sorting nightmarish so I finally decided to just drop the tile-based floor in favor or using big plain sprites.
It’s simpler to produce/handle and it might even look better on the long run (if constrained well-enough like in Isaac).
Good thing, I can keep the somewhat efficient tile-based composite collider for static stuff like the pits/holes and the unbreakable walls.
Related to that switch, I implemented all the z-sorting functions for the Entities, the bullets and the walls (which are now just sprite but might end up being entities as well, like the spikes).
Shadows are in too. Since their implementation had close ties with z-sorting (which take into account the height of shadow casting things). It’s completely fake using another procedural mesh for the bullets and an additional sprite renderer for the entities. I wanted no multiplicative / additive shadow so I went for a stencil-based shader. Maybe I’m missing a much more obvious and flexible solution (Stencil = no AA) but that will do for now.
Finally, I got the bullet hit detection against entities integrated. The first step to rebuild the gamejam’s version gameplay… after 2 weeks of work.
But at least, the build already allows to test the controls by trying to avoiding the bullet as long as possible. The player character has 4 HP and can “resurrect” by pressing R.
Changelog
Remove the Tile-based floor |
Add proper Z-sorting for everything |
Add stencil based shadows |
Add simple Bullet to entity hit detection |