secon'2014 - Сергей Шпадырев - Разработка 3d-игры на flash:...
DESCRIPTION
Тезисы: выбор Flash/Air при создании игры с 3D, сравнение с Unity3D; обзор существующих во Flash 3D-библиотек; трудности разработки 3D-игры на Flash; особенности использования на мобильных платформах; некоторые результаты. Целевая аудитория: все, кому интересна разработка игр, с любым уровнем вовлеченности в индустрию.TRANSCRIPT
![Page 1: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/1.jpg)
Разработка 3D-игры на Flash: едем с костылями на собственном
велосипеде
Сергей Шпадырев,
программист,
компания «Тортуга»
![Page 2: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/2.jpg)
Почему мы выбрали Flash
• Широкое распространение Flash Player-a• Наличие испытанных в боях фреймворков и библиотек• Большой опыт в разработке на Flash• Скорость и удобство разработки
![Page 3: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/3.jpg)
Stage3D
Встроенная во Flash аппаратно-ускоренная архитектура, совмещающая в себе возможности отрисовки 3D и 2D графики. Предоставляет разработчикам низкоуровневый API для работы с GPU.
Stage3D лежит в основе всех трехмерных графических движков на Flash, начиная с 11 версии.
![Page 4: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/4.jpg)
Выбор 3D-движка
+ открытость и бесплатность+ распространенность+ широкие возможности+ много хороших уроков- уступает в производительности - слабый редактор
+ неплохой редактор+ качественные туториалы+ свой язык шейдеров- закрытость- платность- мало информации в интернете
+ открытость и бесплатность+ чуть большая производительность+ русская поддержка- нет редактора- мало документации
![Page 5: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/5.jpg)
Первый блин комом
![Page 6: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/6.jpg)
Преодолевая трудности
1. Проблемы с документацией
22 строки шейдера=
1,5 недели
![Page 7: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/7.jpg)
2. Непонятные аномалии и неожиданные перемены в API
![Page 8: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/8.jpg)
3. Многие базовые вещи приходится дописывать
![Page 9: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/9.jpg)
4. Неожиданные утечки памяти
![Page 10: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/10.jpg)
Animation pool
Entity pool
Character pool
+
+
=Нет проседания FPSи утечек памяти
![Page 11: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/11.jpg)
5. Латание дыр движка
- частицы
- проектор теней
- уничтожение объектов
- определение клика по объекту
![Page 12: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/12.jpg)
6. Производительность
Плохое освещение –высокий FPS
Хорошее освещение, тени –снижение FPS в 1,5-2 раза
![Page 13: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/13.jpg)
Кроссплатформенность
• Поддерживаются основные платформы
• Возможно использование Native API
• Быстродействие иногда заставляет желать лучшего
![Page 14: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/14.jpg)
Избиение младенцев
VS
![Page 15: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/15.jpg)
Производительность
Тест 1 – поиск простых чисел Flash (мс) Unity (мс)
Тест на скорость арифметических вычислений. Простым перебором ищутся простые числа в диапазоне от 1 до миллиона. Запоминается время потраченное на поиск, выбирается минимальное, максимальное и среднее значение.
min 3540 2527max 3678 2672avg 3610 2555
Тест на скорость работы с массивами. Создаётся массив из миллиона элементов и заполняется случайными числами. В ходе теста по массиву прогоняется алгоритм a[i] = a[i -1] + 99
Тест 2 – работа с массивами
Flash (мс) Unity (мс)min 57 26max 58 27avg 57,6 26,3
![Page 16: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/16.jpg)
Графика и анимация 2D
Тест3 (Картинки) Flash Unity
Тест4 (Анимация) Flash Unity
Количество объектов FPS
Количество объектов FPS
200 60 57 200 20 57400 60 44 400 10 34600 60 28 600 8 21800 47 21 800 6 17
1000 37 18 1000 5 131200 32 14 1200 3 111400 28 12 1400 2 91600 24 10 1600 2 81800 22 9 1800 2 72000 20 9 2000 2 6
Описание теста 3:
Описание теста4:
Графический тест. Каждые 5 секунд создаётся 200 объектов типа Image, они перемещаются в случайном направлении и поворачиваются на случайный угол. Замеряется FPS.
Графический тест с анимацией. Был создан текстурный атлас и анимация. Тестирование происходит аналогично предыдущему тесту.
![Page 17: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/17.jpg)
Сложная модель, 10 штук,
1 направленный источник света.
Flash – 27Unity3D – 51
Графика 3D
1000 кубиков,самый простой шейдер.
Flash – 10Unity3D – 49
![Page 18: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/18.jpg)
Какие мы сделали выводы
Разрабатывать 3D игру на Flash можно, но стоит этим заниматься только если уже есть готовая инфраструктура. Возможно будут наблюдаться проблемы с производительностью на мобильных платформах, поэтому для них предпочтительнее использование Unity. Если инфраструктуры нет, то Unityтоже лучший вариант.
![Page 19: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/19.jpg)
![Page 20: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/20.jpg)
![Page 21: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/21.jpg)
![Page 22: SECON'2014 - Сергей Шпадырев - Разработка 3D-игры на Flash: едем с костылями на собственном велосипеде](https://reader034.vdocuments.net/reader034/viewer/2022042700/557f8a10d8b42a2f198b46a0/html5/thumbnails/22.jpg)