SlideShare a Scribd company logo
1 of 19
Создание UI игры на Scaleform используя Flash

Дмитрий Дичковский
План доклада




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

      +

  Scaleform

      +

    Flash

      =
Что такое Scaleform?


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


• часть линейки Autodesk Gameware
• разработка на Flash
• высокая производительность
• алгоритм тесселяции (разбиения)
графики из Flash на треугольники
Поддерживаемые платформы
Интеграция с игровыми движками
Кто использует Scaleform?
Основные возможности


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


• базовые классы и системы
• более 15 базовых UI компонентов
    • кнопки
    • текстовые поля
    • скроллеры и слайдеры
    • списки
    • диалоги / окна
• инструменты ускорения процесса
разработки
• AS3 и AS2 версии
• разрабатывал Grant Skinner
UI Kits



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



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
Локализация и работа со шрифтами в 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
Тестирование производительности и профилирование с помощью AMP



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



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



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

More Related Content

Viewers also liked

Dish.fm presentation - launch of iPad
Dish.fm presentation - launch of iPadDish.fm presentation - launch of iPad
Dish.fm presentation - launch of iPadZhanna Sharipova
 
Kozma Szilárd: Az éhségsztrájkom okairól
Kozma Szilárd: Az éhségsztrájkom okairólKozma Szilárd: Az éhségsztrájkom okairól
Kozma Szilárd: Az éhségsztrájkom okairólVioletta Joó
 
Formulación inorgánica
Formulación inorgánicaFormulación inorgánica
Formulación inorgánicabesteiroalonso
 
Arul NCOAUG Presentation 25 Feb 2011
Arul NCOAUG Presentation 25 Feb 2011Arul NCOAUG Presentation 25 Feb 2011
Arul NCOAUG Presentation 25 Feb 2011asenapathi
 
Unpaid Internships in the Creative Industries
Unpaid Internships in the Creative IndustriesUnpaid Internships in the Creative Industries
Unpaid Internships in the Creative IndustriesEvangelina Guerra
 
Telemetry over gprs vico indonesia
Telemetry over gprs vico indonesiaTelemetry over gprs vico indonesia
Telemetry over gprs vico indonesiaImam Mashari, MBA
 
Open Service Design at the SDC 2010
Open Service Design at the SDC 2010Open Service Design at the SDC 2010
Open Service Design at the SDC 2010Evangelina Guerra
 
Assunzione della b.v. maria b
Assunzione della b.v. maria  bAssunzione della b.v. maria  b
Assunzione della b.v. maria bMaike Loes
 
Punchd: Loyalty cards on your smart phone
Punchd: Loyalty cards on your smart phonePunchd: Loyalty cards on your smart phone
Punchd: Loyalty cards on your smart phone500 Startups
 
Gmm 17 gennaio 2016 ita
Gmm 17 gennaio 2016 itaGmm 17 gennaio 2016 ita
Gmm 17 gennaio 2016 itaMaike Loes
 

Viewers also liked (20)

Dish.fm presentation - launch of iPad
Dish.fm presentation - launch of iPadDish.fm presentation - launch of iPad
Dish.fm presentation - launch of iPad
 
ResumUP
ResumUPResumUP
ResumUP
 
Simple Design
Simple Design Simple Design
Simple Design
 
Kozma Szilárd: Az éhségsztrájkom okairól
Kozma Szilárd: Az éhségsztrájkom okairólKozma Szilárd: Az éhségsztrájkom okairól
Kozma Szilárd: Az éhségsztrájkom okairól
 
Lec1 understanding unix
Lec1 understanding unixLec1 understanding unix
Lec1 understanding unix
 
Formulación inorgánica
Formulación inorgánicaFormulación inorgánica
Formulación inorgánica
 
Arul NCOAUG Presentation 25 Feb 2011
Arul NCOAUG Presentation 25 Feb 2011Arul NCOAUG Presentation 25 Feb 2011
Arul NCOAUG Presentation 25 Feb 2011
 
Unpaid Internships in the Creative Industries
Unpaid Internships in the Creative IndustriesUnpaid Internships in the Creative Industries
Unpaid Internships in the Creative Industries
 
Aprile
AprileAprile
Aprile
 
Woof, woof – meow!
Woof, woof – meow!Woof, woof – meow!
Woof, woof – meow!
 
Telemetry over gprs vico indonesia
Telemetry over gprs vico indonesiaTelemetry over gprs vico indonesia
Telemetry over gprs vico indonesia
 
Open Service Design at the SDC 2010
Open Service Design at the SDC 2010Open Service Design at the SDC 2010
Open Service Design at the SDC 2010
 
Tema 3
Tema 3Tema 3
Tema 3
 
Assunzione della b.v. maria b
Assunzione della b.v. maria  bAssunzione della b.v. maria  b
Assunzione della b.v. maria b
 
Punchd: Loyalty cards on your smart phone
Punchd: Loyalty cards on your smart phonePunchd: Loyalty cards on your smart phone
Punchd: Loyalty cards on your smart phone
 
Kirill
KirillKirill
Kirill
 
Gmm 17 gennaio 2016 ita
Gmm 17 gennaio 2016 itaGmm 17 gennaio 2016 ita
Gmm 17 gennaio 2016 ita
 
Bab 1
Bab 1Bab 1
Bab 1
 
Wikipedia
WikipediaWikipedia
Wikipedia
 
Vlada menshosti
Vlada menshostiVlada menshosti
Vlada menshosti
 

Similar to Разработка GUI игрового проекта на Scaleform

Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»e-Legion
 
Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all SoftServe
 
Производительность и энергопотребление мобильных приложений на примере Window...
Производительность и энергопотребление мобильных приложений на примере Window...Производительность и энергопотребление мобильных приложений на примере Window...
Производительность и энергопотребление мобильных приложений на примере Window...Andrew Mayorov
 
Тенденции и тренды
Тенденции и трендыТенденции и тренды
Тенденции и трендыLysenko Andrey
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesWhite Nights Conference
 
Windows Phone 7 Game Development
Windows Phone 7 Game DevelopmentWindows Phone 7 Game Development
Windows Phone 7 Game DevelopmentSergii Lutai
 
Многопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типаМногопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типаAnton Volkov
 
Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Alconost
 
Профстандарт "Системный программист"
Профстандарт "Системный программист"Профстандарт "Системный программист"
Профстандарт "Системный программист"Денис Ефремов
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложенийОлег Винников
 
Windows Phone 8.1 Development Platform
Windows Phone 8.1 Development PlatformWindows Phone 8.1 Development Platform
Windows Phone 8.1 Development PlatformMykhail Galushko
 
Не так страшен Linux…
Не так страшен Linux…Не так страшен Linux…
Не так страшен Linux…Artem Bachinin
 
Unreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesUnreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesDevGAMM Conference
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решенияВладимир Кожаев
 
Как делать глобальный проект
Как делать глобальный проектКак делать глобальный проект
Как делать глобальный проектisdeforum
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON
 
Портирование игр на мобильные платформы
Портирование игр на мобильные платформыПортирование игр на мобильные платформы
Портирование игр на мобильные платформыStanislav Krasnoyarov
 

Similar to Разработка GUI игрового проекта на Scaleform (20)

Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»Владимир Колесников «Windows Phone 7: самое главное для разработчика»
Владимир Колесников «Windows Phone 7: самое главное для разработчика»
 
Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all
 
Производительность и энергопотребление мобильных приложений на примере Window...
Производительность и энергопотребление мобильных приложений на примере Window...Производительность и энергопотребление мобильных приложений на примере Window...
Производительность и энергопотребление мобильных приложений на примере Window...
 
Marmalade
MarmaladeMarmalade
Marmalade
 
Тенденции и тренды
Тенденции и трендыТенденции и тренды
Тенденции и тренды
 
WinRT
WinRTWinRT
WinRT
 
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic GamesAlexey Savchenko, Evangelist, Unreal Engine/ Epic Games
Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games
 
Windows Phone 7 Game Development
Windows Phone 7 Game DevelopmentWindows Phone 7 Game Development
Windows Phone 7 Game Development
 
Panfilov
PanfilovPanfilov
Panfilov
 
Многопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типаМногопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типа
 
Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?
 
Профстандарт "Системный программист"
Профстандарт "Системный программист"Профстандарт "Системный программист"
Профстандарт "Системный программист"
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
 
Windows Phone 8.1 Development Platform
Windows Phone 8.1 Development PlatformWindows Phone 8.1 Development Platform
Windows Phone 8.1 Development Platform
 
Не так страшен Linux…
Не так страшен Linux…Не так страшен Linux…
Не так страшен Linux…
 
Unreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent ShowcasesUnreal Engine 4: Best Practices and Recent Showcases
Unreal Engine 4: Best Practices and Recent Showcases
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решения
 
Как делать глобальный проект
Как делать глобальный проектКак делать глобальный проект
Как делать глобальный проект
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
 
Портирование игр на мобильные платформы
Портирование игр на мобильные платформыПортирование игр на мобильные платформы
Портирование игр на мобильные платформы
 

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

  • 1. Создание UI игры на Scaleform используя Flash Дмитрий Дичковский
  • 2. План доклада • Что такое Scaleform • Рассказ о его основных возможностях с примерами использования в World of Tanks • Немного об истории развития GUI в проекте World of Tanks • Заключение •Q&A
  • 3. World of Tanks + Scaleform + Flash =
  • 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 - изменяет внешний вид танковых прицелов в игре с выводом дополнительной информации (время до окончания перезарядки и т.п.)