Базовая единица id Tech 1 – это вершина (vertex), точка в трехмерном пространстве. Вершины соединяются линиями, которые называются лайндефами (linedef). Когда вы добавляете к лайндефу переменную высоты, это (двумерное) вертикальное пространство с границей в виде лайндефа называется сайддефом (sidedef). На это пространство наносится текстура. Как только все вершины соединяются лайндефами, образуется многоугольник, называемый сектором, у которого есть свои собственные переменные высоты и освещения. Текстуры можно накладывать как на любые сайддефы, так и на «пол» и «потолок»: они называются виспланами (visplane), и их положение определяется формой сектора. Наконец, в сайддефе можно проделывать отверстия, чтобы создавать окна и двери, в результате чего свет и звук будут проникать из одного сектора в другой (рис. 7). Движок не позволяет создавать по-настоящему трехмерные карты, потому что сектора не могут быть размещены друг над другом, но он все еще очень эффективно создает иллюзию вертикальности окружения. id Tech 1, в отличие от движка Wolfenstein 3D, не требует, чтобы все объекты были ортогональны друг другу и располагались под прямыми углами, но он по-прежнему работает только со строго горизонтальными или вертикальными поверхностями: в игре не может быть наклонных полов или потолков. Это означает, что текстуры накладываются в установленных плоскостях и каждое смещение высоты потолка или пола (включая движущиеся объекты, такие как лифты) фактически дискретно и представляет собой границу между секторами. Джон Кармак объясняет:
Свобода выбора углов и высоты потолка/пола уже сильно отличала DOOM от Wolfenstein 3D, но два других фактора изменили обстановку еще кардинальнее. Сайддефы были разделены на три секции: верхнюю, среднюю и нижнюю. Обычные стены использовали только средние секции, а стены с отверстиями – все три. Таким образом уровни можно было наполнять деталями, не полагаясь исключительно на спрайты. На любой заданной вертикальной поверхности можно было отобразить три разные текстуры. Было бы куда проще нарисовать несколько текстур на одном текстурном атласе, а не добавлять лишние вершины. Но сама идея того, что стена может менять текстуру в зависимости от того, насколько высоко вы находитесь, все еще представляла собой концептуальный прорыв. В результате окружение получалось более детальным, а отдача от наложения текстур – максимальной. Сами текстуры id, разумеется, уже использовала в последние годы; Джон Кармак стремился задействовать их еще с 1990 года. После Hovertank 3D, в которой не было текстур, он с нетерпением ждал возможности перейти к следующей задаче.
Рис. 7.
Ромеро говорит следующее: