Как стать автором
Обновить

Комментарии 9

Это значит, что можно запустить DOOM в DOOM. В статье приводятся подробности реализации.

Но ведь это же неправда, нельзя запустить дум в думе, и реализации этого ниже нет

Для того, чтобы запустить дум нужно:

1) Тьюринг-полная система.

2) IO для ввода действий пользователя.

3) IO для вывода экрана.

Никакая часть Тьюринг-полноты не позволит получить 2 и 3. IO - магическая сущность в компьютерных вычислениях и моделью вычислителя Тьюринга не описывается.

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

Кнопки игрового контроллера внутри Дума - определенные места, куда надо встать, чтобы активировать триггер. Вот только как на таком контроллере играть в реальном времени?

Способен ли дум на отображать достаточно много комнат в режиме матрицы? Насколько я знаю, дум не может нарисовать одну комнату над другой.

дум не может нарисовать одну комнату над другой

В таком случае для реализации Дума и не нужна матрица. Нужен одномерный массив чего-то, что меняет высоту. Типа лифтов. Хотя, не знаю, есть ли в Думе лифты, у которых более двух остановок

Картинка дума - двухмерная. Уровень - одномерный, а картинка на экране - двухмерная. Чтобы сделать IO для дума для показа дума нужно уметь рисовать матрицу.

Если вы предлагаете рисовать комнаты дума с помощью комнат дума, то I-doom (identity doom) тривиально реализован для всех систем, на которых doom запущен.

Да пребудет IDDQD с вами. Да будете вы видеть мир дважды IDDT. И да будет у вас IDKFA.

Я думал, что только я один способен задумываться о полноте систем совершенно для этого не предназначенных, однако похоже существуют единомышленники.

Прослушав курс nand2tetris я пытался смоделировать компьютер в excel. По идее для этого есть все инструменты - and, or, xor, not. Но у меня ничего не вышло.

В excel формулы образуют однонаправленный граф и не позволяют вывод предыдущего такта использовать как вход следующего.

В случае с DOOM, похоже есть возможность создавать логические элементы и коммутировать входы, делать таймер. Похоже можно так же эмулировать волны.

Немного жалко, что вы не выложили видео карты, было бы интересно посмотреть как последовательно отрабатывают такты.

запустить Doom на аналоговом осциллографе/программируемом калькуляторе и на нём реализовать Тьюринг-машину Kappa :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий