Зеркала в Duke Nukem 3D
Году эдак в 1998, я раздобыл редактор уровней для Duke Nukem 3D, и первым делом я создал собкствнный уровень, где поставил два зеркала друг напротив друга, зеркальный коридор. Загрузился в эту карту, вошел между зеркалами и игра зависла.
Недавно энтузиаст решил проверить все свойства зеркал в Duke Nukem 3D. Нашел много забавного и интересного.

На первом уровне есть туалет. Один. Значит общий для мальчиков и девочек. С огромным проёмом без двери и с писсуарами. Хм… И с диваном.

В бета версии были и мужские и женские туалеты.
Возможно, главная причина существование туалета — это зеркало. Чтобы продемонстрировать крутость движка. Настолько крутой, что может даже зеркало.
В зеркале отображаются монстры.

По зеркалам можно стрелять, на них остаются слуды от пуль, но они сломаются от взрыва или если в них просто кинуть гранату.

Но самое интересное начинается, если вы введёте читкод на прохождение сквозь стены… и пройдёте сквозь зеркало.
Движок устроен так, что по ту сторону зеркала генерируется такая же комната и немного «магии», чтобы спрайты работали.
В зазеркалье, как и в реальной комнате есть телефонный номер на стене, но он «вывернутый».
В игре есть бомбы с дистанционным взрывателем. Что если…

… войти в зазеркалье, оставив бомбу снаружи и её взорвать?

Мда.
Игра не отображает на карте область зазеркалья.

Если вы уйдете в зазеркалье далеко, то вы умрёте, даже с кодом на бессмертие.
Вот так выглядит редактор уровней. Красная линия сверху — зеркало.
Если войти в «предпросмотр», то увидим заполнени буковками «S». Спеуэффект под названием Sector Effector.
Вопрос: разработчик ручками должен прорисовать «зазеркалье» или движок автоматически копирет «реальность»?
Копирует.
Но при этом центр карты уполз. Почему?
Если вы уменьшите масштаб, вы увидите огромноую комнату.
Если мы в неё войдём, оглянувшись, мы увидим туалет.
Но это большая пустая комната.
Движок копирует реальность, но в момент загрузки уровня. Он находит все зеркала и копирует «отражение» в зарезервированную область.
Если вы выходите за перделы этой комнаты в зазеркалье, вы умираете.
А если специально уменьшить эту «комнату»? Что произойдет?

Издалека зеркало не будет работать. Оно будет работать только для тех участков, которые поместились в уменьшенную комнату.

Вблизи — работет. Отдаляемся — не работает.

Мы видим, так же что и смерть с кодом на бессмертие также наступает при пересечении границы уменьшенной комнаты.
Как связаны Эйлер, воздушные шары и главная загадка информатики
Тест для нейросети: что трансформер видит на картинке первым?
Цементная плитка по принципу кожи слона обеспечит пассивное охлаждение зданий
Как стереть завод с лица земли за 5 минут
Инструкция к жизни: как разочарование в школе побудило меня написать для 15-летней дочери гид по нейробиологии и логике
Что почитать на выходных: «Отмененный проект» Майкла Льюиса
Как рухнул дом Билла Гейтса: история эпического фиаско Microsoft Bob