Бубер Илья (progrestar) - “from flash to mobile. Портирование flash-игры...
DESCRIPTION
- Разница между браузерными и мобильными играми: средства ввода и условия использования- Средства разработки, предоставляемые создателями мобильных платформ- Анализ движков на мобильных платформах. Преимущества и недостатки существующих на рынке движков- Почему мы остановились на Corona: перенос графики из Flash в Corona, средства (JSFL, приложение на AIR), экспорт анимированных объектов и кукольных персонажей- Изменения в дизайне игры: мини-игры, айфонизация интерфейса и игрового процесса- Подводные камни в разработке: In-App purchases, отсутствие доступа к нативному API, компиляция и запуск на различных устройствах- Платежи на мобильных платформахTRANSCRIPT
Flash to Mobile. Портирование Flash-игры на мобильные платформы
Илья Бубер. Руководитель проектов, Progrestar Inc.www.progrestar.comTwitter: @Progrestar
Flash-Игра Копай
Исследуй
острова
Собирай
коллекции
Собирай
команду с
друзьями
Копай в Соц. Сетях
6 млн довольных
пользователей из СНГ, Европы и
Мира
Миллионы собранных
коллекций
Тысячи сломанных от
бесконечного кликанья мышек.
Зачем мы этим занимались?
2010 2011 2012 20150
100
200
300
400
500
600
700
800 Smartphone vs PC sales, mil-lions
Smartphone PCСтатистика Gart-ner
Часть 1. Выбираем Framework
Часть 1. Выбираем FrameworkОбзор iTorque2D
WYSIWYG редактор Простой скриптовый
язык Исходники Возможность
компиляции под PC/Mac
Плюсы
Немного успешных iOS приложений Редкие обновления Умирающее
коммьюнити
Недостатки
Часть 1. Выбираем FrameworkiTorque2D – Зачем его можно
использовать?
Для платформеров Для людей, плохо
владеющих программированием Если собираетесь
выпускать десктоп-версию
http://www.garagegames.com/products/torque-2d/iphoneИскать тут:
Часть 1. Выбираем Frameworkcocos2D
Бесплатный Open Source Огромное
количество успешных игр Нативный симулятор Огромное
коммьюнити
Плюсы Отсутствие Android Objective C – не самый
легкий язык для AS3-разработчика Продались Zynga
Недостатки
Часть 1. Выбираем Frameworkcocos2D – Для чего подходит?
Идеально для инди-разработчиков Если не испытываете
проблем с низкоуровневым Objective C Лучший выбор для iOS
http://www.cocos2d-iphone.org/Искать тут:
Часть 1. Выбираем FrameworkAnsca Corona
Компиляция под Android LUA Ежедневные
обновления Тех. поддержка и
коммьюнити
Плюсы
Невозможность подключать нативные плагины Компиляция на
сервере Corona Не всегда
адекватно работающий симулятор
Недостатки
Часть 1. Выбираем FrameworkА нужен ли Android?
400.000 активаций в день
Нет проблем с попадением в Market (быстрый аппрув)
Слабая конкуренция 4.5 млрд скачанных
приложений Появились In-App
Purchases
Часть 1. Выбираем Framework
И побеждает….
http://www.anscamobile.com/corona/Искать тут:
Часть 2. Экспорт ассетовВ двух словах об экспорте
SWF
AW
ES
OM
E M
AG
ICPNG• X, Y• Точки трансформации• Motion tweensMETA-DATA
Часть 2. Экспорт ассетовЭкспорт с помощью JavaScript Flash API
MegaMonsters.flaHeroes.fla
Islands.fla
JavaScrip
t
Fla
sh A
PI
Library
SuperDudeFolder
SeaTurtle
MagicMushroom
CrazyPirate
SA
VE
Часть 2. Экспорт ассетовВыдираем ассеты с помощью AIR-
приложения
location_1.swf
ImagesMETA-Data
Часть 2. Экспорт ассетовАнимации в Sprite Sheets
Выделение памяти в степенях
2
(600x600 такой же размер как
1024x1024)
1024x1024 – Макс. Размер
(некоторые девайсы могут
2048x2048)
Оптимизируем Sprite Sheet’ы
Zwoptex’ом
Sprite Sheet
http://zwoptexapp.com/
Часть 2. Экспорт ассетовЭкспорт переодеваемых персонажей
Части тела (PNG)
Одежда и черты
лица
Origins (X,Y)
Точки трансформации
(X,Y)
Motion Tweens
Вычисляем
абсолютные X,Y для
каждой одетой части.
Персонаж
Анимация
Часть 3. Game DesignВзаимодействие с игрой
Часть 3. Game DesignПолностью переверстанный
интерфейс
Часть 3. Game DesignОптимизация под TouchScreen
Часть 3. Game DesignМини-игры
Мини-игры для TouchScreen’ов
Усложняется со
временем (до 9 рун)
Быстрое принятие
решений
Энергия в награду
Точность важнее
скорости
Необходимо для
прохождения игры
Контуры усложняются
с прогрессом игрока
Часть 3. Game DesignИзмененные Социальные Механики
Карта Друзей
Добавление по User
Code’у
Бонус за приглашение
друзей через FacebookFriend Code выдается
каждому игроку при
регистрации. Если друг
введет у себя твой код,
вы оба получите
СтарМани
Часть 3. Game DesignИзбавление от ненужных Социальных
Механик
Часть 3. Game DesignУпрощение игры
Прохождение карт по очереди
Одни и те же
коллекции
Инструменты даны сразу
Часть 3. Game DesignВолшебные Рубины
Волшебные Рубины – основной способ улучшать
характеристики своего персонажа
Можно добыть только собирая коллекции
полностью
Не продаются за деньги
Часть 3. Game DesignЭкшен-Бар
Побуждает игрока активно взаимодействовать с
экраном девайса
Уменьшает зависимость доходов от удачи
Вызывает позитивные эмоции у игроков
Дополнительный стимул тратить СтарМани на
открытие препятствий
Часть 3. Game DesignGambling
Вместо производства расходников,
их можно теперь выиграть у Пьяного
Торговца
Слова вместо скобок
Часть 3. ПрограммированиеLUA для Flash-разработчика
Таблицы вместо Object’ов
Динамические типы переменных
Реализация ООП
• Классы• Наследование• Видимость
Часть 3. ПрограммированиеОбщее у Corona и Flash
Movieclip.lua – существует в
Corona, но SpriteSheet’ы быстрее
есть Button
Flash Tweens => Transitions
Events & Listeners
Поддержка масок
Часть 3. ПрограммированиеРазное у Corona и Flash
Нет фильтров и доступа к пикселям
Не всегда удобная система координат
Непривычная работа с растровыми
объектами-изображениями
Нет хорошей среды для
программирования
Часть 3. ПрограммированиеРеализация связи с Сервером
МобильныйБраузер
Копать
ТУ
Т
Сокр
ови
ща
Пр
оф
ит
My iPhone
My iPad
Сохранить
новые данные
Сохранение ОК!
Синхронизи
роваться
Новые данные
Не нужно постоянное соединение с Интернет
Часть 3. ПрограммированиеКомпиляция проекта на Corona
Симулятор != Девайс
Билд происходит на
удаленном сервере
Иногда билды занимают до
10-15 минут
Не всегда корректно
работает с вложенными
папками в проекте
Проблемы
Что мы сделали?
Кросс-платформенное
мобильное приложение
Не требует постоянного
соединения с Сетью
Проделана огромная
работа по оптимизации игры
для TouchScreen