2d terrain with fake elevation

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By a_pirate

Hello community,

I want to create terrain “with fake elevation” for a 2d (isometric) game, which should look similar to the below. I have googled for an entire weekend, and tried several approaches, such as:

  • GitHub - PetePete1984/SuperTilemap: Sloped isometric tilemap implementation for Godot 3.1
  • or working with a hex tilemap that has different brightness tiles.
    In the map editor for the below game the effect is achieved by pulling up (or down) the tile corner points of the terrain grid, which then stretched the textures in the front, while compressing the texture in the back. that in combination with brightness / shade creates the effect.
    In Godot tilemaps I cannot find such means to distort the grid in such way, the tiles are always the tiles, there is no stretching…

can someone advise how such terrain can be achieved? Help is greatly appreciated! Thanks!

You’ll probably need to implement your own TileMap object. You can choose to inherit from the TileMap so you get functionality for free or create an entirely new class. Instead of just storing tiles as ints that point to a texture you can store your own custom Tile object where you can implement the stretching/compression and shading effects.

timothybrentwood | 2021-05-10 17:04

I have similar problem. I’m looking for a solution how “old time” gamemakers created fake 3D terrain in 2D isometric games like:

The Settlers

Sim City 4
Sim City 4

The Sims 1

Cultures Series

Knights and Merchants

Do you know any good source of knowledge, wher can I find more information about this subject?

BeF1990 | 2022-02-05 18:51

:bust_in_silhouette: Reply From: albinaask

I would simply use a 3D terrain, and then freeze the camera to make it look 2D, then just add 2D sprites afterwards, the terrain seems like a very 3D problem which would not easily be solved in 2D, if you want to take this approach then you may want to check out the “ehightmap terrain” plugin by Zyllan, it’s in the assetLib in the engine :wink: