# How can I generate terrain like SimCity 3000 does?

Are there any tips anywhere on generating terrain such as is used in SimCity 3000? I have used World Machine before, but I want something low-fidelity. I think there are only a few allowed vertical "steps" in SC3K, as well as a maximum slope. Thanks.

Here are some screenshots.

Several more pics here.

Sim city uses a an XY grid, and the heights are discrete. In addition to this, the slopes seem to be limited to one "step" up or down.

So just handle all possible cases for a grid-cell.

Each cell has four corners: N0, N1, N2 and N3.

Let's designate the height at N0 as "nominal."

Then for each for the remaining corners (N1,N2,N3) there are three cases each:

1. Nx is at same level as N0. (=)
2. Nx is at lower level than N0 (-)
3. Nx is at higher level than N0 (+)

So you need to handle all 3*3*3, or 27 cases. I have drawn four of the 27 cases to give you an idea.

Is your game sprite-based? Then you need to draw all 27 sprites.

Is your game using 3D polygons? Then you only have to model a few of those, as many are variants of each other, under rotation.

Note that you need to offset each cell you draw with the absolute height of N0.

So to recap: Sim City defines the terrain heights at the corners of the cell, those heights are discrete, and neighbouring corners can only step +1, -1 or stay level.

• Does it support all combinations? I think it might not allow (+=+) or rotations thereof... Feb 5, 2018 at 0:21
• @Pikalek I don't know, could be. I would just add all variants, so that your terrain generator doesn't have to avoid those cases.
– Bram
Feb 5, 2018 at 0:46
• The game is 3D. Is there an existing tool I can use to create the meshes? Or can World Machine be adapted to work in this mode? Feb 5, 2018 at 0:56
• @posfan Worldmachine seems capable of much more intricate terrain than would be required for sim-city style terrain. So it could be overkill? I have no experience with that tool. Any 3D modeller would let you make these meshes.
– Bram
Feb 5, 2018 at 2:48
• A modeler would allow me to do this manually. But that would take forever. Feb 9, 2018 at 19:30