Все новости
Это интересно
Сейчас читают
Игры 10168
Аватар Evernews Evernews

Как работает Doom в «Блокноте»: рассказывает Сэм Чиет

2
0
Поделиться
Телеграфировать

Фреймворк для блокнотных игр все еще в разработке.

Как работает Doom в «Блокноте»: рассказывает Сэм Чиет

Разработчик Сэм Чиет сумел сыграть в Doom при помощи «Блокнота»: изображение из игры выводилось прямо в стандартный текстовый редактор Windows. В интервью ArsTechnica Сэм рассказал, как это работает.

Организация игры в Doom через «Блокнот», объясняет Сэм, кажется сложным делом, но на самом деле все просто. В основе проекта лежит Chocolate Doom, порт оригинальной Doom на язык C#. Приложение, созданное Чиетом, покадрово анализирует все, что выдает игра.

Каждый кадр, созданный Chocolate Doom, преобразуется в ASCII-графику. Сперва для каждого пикселя усредняются данные цветового канала — это позволяет определить его яркость и подобрать соответствующий символ.

А вот еще история
Теперь сыграть в Doom в «Блокноте» могут все

Для подбора Сэм составил специальную таблицу символов, каждому из которых назначена яркость. Например, самые темные пиксели рисуются символами «@» и «$» (просто потому, что они занимают много места), а самые светлые — «.» и «\».

Сэм Чиет
разработчик и любитель фокусов

Конвертация очень простая и, скорее всего, «неправильная». Но она работает и это единственное, что имеет значение. Фокусы вроде этого всегда в равной степени радуют и разочаровывают!

Часть символов приходится отбросить. Дело в том, что шрифт в «Блокноте» прямоугольный, а пиксели квадратные: чтобы сохранить пропорции изображения, Сэм выкидывает каждую вторую строчку сгенерированного изображения.

Остается поместить сгенерированный текст в редактор. С управлением проблем нет: приложение Сэма перехватывает все нажатые клавиши, направляя их в игру.

Сэм Чиет
разработчик и любитель фокусов

Я краду ссылку на внутренний текстбокс [редактора], просто сливаю в него свою память через «сообщения» операционной системы, а затем заставляю [редактор] все перерисовать.

К сожалению, у «Блокнота» нет буфера кадров и поддержки вертикальной синхронизации, имеющихся у обычных графических приложений. Именно поэтому изображение в проекте Сэма сильно мерцает.

Возможно, решение уже найдено: Сэму предложили использовать сразу два «Блокнота», имитируя двойную буферизацию. Разработчики намерен попробовать реализовать эту идею: Сэм думает, что может сработать.

Сейчас Чиет работает над фреймворком, позволяющий переносить в «Блокнот» любые игры. Параллельно Сэм экспериментирует с Paint, еще одним стандартным редактором Windows; по словам разработчика, «если DoomPad был просто фокусом, то моя работа с MS Paint потянет уже на эпизод Дэвида Блейна».

Теги: Игры
Аватар Evernews
Evernews
8068 подписчиков