Шедевр оптимизации kkrieger
мы привыкаем к тому, что обычный мессенджер может отъедать гигабайт оперативки, а обновление для игры весит как чей-то диплом, полезно вспомнить, на что способна прямая оптимизация. В 2004 году ребята из немецкой демосцены доказали, что полноценный шутер с графикой, монстрами и звуком может весить меньше, чем пустой ворд-файл. Речь о легендарной kkrieger.
1) История создания игры.
Всё началось на культовом фестивале Breakpoint в Германии. Команда Farbrausch (под брендом .theprodukkt) решила поучаствовать в конкурсе 96kb game. Задача — сделать рабочую игру, размер исполняемого файла которой не превышает 96 256 байт. Для сравнения: это примерно размер одной качественной иконки на вашем рабочем столе. Парни не просто сделали демку, они выкатили настоящий шутер с уровнями, боссами и прокачкой оружия, который взял первое место и навсегда вошел в историю айти.
2) Сам процесс. Сами Разработчики не использовали готовые движки вроде Unreal или Unity. Они написали свой собственный инструмент — .werkkzeug. Основная фишка была в том, чтобы не хранить готовые данные, а описывать их математически. Вместо того чтобы записывать каждый пиксель текстуры или полигон модели, они писали код, который объяснял видеокарте, как всё это нарисовать на лету. Это была чистая математика, превращенная в визуальное искусство.
3) Как она могла столько весить? В этом Секрете кроется в процедурной генерации. В kkrieger нет привычных файлов текстур (JPG/PNG) или звуков (MP3/WAV). Все поверхности стен, металл пушек и кожа монстров создаются алгоритмами прямо во время загрузки. Если бы эту игру сохранили обычным способом со всеми ассетами, она бы весила около 300 мегабайт. Но магический экзешник содержит только инструкции по сборке, поэтому он такой крошечный. По сути, компьютер сам достраивает игру, пока вы ждете загрузочный экран.
Итог.это не пережиток прошлого, а искусство. Сегодня нам проще докупить планку памяти или новый SSD, чем вылизывать код до байта. Но глядя на этот проект из 2004-го, понимаешь если у разработчика есть крутая идея и прямые руки, ему не нужны терабайты места, чтобы создать целую вселенную.
