Чувак починил Oblivion Remastered с помощью вайбкодинга

Даже сами "виртуозы" забили на игру, видимо навсегда. Хотя были надежды с релизом версии на свич 2, но глобально ничего не изменилось. Благодаря Claude автору мода удалось выяснить причину проблем и исправить их, сохранив исходное качество графики.
Эта работа основана на реверс-инжиниринге кода игры, выявляет первопричины «узких мест» в производительности и затем исправляет их с помощью небольшого DLL-файла с внедряемым кодом (hook). INI-файл не может изменить плохо написанный код, а этот мод может.

Ключевые улучшения:

  • Освещение: Каждый кадр игра заново создавала Солнце/Луну, заставляя пересчитывать падение света на каждый загруженный объект, что приводило к безумной и ненужной нагрузке на ЦП. Это было заменено на обновление только при изменениях.
  • Работа с памятью: В операциях с памятью присутствовало много неэффективных моментов, заставлявших игру постоянно выделять и освобождать память; теперь это минимизировано за счет использования буферов.
  • Многопоточность: Множество операций (например, подготовка команд DirectX для отрисовки) выполнялись в один поток, а теперь они распараллелены.
  • Статтеры при перемещении: Фризы при перемещении по миру, вызванные тем, что игра принудительно загружает новые ячейки, NPC внутри них, привязывает объекты к физическому движку и выгружает старые ячейки, теперь значительно уменьшены за счет распределения работы на несколько кадров без изменения поведения игры.
  • Исправление вылетов: Исправлено несколько багов, приводивших к вылетам — как в коде оригинальной игры, так и в Remastered.
  • Генерация кадров (Frame Generation): Различные улучшения генерации кадров: от устранения задержек, когда ЦП заставляли попусту ждать, до внедрения полной поддержки новой AMD FSR Frame Generation (требуется установка DLL AMD FSR 3.1.4, инструкции в readme), включая передачу информации о камере в алгоритм.
  • Оптимизация меню и загрузок: Различные меры по уменьшению фризов при открытии меню/инвентаря и после экранов загрузки. Шейдеры теперь предзагружаются до запуска игры.
114400
3300
88
44
33
33
11
11
11
11