За 7 лет развития World of Tanks, сложность игрового клиента и сервера значительно выросла. Если сервер можно разделить на сервисы, то клиент остается огромным монолитом в миллионы строк кода на ActionScript, C++ и Python.
Мы решили проблему сложности, встаиванием браузера в игровой клиент и заменив частично на нативные интерфесы на веб-контент. О преимуществах и недостатках этого подхода я расскажу в своём докладе.
2. MMO battle-arena с использованием военной техники,
первой половины XX века
Геймплей состоит из player vs. player боёв, где каждый
игрок управляет единицей военной техники.
ЧТО ТАКОЕ WORLD OF TANKS?
3. WORLD OF TANKS В ЦИФРАХ
• 30+ млн. игроков
• В пике 1.1+ млн игроков онлайн
• 200+ логинов в игру за секунду
• 100+ боев создается за секунду
• 5000+ Tb раздается при каждом обновлении
• Релизный цикл – 7 недель
7. 7
CHROMIUM EMBEDDED FRAMEWORK
Chromium Embedded Framework (CEF) — open source фреймворк
для встраивания Chromium в приложение.
Позволяет разработчику не погружаться в 12М строк кода
Chromium.
Основной контрибьютор – Adobe
7
24. 24
НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ
• Intel Xeon E5-2670 2.60GHz (8 core) 8gb RAM, CentOS 7
• 100к соединений на 24 часа
• 97% CPU utilization (16 nginx workers)
• 8262 сообщений рассылается за секунду
• 6900 RAM использовано
• 0 разрывов соединения
25. ПРЕИМУЩЕСТВА ИСПОЛЬЗОВАНИЯ CEF
25
• Отдельный от клиента релизный цикл
• Бизнес-логика изолирована от кодовой базы игры
• Soft-launch и canary релизы
• Веб-UI ведёт себя как нативный UI
• Инструменты user-tracking
37. РЕЗУЛЬТАТЫ
• Три крупных фичи сделаны в браузере
• Повышение скорости разработки
• Изменения в веб-фичах не требуют тестирования клиента
• Двухнедельные релизные циклы
• Soft launch функциональности
38. 38
ВЫВОДЫ
• Хорошое решение для доставки динамического
контета в desktop приложение
• Не предназначен для встраивания в приложения
требовательные к ресурсам
• В режиме off-screen rendering не потдериживает
hardware acceleration
• Из-за Windows XP chromium 49 версии