Consider A as your method (one tilemap per atlas) and B the last implementation of Joshua (Tile that references an atlas).
-
2 drawcalls for A and B. For B, Tilemap need to draw in the z-order, and need to batch all Tiles that use the same atlas surrounded by other atlases.
-
3 drawcalls for A and B. You can’t batch all the brown rabbits together because they’re overlapping. Also A need 3 Tilemap.
-
4 drawcalls for A and B. You can’t batch anything because of overlapping. Also A need 4 Tilemap.
Now consider the ease of sorting your tiles by z-index. With B, you just need to order your Tiles in the correct order within your Tilemap using Tilemap.addTileAt
. With A, you have to order correctly your Tiles within Tilemap + to order correctly each Tilemap between them. And you will need a variable number of Tilemap depending of your overlapping. That’s not user friendly at all.