Году эдак в 1998, я раздобыл редактор уровней для Duke Nukem 3D, и первым делом я создал собкствнный уровень, где поставил два зеркала друг напротив друга, зеркальный коридор. Загрузился в эту карту, вошел между зеркалами и игра зависла.
Недавно энтузиаст решил проверить все свойства зеркал в Duke Nukem 3D. Нашел много забавного и интересного.
На первом уровне есть туалет. Один. Значит общий для мальчиков и девочек. С огромным проёмом без двери и с писсуарами. Хм И с диваном.
В бета версии были и мужские и женские туалеты.
Возможно, главная причина существование туалета это зеркало. Чтобы продемонстрировать крутость движка. Настолько крутой, что может даже зеркало.
В зеркале отображаются монстры.
По зеркалам можно стрелять, на них остаются слуды от пуль, но они сломаются от взрыва или если в них просто кинуть гранату.
Но самое интересное начинается, если вы введёте читкод на прохождение сквозь стены и пройдёте сквозь зеркало.
Движок устроен так, что по ту сторону зеркала генерируется такая же комната и немного магии, чтобы спрайты работали.
В зазеркалье, как и в реальной комнате есть телефонный номер на стене, но он вывернутый.
В игре есть бомбы с дистанционным взрывателем. Что если
войти в зазеркалье, оставив бомбу снаружи и её взорвать?
Мда.
Игра не отображает на карте область зазеркалья.
Если вы уйдете в зазеркалье далеко, то вы умрёте, даже с кодом на бессмертие.
Вот так выглядит редактор уровней. Красная линия сверху зеркало.
Если войти в предпросмотр, то увидим заполнени буковками S. Спеуэффект под названием Sector Effector.
Вопрос: разработчик ручками должен прорисовать зазеркалье или движок автоматически копирет реальность?
Копирует.
Но при этом центр карты уполз. Почему?
Если вы уменьшите масштаб, вы увидите огромноую комнату.
Если мы в неё войдём, оглянувшись, мы увидим туалет.
Но это большая пустая комната.
Движок копирует реальность, но в момент загрузки уровня. Он находит все зеркала и копирует отражение в зарезервированную область.
Если вы выходите за перделы этой комнаты в зазеркалье, вы умираете.
А если специально уменьшить эту комнату? Что произойдет?
Издалека зеркало не будет работать. Оно будет работать только для тех участков, которые поместились в уменьшенную комнату.
Вблизи работет. Отдаляемся не работает.
Мы видим, так же что и смерть с кодом на бессмертие также наступает при пересечении границы уменьшенной комнаты.