Что изменилось
Мы полностью пересобрали игровой клиент. Старый Game.exe был написан больше 15 лет назад и с тех пор только латался модами. Новый клиент собран заново на современных инструментах и при этом он ведёт себя как привычная игра: те же окна, те же механики, тот же дизайн. Ниже - что это даёт нам.Игра стала заметно быстрее
Главная цель этой работы — производительность. Мы разобрали клиент по частям, замерили, где именно проседает FPS, и починили самые тяжёлые места.- В толпе игроков FPS почти удвоился. На одной и той же машине, в одной и той же точке карты старый клиент давал 46 кадров в секунду, новый — 85.
- Оптимизирован просчёт коллизий. Это особенно заметно в подземельях — до +50 %. Проверили в ЗХ и НХ: в среднем стало на 30 кадров больше.
- В городе — 170+ FPS на ПК среднего уровня.
- Исчезли рывки при появлении толпы. Раньше, когда рядом появлялся отряд игроков, игра замирала на 50–100 миллисекунд на каждого прогружаемого персонажа. Теперь подгрузка экипировки идёт малыми порциями, и задержки длиннее трети секунды пропали вовсе.
- Экипировка загружается в сто раз быстрее. Текстуры вещей теперь подготовлены заранее, и создание каждой занимает доли миллисекунды вместо 20–30.
- Загруженное с диска хранится в буфере. Нет нагрузки на диск в любой непонятной ситуации.
- Звук больше не отъедает процессор. Из-за ошибки в старом коде звуковая подсистема пересчитывала все источники звука по четыре раза за кадр (даже при отключенной громкости в клиенте, Карл). Теперь она занимает около одного процента времени вместо десяти.
- Клиент использует несколько ядер процессора. Часть работы по анимации персонажей и проверке столкновений камеры вынесена в отдельные потоки.
Стабильность
- Клиент видит 4 ГБ памяти вместо 2. Тихие вылеты спустя 30-45 минут на массовом PvP при нехватке памяти ушли.
- «Окно не отвечает» больше не появляется. Найдена и устранена причина, по которой Windows считал свёрнутую или неактивную игру как зависшую.
- Если игра всё же упала, мы это увидим. Клиент сам сохраняет отчёт о сбое и подробный лог рядом с ним. Вам достаточно прислать папку crashdump — и мы сможем найти причину.
- Версия клиента видна в углу экрана и в свойствах файла, чтобы в репорте не было путаницы, какая сборка у вас стоит. Пожалуйста, присылайте полный скриншот с этой информацией в углу.
Исправления
За время работы закрыто больше двухсот ошибок. Самые заметные:- Настройки яркости и свечения переработаны: яркость больше не перекрашивает весь монитор и не оставляет его «выцветшим» после вылета.
- Дыры в земле на девяти картах чинятся автоматически при загрузке.
- Меньше застреваний на ровной поверхности при любой частоте кадров.
- Вода отображается и в режиме «Поверхность воды» без шейдера — в старом клиенте в этом режиме воды не было вовсе.
- Скриншоты без использования устаревшей библиотеки, которая останавливала работу клиента на время снимка.
- Убрано использование лишних библиотек: librpc.dll, ijl.dll, ijl15.dll и т.п.
- В окнах кузнеца (кристаллы, зачарование) вещи можно перетаскивать мышью из инвентаря.
- Снятие эмблемы теперь просит подтверждение, чтобы не лишиться её случайно.
Возможности и потенциал
Всё, что раньше требовало танцв с бубном, делается легче. Мы быстрее будем реализовывать задуманные обновления и радовать вас! А чуть позже сможем перейти на DirectX 11, чтобы ещё сильнее прокачать оптимизацию и добавить немного графона)Требования
Клиент работает на Windows 7 SP1 и новее. Windows XP больше не поддерживается.Если вы заметили ошибку — пришлите скриншот, папку log и, если игра упала, папку crashdump.
Спасибо всем тестерам! Ваши отчёты нам очень помогли!