В игре есть много полезных и капризных механизмов, которые надо защитить от внешней среды и это задача зданий. Сами по себе здания не ценны - игрока интересует их полезное содержимое, однако роль зданий по защите этого содержимого и придания игре эстетического содержания не надо недооценивать.
Здания в игре собираются строителями из фрагментов, по шаблонам. Раз собранное здание можно частично или полностью разрушить. Новаторским в механике является как раз частичное разрушение, когда кусок здания повреждён, это видно игроку и от этого здание может частично терять функциональность.
То есть роль здания в геймплее. Помимо эстетической, здание должно защищать от внешней среды находящиеся внутри него механизмы и людей. Иногда механизмы требуют особого расположения: например радар лучше поднимать над уровнем земли, что так же является функционалом здания.
Есть несколько видов полезного содержимого зданий:
Подъёмный кран, монтажный робот, сам игрок являются строителями, то есть участвуют в процессе строительства зданий. Строитель - функция, для некоторых сущностей (персонаж игрока) - далеко не основная. Более того, функция эта не чистая, а скорее условная, например, подъёмный кран не умеет сваривать швы - это задача монтажного робота. Различные строительные функции будут описаны чуть ниже.
Это элементы, из которых собирается здание. Этим элементам присущи собственные свойства - их прочность, нагрузка которую они выдерживают и так далее. У каждого из элементов есть свои условия крепления, что ограничивает фантазию игроков (дизайнеров игры), но придаёт внешнему виду зданий некоторую логичность.
Проект здания, то есть информация о том, из каких фрагментов сложить здание, назовём шаблоном. Важнейшее свойство шаблонов - вложенность, то есть сложный шаблон может и должен состоять из простых. Шаблон не должен содержать алгоритма, в какой последовательности собирать здание - эта последовательность должна явно следовать из шаблона, и желательно не быть уникальной. Более подробно о шаблонах и последовательности сборки - в соответствующих разделах.
Фрагменты могут быть четырёх классов, каждый - своей размерности:
Смысл здесь простой - в трёхмерном пространстве, разлинованном регулярной сеткой, элементарной фигурой является куб. Это высшая размерность, “3”. Всё, что является кубом или его частью относится к классу “кубики”. Это могут быть бетонные кубы, заполненные щебнем полости и так далее.
Куб имеет шесть граней, грань является плоской фигурой и толщина её не интересна - только длина и ширина. У куба грани - квадраты, то есть плоскости, это наша размерность “2”. Всё, что является квадратом или его частью, относится к классу “плоскости”. Это могут быть плиты, стенки цельные, стенки с дверьми, ворота, и так далее.
У куба двенадцать рёбер, у квадрата четыре стороны, и всё это является прямыми линиями, а точнее - отрезками. У отрезка есть только длина, это наша размерность “1”. Всё что является отрезком относится к классу “линии”. Это и трубы, и сваи, и стальные балки и тросы.
У куба восемь вершин, у квадрата четыре вершины, у отрезка два конца. Всё это точки у которых нет ни ширины, ни толщины, ничего кроме позиции в пространстве. Это наша низшая размерность “0”. Объектов этой группы немного, но они очень важны, это узлы к которым крепятся многие другие объекты. Например длинная стальная балка, состоящая из нескольких фрагментов единичного размера, сращивается именно такими точечными узлами. И длина этой балки сильно ограничена прочностью узлов на излом.
У плоскости нет толщины, сбоку она невидима. У точки вообще только позиция, и её не отрисуешь. Логично, что нам такие объекты ни к чему, потому все классы фрагментов представляются трёхмерными объектами, хотя для механики игры они имеют ровно ту размерность, которая указана. Например, стальная балка, являясь линией изображается как сильно вытянутый параллелепипед, то есть как стальная балка. Узел, собединяющий две палки должен бы быть совсем невидимый (он точка), однако отображается как небольшой фрагмент с заклёпками, сшивающий две балки в одну. Плита, которая могла бы быть плоской как бумага, должна иметь заметный объём, и так далее.