The following is an outline of the requirements for the games landscape generator.
It is constructed of low-poly polyhedra 'balls' (truncated icosahedron). They're all the same width at their middle, however they are to be randomly generated to have different heights. Some are almost flat to be walked on. Some are tall, for hills, mountains, walls.
TYPES
There is a requirement for the way the random generator works.
It must be split into three types. Each type is customizable.
Ground
1/3 of the polyhedra are to be between 5% and 25% as high as the width.
(less than quarter as tall as it is wide)
Hills
1/3 of the polyhedra are to be between 25% and 75% as high as the width.
(approximately half as tall as it is wide)
Mountains
1/3 of the polyhedra are to be between than 150% and 300% higher than the width
(1.5 to 3 times taller than it is wide)
This is to ensure spawning of both flat planes (ground) and tall (mountains).
It is necessary the specific percentages for these scales can be tweaked by an options menu controlling how the random spawn generator works, for example we may find we need more or less of each type, we may find each type needs to be higher or shorter. The spawn generator needs to be customizable. This becomes relevant later.
The polyhedra are on the same horizontal plane, they overlap just enough so there are no holes for characters to drop through, unless one of the polyhedra is missing. Removing polyhedra is both an in-game feature & spawned randomly.
The landscape is mirrored, the half below the central plane and the half above the central plane.
Rendering the polyhedra is done in proximity to the character, with option to extend it or retract it. There will be fog so distant hills will appear to dissolve away, no need to render them. However the computer needs to remember what height of polyhedra has been rendered in each location.
All of this requires a grid so the location of every polyhedra can be stored & manually adjusted, in-game.
LEVELS
Above the plane is another plane of polyhedra forming a ceiling so the playing area is a cave between the two layers. Below the plane is another plane, so the bottom of the original layer of polyhedra is also the ceiling of the lower cave; and so on. The polyhedra are generated horizontally & vertically, xyz.
It is necessary to have a lot of control not only of the polyhedra but also of the grid.
The amount of horizontal space necessary between the polyhedra relates to their width.
I imagine it will be easier to randomly spawn the polyhedra in "chunks" the way it works for Minecraft, so characters have a visible area to explore immediately, rather than to spawn an infinite amount at once when a new game is spawned for the first time. This can also be used to randomly generate missing polyhedra, for example if one is removed in every "chunk" of 100 polyhedra (a 10x10 chunk).
DEVELOPMENTS
That it for the basics although there will need to be be several further developments:
There is also a necessity to create horizontal and vertical tunnels of empty space, so airplanes & lift platforms can help characters move around the environment.
Varying the specifics of the polyhedra spawner, based on which layer. Upper layers of a chunk can have for example less polyhedra, lower levels can have more and taller ones, or the other way around; this is why customization is necessary from within the unity editor. That is the purpose of the software required. Obviously it will have to be developed in stages with more refinement at every stage of development.
Characters can interact with the polyhedra;
mining them (shrinking their height), removing them, 'activating' them as a light-source or draining their power - every 'active' polyhedra has an energy quota which can be tapped to power items or neighboring polyhedra.
Scale of the characters in relation to the polyhedra is not certain at this time. Experimentation "to get the feel right" is required...