
Guide: How to do isometric sprites in a 3D world
So... when we started our isometric game I stupidly thought the content implementation would be easy. These games have been around since the '80s after all!
However, turns out that there's a tons of issues around sorting... and this is true both in 3D and 2D. Basically, isometric art presents as 3D but it is 2D. How do you know when a player is behind a sprite or over it.
All 2D sorting revolves around position, but that doesn't work for isometric. There's a few guides online about splitting the sprite vertically into rows, but that seemed like a real spanner in the workflow.
Instead I created what I'm calling a BoxSprite. Basically, you look at the picture and work out the pretend depth based on the sprites points. Then you map this into the scene and create box where the sprite is pretending to be.
Then you project the sprite onto the box from camera position, and use that as the material. This creates a "box sprite". It's the sprite but mapped into 3D. This has worked great for us and (after the initial the code struggles) is incredibly efficient... Just don't the change the camera angle!
Happy to answer questions, including getting more technical into the code for those who feel this approach will help them with a project.