Як Doom зміг «запуститися» на системі доменних імен?
Doom на базі DNS — це не просто зберігання файлів гри в текстових записах, як це робилося раніше, а повноцінна спроба перенести обчислювальну логіку в архітектуру бази даних. Corey Quinn, автор цього проєкту, створив версію гри для 32-бітної машини, де арифметичні операції та робота з пам'яттю повністю здійснюються через DNS.
Система доменних імен (DNS) традиційно слугує для перекладу URL-адрес у IP-адреси, які розуміють комп'тери. Однак у цьому експерименті DNS виконує роль «бібліотекаря», який надає відповіді на складні запити. Замість того, щоб виконувати код у звичному розумінні, система звертається до величезної бази даних, що містить 6,4 мільйона рядків таблиць істин.
Механіка заміни процесора базою даних
Важливо розуміти, що DNS у цьому випадку не імітує роботу центрального процесора (CPU). Як пояснює Quinn, інструкції декодуються заздалегідь за допомогою спеціального компілятора. Програмне забезпечення BIND (популярний DNS-сервер) не виконує жодної інструкції самостійно. Воно лише зчитує пари «ключ-значення» та здійснює умовні записи, покладаючись на попередньо обчислені відповіді, що зберігаються в базі.
Яку роль відіграє стандарт RFC 2136 у цьому проєкті?
Ключовим елементом, що дозволив реалізувати цей проєкт, став стандарт RFC 2136 DNS UPDATE. Цей протокол дозволяє змінювати записи в DNS «на льоту», що є критично важливим для будь-якої динамічної системи, включаючи ігрові світи.
У звичайній грі зміна координат персонажа або стану об'єкта відбувається через миттєве оновлення пам'яті. У версії Quinn зміна змінних та значень у грі відбувається через оновлення записів DNS. Саме завдяки можливості динамічно змінювати дані, розробник зміг відтворити логіку «якщо це, то те», яка є основою будь-якого програмного коду.
Paul Vixie, один із піонерів технології DNS, назвав цей метод «найкращим використанням RFC 2136 DNS UPDATE, яке він коли-небудь бачив». Його реакція підкреслює парадоксальність рішення: з одного боку, це технічно грамотне використання можливостей протоколу, з іншого — це абсолютно нетипове застосування інструменту, для якого він не призначався.
Чому цей метод не є практичним для справжніх гравців?
Головною проблемою проєкту є катастрофічно низька швидкість виконання операцій. Хоча оригінальний Doom розрахований на частоту оновлення (tic rate) у 35 кадрів на секунду (що становить приблизно 28,6 мс на один крок), версія на базі DNS працює на зовсім іншому рівні.
За даними розробника, оновлення одного стану займає понад 54 секунди. Це означає, що швидкість гри нижча за необхідну у три порядки. Таким чином, замість динамічного шутеру гравець отримує надзвичайно повільний процес оновлення бази даних, що робить ігровий процес фактично неможливим для людини.
Яке значення цей експеримент має для технологічного світу?
Попри свою непрактичність, проєкт Corey Quinn є важливим дослідженням на межі інженерії та цифрового мистецтва. Він ставить питання про межі застосування існуючих протоколів та можливості використання баз даних як обчислювальних середовищ.
Історія з Doom продовжує свою традицію: від запуску на материнських платах та вейпах до використання систем доменних імен. Це демонструє, що сучасні технології настільки гнучкі, що навіть найбільш специфічні інструменти можна перетворити на щось зовсім інше, навіть якщо це «смачно жахливо», як кажуть експерти.
FAQ: Часто задавані питання
Чи можна реально зіграти в таку версію Doom?
На жаль, грати в неї в реальному часі неможливо. Через те, що одна ігрова дія займає близько 54 секунд, динамічний геймплей стає недосяжним. Це технічний експеримент, а не продукт для розваг, який демонструє лише теоретичну можливість роботи коду через DNS.
Що таке таблиці істин у контексті цього проєкту?
Таблиці істин — це величезний масив даних (6,4 мільйона рядків), де заздалегідь прописані всі можливі комбінації вхідних сигналів та відповідні їм результати. Замість того, щоб вираховувати результат математично, система просто шукає готову відповідь у базі даних DNS.
Чим DNS відрізняється від звичайного процесора?
Процесор виконує інструкції послідовно, використовуючи логічні вентилі та обчислювальні цикли. DNS — це система розподілених баз даних, яка призначена для зберігання та пошуку інформації за ключами. У цьому проєкті DNS використовується як сховище для результатів, які були підготовлені компілятором заздалегідь.
Хто такий Corey Quinn і чому це важливо?
Corey Quinn — розробник та дослідник, який відомий своїми нестандартними технічними експериментами. Його робота з DNS привернула увагу навіть таких легенд індустрії, як Paul Vixie, що підтверджує високий рівень технічної складності реалізованого проєкту.
Чи можна знайти код цього проєкту?
Так, Corey Quinn опублікував вихідний код цього експерименту на GitHub. Це дозволяє іншим розробникам та ентузіастам вивчати, як саме було реалізовано перенесення логіки гри на механізми запитів та оновлень доменних імен.
Key takeaways
- Проєкт використовує 6,4 мільйона рядків таблиць істин для заміни логіки обчислень.
- Завдяки RFC 2136 DNS UPDATE реалізовано динамічну зміну ігрових змінних.
- Швидкість гри є критично низькою: один крок триває близько 54 секунд.
- Це не симуляція процесора, а використання DNS як надпотужної бази даних.
Висновок
Експеримент із запуском Doom через DNS є яскравим прикладом того, як глибоке розуміння протоколів може призвести до створення абсурдних, але технічно досконалих рішень. Хоча проєкт не має жодного практичного застосування в геймінгу через свою низьку продуктивність, він слугує потужним нагадуванням про універсальність цифрових систем. Використання DNS як «обчислювального середовища» розсуває межі уяви та змушує інженерів по-новому поглянути на інструменти, які ми щодня вважаємо звичними.
| Параметр | Оригінальний Doom | Doom на базі DNS |
|---|---|---|
| Частота оновлення (tic rate) | 35 разів на секунду | ~0,018 разів на секунду |
| Час одного кроку (tic) | ~28,6 мс | ~54 000 мс |
| Метод обчислень | CPU / GPU | DNS (6,4 млн рядків таблиць істин) |
| Механізм змін | Оперативна пам'ять | RFC 2136 (DNS UPDATE) |
