SacredBild: Sacred Gold переходит на Direct3D 9Ex и получает поддержку геймпадов
Модификация SacredBild переводит Sacred Gold на современный рендерер Direct3D 9Ex, добавляет поддержку геймпадов и улучшает сетевую игру.

Энтузиаст под ником kirides выпустил масштабную модификацию SacredBild для классической ролевой игры Sacred Gold. Проект представляет собой специализированную библиотеку-перехватчик ddraw. dll, которая заменяет устаревший графический конвейер DirectDraw и Direct3D 7 на современный рендерер Direct3D 9Ex. Разработчик применил подход, аналогичный фанатскому проекту GD3D11 для серии Gothic, внедрив глубокие исправления непосредственно во внутренние структуры движка.
Графика и производительность
Новый бэкенд обеспечивает полноценную поддержку любых разрешений мониторов с сохранением исходной плотности пикселей игрового мира. Классический интерфейс с базовым разрешением 1024 на 768 пикселей автоматически масштабируется под высоту дисплея, а панели быстрого доступа и инвентаря закрепляются по краям экрана. Модификация устраняет давние графические сбои оригинала на широких экранах, среди которых заметные черные полосы между текстурами тайлов, ошибки глубины отрисовки воды и вылеты при перемещении за пределы городов с отдаленной камерой.
Вместе с переходом на Direct3D 9Ex игра получила ощутимый прирост производительности. Рендерер объединяет тысячи мелких вызовов отрисовки в единые пакеты, сохраняет геометрию ландшафта в памяти графического процессора и задействует вершинные шейдеры для обработки скелетных анимаций. Ранее вся анимация моделей рассчитывалась силами центрального процессора через старую библиотеку granny. dll, что отнимало до 20 процентов ресурсов основного потока при отдалении обзора. Тесты показали, что в разрешении 2560 на 1440 точек частота кадров на открытой местности выросла с 94 до 132 кадров в секунду. Кроме того, проект заменяет оригинальный ограничитель частоты кадров, который вызывал постоянную 100-процентную загрузку одного вычислительного ядра процессора даже в главном меню.
Еще одним ключевым новшеством стала встроенная поддержка современных геймпадов от Xbox, PlayStation и Nintendo Switch через библиотеку SDL3. Управление персонажем реализовано по образцу Diablo 2 Resurrected. Герой плавно перемещается в сторону отклонения левого стика без необходимости эмуляции щелчков мыши, атаки и применение способностей снабжены системой доводки прицела, а интерфейс получил контекстные графические обозначения кнопок контроллера. Навигация в инвентаре, журнале заданий, окнах торговли и стартовом окне настроек полностью адаптирована под крестовину и аналоговые рукоятки.
Сетевая составляющая ролевого экшена также получила масштабное обновление. Сетевой стек игры был переведен с протокола TCP на UDP с использованием протокола KCP, что решило хронические проблемы со сбоями подключения через виртуальные частные сети WireGuard и Tailscale. Проект включает собственный модуль поиска игровых сессий, позволяющий подключаться к кооперативным серверам без ручной настройки проброса портов как по протоколу IPv4, так и по IPv6. Дополнительно тайм-аут ожидания подключения был увеличен с 5 до 30 секунд для предотвращения ошибок на нестабильных каналах связи.
Модификация совместима с цифровыми версиями Sacred Gold из сервисов GOG и Steam, а также с оригинальным немецким изданием версии 2. 0. Приложение продолжает отрисовку сцены в фоновом режиме без появления черного экрана после переключения комбинацией клавиш Alt+Tab, воспроизводит видеовставки через Media Foundation и позволяет использовать наборы озвучки из любых локализаций. Исходный код проекта опубликован в открытом доступе под лицензией GPL 3. 0.




Обсуждение
Войдите, чтобы присоединиться к обсуждению.
Загружаем обсуждение…