Разработка gui игрового проекта на scaleform

19
Создание UI игры на Scaleform используя Flash Дмитрий Дичковский

Upload: dmitry-dichkovsky

Post on 24-May-2015

3.546 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Разработка GUI игрового проекта на Scaleform

Создание UI игры на Scaleform используя Flash

Дмитрий Дичковский

Page 2: Разработка GUI игрового проекта на Scaleform

План доклада

• Что такое Scaleform• Рассказ о его основных возможностях с примерами использования в World of Tanks• Немного об истории развития GUI в проекте World of Tanks• Заключение• Q & A

Page 3: Разработка GUI игрового проекта на Scaleform

World of Tanks

+

Scaleform

+

Flash

=

Lot’s of fun!!!

Page 4: Разработка GUI игрового проекта на Scaleform

Scaleform – это решение от Autodesk, позволяющее использовать Adobe Flash для создания и интеграции графического пользовательского интерфейса в видео играх.

Что такое Scaleform?

• часть линейки Autodesk Gameware

• разработка на Flash

• высокая производительность

• алгоритм тесселяции (разбиения)

графики из Flash на треугольники

Page 5: Разработка GUI игрового проекта на Scaleform

Поддерживаемые платформы

Page 6: Разработка GUI игрового проекта на Scaleform

Интеграция с игровыми движками

Page 7: Разработка GUI игрового проекта на Scaleform

Кто использует Scaleform?

Page 8: Разработка GUI игрового проекта на Scaleform

Основные возможности

• Движок прорисовки и сглаживания векторной графики• Система высококачественных динамических шрифтов• Поддержка rich-text в текстовых полях• Использование масок любой формы для ограничения видимости или анимирования визуальных объектов• Режимы смешения и фильтры• 3D манипуляции и трансформации визуальных объектов• Scale9Grid для создания «резиновых» элементов управления

Page 9: Разработка GUI игрового проекта на Scaleform

Архитектура Scaleform

Kernel(Threads, File IO)

CRI

FMOD

C++ / UnrealScript / Python / Lua Kits MMO Menu HUD Lobby

OpenGL, Direct3D, GCM, Wii API Win32, OSX, Linux, iOS, Android

Flash runtime &

Loader

AS3VM

AS2VM IME

Video

Audio

Renderer API

Tree Cache Mesh / Font Caches

HAL

Page 10: Разработка GUI игрового проекта на Scaleform

Scaleform Workflow

1. Artist 2. Developer 3. Developer 4. QA

Assets Interactivity Integration Playback

GraphicsPhotoshop

Illustrator

AudioPro Tools

Soundbooth

Video After Effects

Premiere

Final Cut Pro

Flash Environment

Scaleform CLIK

Scaleform Launcher

Game Engine

3D Audio Video

GFxExport

VideoEncode

r

Game Platforms

Front End Menus

HUDs and Forms

3D Animated Textures

Mini Games

Page 11: Разработка GUI игрового проекта на Scaleform

Scaleform Workflow WoT way

1. Artist 2. Developer 3. Developer 4. QA

Assets Interactivity Integration Playback

GraphicsPhotoshop

Illustrator

Video After Effects

Premiere

Final Cut Pro

Flash Environment

Scaleform CLIK

Scaleform Launcher

Game Engine

3D Audio Video

VideoEncode

r

Game Platforms

Front End Menus

HUDs and Forms

3D Animated Textures

Mini Games

Python Scripts

Page 12: Разработка GUI игрового проекта на Scaleform

Библиотека UI компонентов CLIK

• базовые классы и системы• более 15 базовых UI компонентов

• кнопки• текстовые поля• скроллеры и слайдеры• списки• диалоги / окна

• инструменты ускорения процесса разработки• AS3 и AS2 версии • разрабатывал Grant Skinner

Page 13: Разработка GUI игрового проекта на Scaleform

UI Kits

Scaleform поставляется в комплекте с набором UI Kits. Они разработаны для демонстрации Best Practices и ускорения ознакомления новых разработчиков с основными use cases. Доступные киты:• MMO Kit• Menu Kit• HUD Kit• Lobby Kit

Page 14: Разработка GUI игрового проекта на Scaleform

Коммуникация между игрой и флешем

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

Page 15: Разработка GUI игрового проекта на Scaleform

Локализация и работа со шрифтами в WoT

Русская конфигурация Английская конфигурация

fonts_all.swf (ru fonts) fonts_all.swf (en fonts)

fontconfig.xml fontconfig.xml

Имплементация GFx::Translator

GFxLoader statesState_FontLibState_FontMapState_Translator

widget1.swfimport $NormalFontimport $TitleFont

widget2.swfimport $NormalFont

widget3.swfimport $NormalFontimport $TitleFontimport $SmallFont

gfxfontslib.swfexport $NormalFontexport $TitleFontexport $SmallFont

texts.mo (ru phrases) texts.mo (en phrases)

Имплементация GFx::FontMap

Page 16: Разработка GUI игрового проекта на Scaleform

Тестирование производительности и профилирование с помощью AMP

AMP (Analyzer for Memory and Performance) – это система удаленного профилирования, позволяющая следить за загрузкой процессора, отрисовкой графики, и потреблением памяти в Scaleform приложении.Разработан специально для художников и разработчиков UI для профилирования Flash приложений.• Графики в реальном времени• Покадровая статистика• Покадровая информация о времени исполнении AS кода• Возможность управлять различными режимами отображения Scaleform приложения

Page 17: Разработка GUI игрового проекта на Scaleform

Выводы

Плюсы:• Высокая производительность• Удобные инструменты разработки• Простота внесения изменений и быстрый деплой• Итеративный процесс разработки• Отличная документация и поддержкаМинусы:• Flash IDE “заточен” под дизайнеров• Различный бэкграунд разработчиков

Page 18: Разработка GUI игрового проекта на Scaleform

Создание модов игры пользователями

Выбранная в WoT модель подключения swf файлов в проект без их предварительной компиляции, открывает для фанатов игры возможность создавать моды, изменяющие практически любую часть UI игры методом простой замены swf файлов установленных вместе с игрой на собственную имплементацию.Наиболее распространенные моды: • OverTargetMarkers – изменяет внешний вид и подачу данных маркеров с информацией о технике на поле боя• «Панель повреждений» – изменяет внешний вид панели с информацией о танке игрока• HARDscope 8 - изменяет внешний вид танковых прицелов в игре с выводом дополнительной информации (время до окончания перезарядки и т.п.)

Page 19: Разработка GUI игрового проекта на Scaleform

Вопросы?