2. План доклада
• Что такое Scaleform
• Рассказ о его основных возможностях с примерами
использования в World of Tanks
• Немного об истории развития GUI в проекте World of Tanks
• Заключение
•Q&A
4. Что такое Scaleform?
Scaleform – это решение от Autodesk, позволяющее использовать
Adobe Flash для создания и интеграции графического
пользовательского интерфейса в видео играх.
• часть линейки Autodesk Gameware
• разработка на Flash
• высокая производительность
• алгоритм тесселяции (разбиения)
графики из Flash на треугольники
8. Основные возможности
• Движок прорисовки и сглаживания векторной графики
• Система высококачественных динамических шрифтов
• Поддержка rich-text в текстовых полях
• Использование масок любой формы для ограничения видимости или
анимирования визуальных объектов
• Режимы смешения и фильтры
• 3D манипуляции и трансформации визуальных объектов
• Scale9Grid для создания «резиновых» элементов управления
9. Архитектура Scaleform
C++ / UnrealScript / Python / Lua Kits MMO Menu HUD Lobby
Flash runtime Video
AS3 AS2
& IME
VM VM
Loader Audio
Renderer API CRI
Tree Cache Mesh / Font Caches
Kernel
(Threads, File IO)
HAL FMOD
OpenGL, Direct3D, GCM, Wii API Win32, OSX, Linux, iOS, Android
10. Scaleform Workflow
1. Artist 2. Developer 3. Developer 4. QA
Graphics
Photoshop Game Platforms
Illustrator Flash Environment Game Engine
Front End Menus
Audio
Pro Tools GFx
HUDs and Forms
Export
Soundbooth
Scaleform CLIK 3D Animated
3D Audio Video Textures
Video Scaleform Launcher
After Effects
Video
Premiere Encode Mini Games
r
Final Cut Pro
Assets Interactivity Integration Playback
11. Scaleform Workflow WoT way
1. Artist 2. Developer 3. Developer 4. QA
Graphics
Photoshop Game Platforms
Illustrator Flash Environment Game Engine
Front End Menus
HUDs and Forms
Scaleform CLIK Python Scripts 3D Animated
Textures
Video Scaleform Launcher 3D Audio Video
After Effects
Video
Premiere Encode Mini Games
r
Final Cut Pro
Assets Interactivity Integration Playback
12. Библиотека UI компонентов CLIK
• базовые классы и системы
• более 15 базовых UI компонентов
• кнопки
• текстовые поля
• скроллеры и слайдеры
• списки
• диалоги / окна
• инструменты ускорения процесса
разработки
• AS3 и AS2 версии
• разрабатывал Grant Skinner
13. UI Kits
Scaleform поставляется в комплекте
с набором UI Kits. Они разработаны
для демонстрации Best Practices и
ускорения ознакомления новых
разработчиков с основными use
cases. Доступные киты:
• MMO Kit
• Menu Kit
• HUD Kit
• Lobby Kit
14. Коммуникация между игрой и флешем
Scaleform поддерживает стандартные механизмы Flash для передачи
событий и данных в C++ приложение. Scaleform так-же предоставляет
C++ интерфейс для прямой манипуляции переменными, массивами и
объектами в ActionScript, а так-же для вызова методов в ActionScript.
ActionScript -> C++ C++ -> ActionScript
FSCommand – простой вызов функции по строковому GFx::Movie::Get/SetVariable
имени. Возврат значений не поддерживается. Доступ к данным в ActionScript по строковому пути
Устарела.
ExternalInterface – гибкая обработка аргументов. GFx::Movie::Invoke
Поддержка возврата значений. Рекомендовано к Вызов метода в ActionScript по строковому пути
использованию
Direct Access API – использует как прямую ссылку на флэш объект для доступа к данным и методам.
Высокая производительность. Позволяет использовать внешние (по отношению к флэш) методы как
обработчики в ActionScript VM
15. Локализация и работа со шрифтами в WoT
Русская конфигурация Английская конфигурация
texts.mo (ru phrases) texts.mo (en phrases)
fontconfig.xml fontconfig.xml
fonts_all.swf (ru fonts) fonts_all.swf (en fonts)
Имплементация
GFx::FontMap
GFxLoader states gfxfontslib.swf
State_FontLib export $NormalFont
State_FontMap Имплементация export $TitleFont
State_Translator GFx::Translator export $SmallFont
widget1.swf widget2.swf widget3.swf
import $NormalFont import $NormalFont import $NormalFont
import $TitleFont import $TitleFont
import $SmallFont
16. Тестирование производительности и профилирование с помощью AMP
AMP (Analyzer for Memory and Performance) – это система удаленного
профилирования, позволяющая следить за загрузкой процессора,
отрисовкой графики, и потреблением памяти в Scaleform приложении.
Разработан специально для художников и разработчиков UI для
профилирования Flash приложений.
• Графики в реальном времени
• Покадровая статистика
• Покадровая информация о времени исполнении AS кода
• Возможность управлять различными режимами отображения
Scaleform приложения
17. Выводы
Плюсы:
• Высокая производительность
• Удобные инструменты разработки
• Простота внесения изменений и быстрый деплой
• Итеративный процесс разработки
• Отличная документация и поддержка
Минусы:
• Flash IDE “заточен” под дизайнеров
• Различный бэкграунд разработчиков
18. Создание модов игры пользователями
Выбранная в WoT модель подключения swf файлов в проект без их
предварительной компиляции, открывает для фанатов игры
возможность создавать моды, изменяющие практически любую часть UI
игры методом простой замены swf файлов установленных вместе с
игрой на собственную имплементацию.
Наиболее распространенные моды:
• OverTargetMarkers – изменяет внешний вид и
подачу данных маркеров с информацией о технике на
поле боя
• «Панель повреждений» – изменяет внешний вид
панели с информацией о танке игрока
• HARDscope 8 - изменяет внешний вид танковых
прицелов в игре с выводом дополнительной
информации (время до окончания перезарядки и т.п.)