4 дня назад
В Doom вообще нет стен! Звучит как кликбейт, но это техническая правда. Карта Doom — плоский чертёж, вид строг
В Doom вообще нет стен!
Звучит как кликбейт, но это техническая правда. Карта Doom — плоский чертёж, вид строго сверху. Стена на уровне — просто линия на границе сектора: черта нулевой толщины, у которой две стороны с текстурами и ничего между ними. Но ведь дверной проём выглядит глубоким? Это иллюзия. Между двумя комнатами начерчен ещё один сектор — крошечный, размером с сам проём.
В Wolfenstein 3D — а она старше на полтора года — всё было наоборот: стена — это целая клетка. Карта — сетка 64 на 64, и стена занимает квадрат целиком, как кубик в конструкторе. Поэтому там все углы прямые, а высота одна на весь уровень — рейкастингу так проще в разы, потому оно и летало на любом железе 1992 года.
Doom кубики выбросила и получила свободу: любые углы, перепады высот, лестницы. Но заплатила знаменитым ограничением — комнату над комнатой не построить. Чертёж плоский: каждая точка карты принадлежит ровно одному сектору. Мост, под которым можно пройти? Никак — мапперы годами имитировали такое трюками с секторами.
Build, движок Duke Nukem 3D, ту же идею повернул иначе: уровень не строится, а вырубается. Мир по умолчанию — бесконечная каменная толща, и ты пробиваешь в ней пещеры-секторы. Мне такой взгляд ужасно нравится — он очень точно передаёт дух шутеров тех лет: их уровни — не здания, а лабиринты, прорубленные в скале. Но стены и тут остались линиями.
Настоящую толщину принесла Quake. Там уровень собирают как из кирпичей: браш — это цельный блок камня с шестью гранями и настоящим объёмом. Два блока рядом, между ними зазор — вот и коридор. Стена стала настоящим куском материи: у неё впервые появились бока и торцы, вот так революция! Но это реально большое дело. Этой идее тридцать лет, и уровни на ней собирают до сих пор.
Я это к чему вспомнил — прочувствовал на своей шкуре: в свободное время я ковыряю маленькую игру в духе King's Field, и стены там сейчас устроены по-думовски (не спрашивайте почему) — каждая стена не блок, а плоский лист, поставленный на границе клетки. У листа рисуется только лицевая сторона, изнанки нет. Пока за листом сплошной камень, нет и подвоха: изнанку просто некому увидеть. Но стоит ошибиться и оставить за листом не камень, а открытый ход — получается стена-призрак: с одной стороны она стоит как настоящая, а с другой её как бы нет. А пока крутишь запутанные локации, проглядеть такое несложно. Замучился.