Doom 39059
Аватар Evernews Evernews

Doom запускают на принтерах и камерах. Как это вообще работает?

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

Все благодаря тому, что Doom это не только игра, но и почти операционная система.

Doom запускают на принтерах и камерах. Как это вообще работает?

За два десятка лет с выхода первой части Doom игру запустили на чем угодно: в Doom играли на банкоматах, консолях, разнообразных компьютерах, принтерах, фотоаппаратах, умных часах и чуть ли не любом устройстве, где есть экран. Возможно, это одна из самых портируемых игр в истории — конечно, неофициально.

Обычно перенос игр на другие платформы занимает массу времени, а такими проектами занимаются целые команды. В случае с Doom простота портирования обусловлена не только возрастом игры, но и особенностями ее движка.

В книге Game Engine Black Book: DOOM, посвященной устройству движка Doom, программист и писатель Фабьен Санглард объясняет, что простота портирования с самого начала была одной из основных целей разработчиков игры. Правда, о принтерах и камерах в id Software тогда не думали — у них была задача попроще.

Дело в том, что первые части Doom разрабатывали на компьютерах NeXT, а работать они должны была на обычных PC под управлением MS-DOS. Чтобы максимально упростить разработку и последующий перенос на другую платформу, Джон Кармак и команда решили объединить все ключевые функции движка в небольшое ядро.

Ядро движка, созданное id Software, взаимодействует с платформой на очень низком уровне и не использует дополнительные библиотеки. Весь остальной игровой код работает через эту прослойку — фактически ядро Doom это операционная система в миниатюре.

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

Другими словами, когда Doom переносят на принтер, телефон или камеру, разработчику не приходится перелопачивать игру с нуля. Он даже не переписывает ядро с нуля: просто «объясняет» системе, что на этой платформе пиксель рисуется другим вызовом, а к накопителю следует обращаться таким-то образом.

Интересно, что похожим образом устроены и реальные операционные системы. Если Linux, например, нужно заставить работать на новом устройстве — к примеру, камере, — то разработчики тоже адаптируют код на самом низком уровне.

Теги: Doom, Игры, Технологии
Аватар Evernews
Evernews
8066 подписчиков