Искусство оптимизации. 3D шутер, который весит 96 Килобайт!

Сколько весит среднестатистический 3D шутер? Сейчас это в районе сотни гигабайт. Десять - пятнадцать лет назад около 25 гигабайт. Еще более ранние 3D игры, такие как Doom 3 или Half-Life 2, вышедшие в 2004 году, весят 2 - 3 гигабайта. Вся эта информация для того, чтобы показать вам и так очевидную истину - относительно своего места в тайм-лайне истории компьютерных технологий, игры весят достаточно много. Ведь игра - это сложный набор кода, 3D моделей, текстур, звуков, музыки, и все это работает как один большой механизм.

А если я скажу вам, что в 2004 году вышел 3D шутер с неплохой графикой, на тот момент, тенями и динамическим освещением, геймплеем, звуком и он весит, внимание... 96 Килобайт! Нет, вы не ослышались, именно Килобайт. К слову, один лишь скриншот экрана, на который вы сейчас смотрите, весит в 10 раз больше! Игра называется .kkrieger. Возникает только один вопрос. Как!? Как разработчики впихнули все это в 96 килобайт? На этот вопрос я постараюсь ответить в данном посте. Приятного чтения!

Примерно столько в среднем весили 8-ми битные игры на NES.
Примерно столько в среднем весили 8-ми битные игры на NES.

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

Реальный геймплей .kkriger

Так что там по поводу kkriger в техническом плане, неужели разработчики смогли ужать текстуры до такого маленького размера? Нет, я скажу больше, в коде игры нет текстур... совсем нет. Принцип демо это генерация в реальном времени. Так вот kkriger это ведь тоже демо, только с возможностью взаимодействовать с окружением. Все текстуры в игре это... буквы. Да, обычные стандартные шрифты виндовс, только прогнанные через множество фильтров и алгоритмов. Эти самые фильтры и алгоритмы и есть исходный код игры, который весит 96 килобайт. По сути, эксеншник игры это набор кода, который при запуске генерирует саму игру из подручных материалов системы, например, стандартных звуков или шрифтов. Это как кнопка, при нажатии которой разворачивается полноценная игра, весом уже в 300 Мегабайт. А хранится она прямо в оперативной памяти, в реальном времени. Именно поэтому для запуска игры в 2004 году, требовался достаточно мощный компьютер а сама загрузка игры могла занимать вплоть до 10 минут, используя все мощности процессора и забивая оперативную память. Но запуская kkriger на современном компьютере вы даже не почувствуете этой загрузки.

В данный момент, игру сложно назвать законченной, ведь это всего лишь демка, а продолжения игра так и не получила. Но даже в таком виде, в ней имеется множество различных врагов, 5 видов оружия, 9 уровней, на прохождение которых уйдет около получаса. И все это уместилось в 96 Кб. Это действительно впечатляет!

Спасибо за внимание! Если вам интересны подобного рода статьи - подписывайтесь буду рад каждому :)

208208
44
113 комментария

Комментарий недоступен

59

Спасибо. Так сайт про игры же)

10

Немцы, кстати, выебали directX

1

Комментарий недоступен

14

Мне кажется многие неправильно воспринимают эту работу. Это не "оптимизированная игра", это "смотри, что можно запихать в 96 килобайт", буквально техно-демка. Этот подход не масштабируется, столь же оптимизированной полноценной игры не будет, да и не планировалось.

54

Ну тут согласен. Но все же 96 килобайт и в 3д и в это играть даже можно, в голове не укладывается. Некоторые 8-ми битные игры весили больше.

9