О, это больная тема для всех, кто помнит эпоху, когда «Half-Life 2» (2004) с его революционной физикой и графикой умещался в 4 ГБ!
Современные игры раздулись до сотен гигабайт не просто так — вот главные причины «жирного кода»:
1. «Лень» оптимизировать? Нет — бизнес-логика
Диски и интернет стали быстрее. Раньше лишний мегабайт удорожал печать CD и доставку. Теперь Steam/консоли качают 100 ГБ за час — зачем тратить месяцы на сжатие?
Конкуренция визуала. Игроки (и обзоры) требуют «киношной» графики — 4K-текстуры, motion capture, HDR-освещение. Один качественный кат-сцена весит как вся «Portal» (2007).
Ассеты вместо процедурки. Раньше деревья/камни генерировались кодом («Minecraft» — эталон). Теперь это отсканированные 3D-модели (каждый лист — отдельный полигон).
Универсальные движки. Unity/Unreal рассчитаны на «любой проект» — включают тонны ненужного кода. Раньше писали движки с нуля под конкретную игру («RollerCoaster Tycoon» была на ассемблере!).
Тестирование режет бюджеты. Выгоднее выпустить сырой билд с авто-патчами, чем год оптимизировать.
3. Культура «раннего доступа»
Игроки стали терпимее к багам. В 2000-х игра обосрана была бы с тормозами на 30 FPS. Сейчас — «пофиксим через патч».
DLC и микротранзакции. Зачем оптимизировать базовую игру, если можно продать «оптимизационный патч» за отдельные деньги?
Поддерживать инди-студии — они ещё верят в «чистый код».
Требовать от AAA-разработчиков оффлайн-режим и удаление DRM (например, «DOOM Eternal» после обновлений похудел на 40 ГБ!).
Играть в ретро — эмуляторы PSP/PS2 сейчас выглядят круче многих новинок.