Time for a tricky but intriguing question. I recently checked the basic isometric game example, and was happy to hear the basics of isometry are supported and appear to work well.
However this example doesn’t offer any of the features we’re used to having in practical isometric games. Particularly ones like Tycoon, Simcity, or for an open-source example Simutrans. Out of curiosity I wanted to ask whether there are tutorials or even finished examples on how to do a feature complete isometric world with at least the following base capabilities:
- 4 camera angles: The basis of most 2.5D games is the an ability to rotate the camera in any of four directions. Every item in the world has sprites for 4 or 8 angles so each structure can be seen from all of the four sides. Depth sorting must also be handled accordingly so objects and buildings (often made of multiple tiles stretching upward) always render in the right order from any direction. How would functional perspective shift be implemented in GDevelop?
- Terrain: Most isometric games have a height system which understands and manages the representation of vertical depth. Terrains for instance have tiles for slopes and corners, the proper “lego pieces” are then used to simulate every hill or valley and hole or a bump. I believe some games even had multiple slope angles, terraforming and / or roads on terrain aside… we can leave those out as to not overly complicate the question though I’m interesting how far it can go.
- Procedural generation: This goes back to a question I asked separately, though my previous thread was for top-down RPG worlds (no isometry): For isometric environments it would be an entirely different process past interpreting noise to know the height of a terrain tile or where to place stuff. Such games generate their own terrains at start, and for the genre I’m basing my question off cities are also created. What can be said in regards to procedural isometric terrains, and if we can even go that far, drawing random cities with roads on top of them?
There would be more questions to list here, like object physics or character path finding with understanding of slopes and slowing down / speeding up based on the effort to walk up or down an angled surface, but for now the basics above are the essential requirements. What has been done in this regard and is available in terms of examples? How much is at least in theory possible? Are easier builtin support or default behaviors planned for future GDevelop versions to achieve those functions?