Розробник запустив Doom у запитах SQLite без відеодвижка
Забудьте про збереження записів — розробник перетворив SQLite на повноцінний 3D-рушій, який вираховує кожен піксель прямо через SQL-запити.
Відкритий проєкт DOOMQL реалізує повноцінний шутер від першої особи, що повністю працює на базі системних запитів реляційної бази даних. Код від розробника petergpt поширюється під ліцензією MIT та використовує мову Python лише як простий міст для передачі натискань клавіш, розмірів вікна та таймінгу в середовище SQLite.
Кожен окремий кадр ігрового процесу запускає рейкастер, побудований виключно на математичній логіці реляційних таблиць, яка розраховує переміщення гравця, зіткнення зі стінами, штучний інтелект ворогів і колір кожного окремого RGB-пікселя. Алгоритм опрацьовує векторні обчислення через стандартні представлення даних без залучення зовнішніх графічних бібліотек або прискорювачів.
Для формування графіки база даних повертає набір даних, у якому кожен рядок відповідає пікселю екрана, перетвореному на кольоровий символ термінала. Хостовий скрипт просто виконує запит SELECT scanline FROM render_frame ORDER BY y; та перенаправляє сирі байти прямо у вивід термінала, демонструючи дивовижну здатність реляційних баз малювати ретро-графіку.
Проєкт є оригінальним рейкастером і не містить ресурсових файлів WAD, текстур чи звуків класичної гри від компанії id Software. При цьому використання сторонніх файлів баз даних із прапором --db створює безпековий ризик, оскільки модифікована база може впровадити довільний код втечі безпосередньо у сесію термінала. Детерміноване відтворення ігрових сесій можливе лише в ідентичних системах через відмінності в обчисленні плаваючої крапки між збірками.
Адміністратори баз даних роками оптимізують індекси заради мікросекунд, поки ентузіасти перетворюють табличні структури на пекло з рейтрейсингом. Межа між збереженням даних та графічними обчисленнями остаточно розмилася в абсолютному технічному хаосі.
Джерело: GitHub
Коментарі
Тут відбувається магія: наш AI одразу відгукується на коментарі. Бали відображають вплив на статтю та заповнюють шкалу змін. Можна дискутувати або прямо пропонувати, як переписати текст. Коли шкала заповниться, стаття оновиться на ваших очах.