17

WarCraft 3 Web - работа над ошибками⁠⁠

Всем доброго дня! Недавно рассказывал здесь о переносе классической WarCraft 3: The Frozen Throne 1.26a в браузер.

Первый блин, как говорится, вышел комом. Было много багов и недочетов. Первая версия, можно сказать, вышла неиграбельной без полной предварительной загрузки. Но проделанная работа решает эти проблемы.
▶ Опробовать можно тут

Запись примера запуска игры без предварительной загрузки (запись экрана без звука, но в игре он есть):

Ниже будет описание решения каждой из значимых проблем.

Раздельные лобби для языков
Было ошибкой делать разные лобби для игроков, которые выбрали разные языки в игре. Теперь лобби общие. Вне зависимости от выбора локализации игры, игроки будут добавляться в первую по списку свободную лобби.

4 общих лобби, можно создавать дополнительные

4 общих лобби, можно создавать дополнительные

Низкая скорость загрузки
Скорость загрузки была поправлена с помощью банальной смены железа, на которой развернут сервис. Переход с HDD на SDD улучшил ситуацию.

Фризы и непрогруженные звуки
Перекомпилировання версия продолжала использовать логику, что она может читать файлы с диска. И игра честно ждала загрузку каждого файла в кэш. И мне сначала показалась неплохой идея вынести логику загрузки необходимых аудиофайлов (так как они достаточно много весят) в отдельный асинхронный процесс.

Схема асинхронной подгрузки аудиофайла

Схема асинхронной подгрузки аудиофайла

Как показала практика, идея была плохой. Фризы не ушли, так как игра продолжает подгрузку других ресурсов, а асинхронная загрузка просто привела к исчезновению аудио. Реплики подгружались не сразу, фоновая музыка начинала играть с задержкой.

Главным решением конечно было просто предварительно загрузить всё в кеш. Но хотелось добиться, чтобы можно было начать играть без предварительной загрузки файлов. Для решения сначала была реализована пакетная загрузка файлов. Собираем все файлы, которые нужны одновременно для сцены, и загружаем не по одному, а несколько параллельно. Но этого было далеко недостаточно.
Хорошо ситуация изменилась, когда были введены две очереди загрузки: очередь файлов, которые вот прямо сейчас нужны игровому перекомпилированному движку и очередь фоновой загрузки. Пока вы в главном меню игры или ждете какой-то загрузки игра в фоне догружается, но эта загрузка не мешает, если вы создали игру и начали играть. Схема получилась примерно такой:

Схема фоновой загрузки данных

Схема фоновой загрузки данных

Но всё ещё главным советом остается предварительно загружать файлы кеша через настройки на сайте)

Прочите изменения

  • Уменьшен размер WASM

  • Исправлены ошибки, возникающие, когда один игрок резко закрывает игру в матче

  • Исправлены ошибки рендера графики

  • Улучшена стабильность работы на macOS, iOS (играть удобнее с компьютера, так как нужна мышка)

Всем удачи и приятной игры!

2
Автор поста оценил этот комментарий

не знаю как вам это удалось.. никто из близзард не смог сделать, но ваш варкрафт не лагает при отображении меню на моём эйре!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества