The best way to do an isometric 2.5D game.


I’m currently developing an isometric 2.5D game using sprites. I based it from this article: Creating Isometric Worlds: A Primer for Game Developers . So the actual data is in topdown 2D tile based map, whereas the rendered view will be projected from the topdown map’s data every frame. I’m currently thinking about the best option to approach this. Currently in my mind I’ve got these:

  1. Make two different GameObjects for each tiles, walls, buildings, characters, etc in the game. One GameObjectis in the topdown 2D map and won’t be rendered by the camera, the other will be rendered in an isometric view based on the previous one.
  2. Make one GameObject with a Vector2 variable as the actual topdown 2D position, while we use the GameObject’s transform.position for the isometric view’s position.

For the first option, my concern is with the performance because we maybe (hypothetically) need twice the amount of memory, but the whole collision detection etc will be handled by Unity. While the second one, I need to roll out my own collision detection (and probably some space partitioning optimization using a quadtree). Since I’m developing a mobile game, performance is crucial. But development time is also important. So my question is, which approach is better? Or if you have any other idea besides those two options, please do tell me.

Thanks in advance.

Anyway, I’ve done it using the second option. But for the collision detection, I’m using Unity’s collision detection. Too lazy to roll out my own.