[О блоге] [наверх] [пред] [2023-11-01 22:24:31+03:00] [9ed1a1bfe3dab87bf679a681d7071371faa1d4d8]
Темы: [game]

Непроходимая комната E1M8 в Doom

https://www.youtube.com/watch?v=Urh_botbjRQ

    [оставить комментарий]
    комментарий 0:
    From: kmeaw
    Date: 2023-11-02 06:04:14Z
    
    Zero Master добился ещё одной интересной вещи на E1M8 - он смог
    компьютерным перебором найти последовательность действий (которые на
    практике может повторить человек), приводящую к ошибке intercepts
    overflow, которую ещё называют "all-ghosts effect".
    
    В движке есть оптимизация, позволяющая не проверять столкновение каждого
    объекта с каждым - на карту накладывается сетка (blockmap), и
    столкновения проверяются только в пределах одной ячейки. Если
    столкновение было обнаружено, то оно помещается в массив
    intercept_t intercepts[MAXINTERCEPTS].
    
    В DOS версии рядом с концном этого массива лежат переменные, хранящие
    атрибуты blockmap. Если их испортить, то движок потеряет возможность
    проверять столкновения объектов - все (и игрок, и монстры) получат
    возможноть проходить сквозь стены. Почти на всех уровнях это приводит к
    невозможности их пройти, так как нажать на кнопку выхода тоже не
    получается. Но на E1M8 это не нужно - достаточно просто добежать до
    последней комнаты, не обращая внимания на препятствия, что и дало ему
    возможность поставить рекорд в категории UV speed в 17 секунд примерно
    полтора года назад.