SlideShare a Scribd company logo
1 of 23
Download to read offline
Разработка 3D-игры на Flash: едем с
костылями на собственном
велосипеде
Сергей Шпадырев,
программист,
компания «Тортуга»
Почему мы выбрали Flash
• Широкое распространение
Flash Player-a
• Наличие испытанных в боях
фреймворков и библиотек
• Большой опыт в разработке
на Flash
• Скорость и удобство
разработки
Stage3D
Встроенная во Flash аппаратно-ускоренная
архитектура, совмещающая в себе возможности
отрисовки 3D и 2D графики. Предоставляет
разработчикам низкоуровневый API для работы с GPU.
Stage3D лежит в основе всех трехмерных графических
движков на Flash, начиная с 11 версии.
Выбор 3D-движка
+ открытость и бесплатность
+ распространенность
+ широкие возможности
+ много хороших уроков
- уступает в
производительности
- слабый редактор
+ неплохой редактор
+ качественные туториалы
+ свой язык шейдеров
- закрытость
- платность
- мало информации в
интернете
+ открытость и
бесплатность
+ чуть большая
производительность
+ русская поддержка
- нет редактора
- мало документации
Первый блин комом
Преодолевая трудности
1. Проблемы с документацией
22 строки шейдера
=
1,5 недели
2. Непонятные аномалии и неожиданные перемены в API
3. Многие базовые вещи приходится дописывать
4. Неожиданные утечки памяти
Animation
pool
Entity
pool
Character
pool
+
+
=
Нет проседания FPS
и утечек памяти
5. Латание дыр движка
- частицы
- проектор теней
- уничтожение объектов
- определение клика по объекту
6. Производительность
Плохое освещение –
высокий FPS
Хорошее освещение, тени –
снижение FPS в 1,5-2 раза
Кроссплатформенность
• Поддерживаются
основные платформы
• Возможно
использование Native API
• Быстродействие иногда
заставляет желать
лучшего 
Избиение младенцев
VS
Производительность
Тест 1 – поиск
простых чисел Flash (мс) Unity (мс)
Тест на скорость арифметических
вычислений. Простым перебором
ищутся простые числа в диапазоне
от 1 до миллиона. Запоминается
время потраченное на поиск,
выбирается минимальное,
максимальное и среднее значение.
min 3540 2527
max 3678 2672
avg 3610 2555
Тест на скорость работы с
массивами. Создаётся массив из
миллиона элементов и заполняется
случайными числами. В ходе теста
по массиву прогоняется алгоритм
a[i] = a[i -1] + 99
Тест 2 – работа с
массивами
Flash (мс) Unity (мс)
min 57 26
max 58 27
avg 57,6 26,3
Графика и анимация 2D
Тест3
(Картинки) Flash Unity
Тест4
(Анимация) Flash Unity
Количество
объектов FPS
Количество
объектов FPS
200 60 57 200 20 57
400 60 44 400 10 34
600 60 28 600 8 21
800 47 21 800 6 17
1000 37 18 1000 5 13
1200 32 14 1200 3 11
1400 28 12 1400 2 9
1600 24 10 1600 2 8
1800 22 9 1800 2 7
2000 20 9 2000 2 6
Описание
теста 3:
Описание
теста4:
Графический тест. Каждые 5 секунд
создаётся 200 объектов типа Image,
они перемещаются в случайном
направлении и поворачиваются на
случайный угол. Замеряется FPS.
Графический тест с анимацией.
Был создан текстурный атлас и
анимация. Тестирование
происходит аналогично
предыдущему тесту.
Сложная модель, 10 штук,
1 направленный источник
света.
Flash – 27
Unity3D – 51
Графика 3D
1000 кубиков,
самый простой шейдер.
Flash – 10
Unity3D – 49
Какие мы сделали выводы
Разрабатывать 3D игру на Flash
можно, но стоит этим заниматься
только если уже есть готовая
инфраструктура. Возможно будут
наблюдаться проблемы с
производительностью на
мобильных платформах, поэтому
для них предпочтительнее
использование Unity. Если
инфраструктуры нет, то Unity
тоже лучший вариант.
Компания «Тортуга»
tortugasocial.com
Для стоящих резюме:
team@tortugasocial.com
Сергей Шпадырев

More Related Content

Viewers also liked

FOREX Signals and Daily Technical Report
FOREX Signals and Daily Technical ReportFOREX Signals and Daily Technical Report
FOREX Signals and Daily Technical Reportcapitalviafx consulting
 
Young Marketers 5 Semi-Final - #hangxom
Young Marketers 5 Semi-Final - #hangxomYoung Marketers 5 Semi-Final - #hangxom
Young Marketers 5 Semi-Final - #hangxomthienvan94
 
Young Marketers 5 Semi-Final - SYNERGY
Young Marketers 5 Semi-Final - SYNERGYYoung Marketers 5 Semi-Final - SYNERGY
Young Marketers 5 Semi-Final - SYNERGYthienvan94
 

Viewers also liked (9)

Comex Intraday pack
Comex Intraday packComex Intraday pack
Comex Intraday pack
 
FOREX Signals and Daily Technical Report
FOREX Signals and Daily Technical ReportFOREX Signals and Daily Technical Report
FOREX Signals and Daily Technical Report
 
SECON'2014 - Сергей Цивин - Производительность веб-приложений
SECON'2014 - Сергей Цивин - Производительность веб-приложенийSECON'2014 - Сергей Цивин - Производительность веб-приложений
SECON'2014 - Сергей Цивин - Производительность веб-приложений
 
SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...
SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...
SECON'2014 - Александр Чистяков - Сравнение современных средств управления ко...
 
SECON.Посиделки #16: Cassandra (презентация)
SECON.Посиделки #16: Cassandra (презентация) SECON.Посиделки #16: Cassandra (презентация)
SECON.Посиделки #16: Cassandra (презентация)
 
SECON'2014 - Максим Цепков - DDD: от требований до кода
SECON'2014 - Максим Цепков - DDD: от требований до кодаSECON'2014 - Максим Цепков - DDD: от требований до кода
SECON'2014 - Максим Цепков - DDD: от требований до кода
 
SECON'2014 - Кирилл Мокевнин - Формирование инженерной культуры
SECON'2014 - Кирилл Мокевнин - Формирование инженерной культурыSECON'2014 - Кирилл Мокевнин - Формирование инженерной культуры
SECON'2014 - Кирилл Мокевнин - Формирование инженерной культуры
 
Young Marketers 5 Semi-Final - #hangxom
Young Marketers 5 Semi-Final - #hangxomYoung Marketers 5 Semi-Final - #hangxom
Young Marketers 5 Semi-Final - #hangxom
 
Young Marketers 5 Semi-Final - SYNERGY
Young Marketers 5 Semi-Final - SYNERGYYoung Marketers 5 Semi-Final - SYNERGY
Young Marketers 5 Semi-Final - SYNERGY
 

Similar to SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде

Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)DevGAMM Conference
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON
 
Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИССуперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИСYandex
 
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
 
Использование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестированияИспользование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестированияSQALab
 
Разработка безопасных веб приложений
Разработка безопасных веб приложенийРазработка безопасных веб приложений
Разработка безопасных веб приложенийAndrey Beshkov
 
Cравнение средств разработки RIA приложений используя Flash платформу
Cравнение средств разработки RIA приложений используя Flash платформуCравнение средств разработки RIA приложений используя Flash платформу
Cравнение средств разработки RIA приложений используя Flash платформуilja.panin
 
Михаил Щербаков "WinDbg сотоварищи"
Михаил Щербаков "WinDbg сотоварищи"Михаил Щербаков "WinDbg сотоварищи"
Михаил Щербаков "WinDbg сотоварищи"Mikhail Shcherbakov
 
Многопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типаМногопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типаAnton Volkov
 
Ladutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality AssuranceLadutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality AssuranceAndrey Ladutko
 
WinDbg со товарищи
WinDbg со товарищиWinDbg со товарищи
WinDbg со товарищиCUSTIS
 
Сервисы Azure для научных исследований
Сервисы Azure для научных исследованийСервисы Azure для научных исследований
Сервисы Azure для научных исследованийMicrosoft
 
Android: Как написать приложение, которое не тормозит
Android: Как  написать приложение, которое не тормозитAndroid: Как  написать приложение, которое не тормозит
Android: Как написать приложение, которое не тормозитElena Kotina
 
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Ontico
 
Artisto App, Highload 2016
Artisto App, Highload 2016Artisto App, Highload 2016
Artisto App, Highload 2016Eduard Tyantov
 
О тестировании в EDI
О тестировании в EDIО тестировании в EDI
О тестировании в EDIMaxim Zakharov
 
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014it-people
 

Similar to SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде (20)

Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)Character creation pipeline for Age of Magic (3D mobile)
Character creation pipeline for Age of Magic (3D mobile)
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
 
Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИССуперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
 
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
 
Использование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестированияИспользование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестирования
 
Разработка безопасных веб приложений
Разработка безопасных веб приложенийРазработка безопасных веб приложений
Разработка безопасных веб приложений
 
Cравнение средств разработки RIA приложений используя Flash платформу
Cравнение средств разработки RIA приложений используя Flash платформуCравнение средств разработки RIA приложений используя Flash платформу
Cравнение средств разработки RIA приложений используя Flash платформу
 
Михаил Щербаков "WinDbg сотоварищи"
Михаил Щербаков "WinDbg сотоварищи"Михаил Щербаков "WinDbg сотоварищи"
Михаил Щербаков "WinDbg сотоварищи"
 
Многопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типаМногопользовательские браузерные игры нового типа
Многопользовательские браузерные игры нового типа
 
Ladutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality AssuranceLadutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality Assurance
 
WinDbg со товарищи
WinDbg со товарищиWinDbg со товарищи
WinDbg со товарищи
 
Сервисы Azure для научных исследований
Сервисы Azure для научных исследованийСервисы Azure для научных исследований
Сервисы Azure для научных исследований
 
Developing our own rendering
Developing our own renderingDeveloping our own rendering
Developing our own rendering
 
Android: Как написать приложение, которое не тормозит
Android: Как  написать приложение, которое не тормозитAndroid: Как  написать приложение, которое не тормозит
Android: Как написать приложение, которое не тормозит
 
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
 
Artisto App, Highload 2016
Artisto App, Highload 2016Artisto App, Highload 2016
Artisto App, Highload 2016
 
рр
рррр
рр
 
О тестировании в EDI
О тестировании в EDIО тестировании в EDI
О тестировании в EDI
 
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
 
мбоу сош№1 правка
мбоу сош№1 правкамбоу сош№1 правка
мбоу сош№1 правка
 

SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде

  • 1. Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде Сергей Шпадырев, программист, компания «Тортуга»
  • 2. Почему мы выбрали Flash • Широкое распространение Flash Player-a • Наличие испытанных в боях фреймворков и библиотек • Большой опыт в разработке на Flash • Скорость и удобство разработки
  • 3. Stage3D Встроенная во Flash аппаратно-ускоренная архитектура, совмещающая в себе возможности отрисовки 3D и 2D графики. Предоставляет разработчикам низкоуровневый API для работы с GPU. Stage3D лежит в основе всех трехмерных графических движков на Flash, начиная с 11 версии.
  • 4. Выбор 3D-движка + открытость и бесплатность + распространенность + широкие возможности + много хороших уроков - уступает в производительности - слабый редактор + неплохой редактор + качественные туториалы + свой язык шейдеров - закрытость - платность - мало информации в интернете + открытость и бесплатность + чуть большая производительность + русская поддержка - нет редактора - мало документации
  • 6. Преодолевая трудности 1. Проблемы с документацией 22 строки шейдера = 1,5 недели
  • 7. 2. Непонятные аномалии и неожиданные перемены в API
  • 8. 3. Многие базовые вещи приходится дописывать
  • 11. 5. Латание дыр движка - частицы - проектор теней - уничтожение объектов - определение клика по объекту
  • 12. 6. Производительность Плохое освещение – высокий FPS Хорошее освещение, тени – снижение FPS в 1,5-2 раза
  • 13. Кроссплатформенность • Поддерживаются основные платформы • Возможно использование Native API • Быстродействие иногда заставляет желать лучшего 
  • 15. Производительность Тест 1 – поиск простых чисел Flash (мс) Unity (мс) Тест на скорость арифметических вычислений. Простым перебором ищутся простые числа в диапазоне от 1 до миллиона. Запоминается время потраченное на поиск, выбирается минимальное, максимальное и среднее значение. min 3540 2527 max 3678 2672 avg 3610 2555 Тест на скорость работы с массивами. Создаётся массив из миллиона элементов и заполняется случайными числами. В ходе теста по массиву прогоняется алгоритм a[i] = a[i -1] + 99 Тест 2 – работа с массивами Flash (мс) Unity (мс) min 57 26 max 58 27 avg 57,6 26,3
  • 16. Графика и анимация 2D Тест3 (Картинки) Flash Unity Тест4 (Анимация) Flash Unity Количество объектов FPS Количество объектов FPS 200 60 57 200 20 57 400 60 44 400 10 34 600 60 28 600 8 21 800 47 21 800 6 17 1000 37 18 1000 5 13 1200 32 14 1200 3 11 1400 28 12 1400 2 9 1600 24 10 1600 2 8 1800 22 9 1800 2 7 2000 20 9 2000 2 6 Описание теста 3: Описание теста4: Графический тест. Каждые 5 секунд создаётся 200 объектов типа Image, они перемещаются в случайном направлении и поворачиваются на случайный угол. Замеряется FPS. Графический тест с анимацией. Был создан текстурный атлас и анимация. Тестирование происходит аналогично предыдущему тесту.
  • 17. Сложная модель, 10 штук, 1 направленный источник света. Flash – 27 Unity3D – 51 Графика 3D 1000 кубиков, самый простой шейдер. Flash – 10 Unity3D – 49
  • 18. Какие мы сделали выводы Разрабатывать 3D игру на Flash можно, но стоит этим заниматься только если уже есть готовая инфраструктура. Возможно будут наблюдаться проблемы с производительностью на мобильных платформах, поэтому для них предпочтительнее использование Unity. Если инфраструктуры нет, то Unity тоже лучший вариант.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. Компания «Тортуга» tortugasocial.com Для стоящих резюме: team@tortugasocial.com Сергей Шпадырев