SlideShare une entreprise Scribd logo
1  sur  11
Создание кроссплатформенного
игрового приложения на Haxe
Причина выбора Haxe
● Google объявил о блокировании Flash-
контента по-умолчанию
● Firefox хочет поступить аналогично
● HTML5 Canvas игры получают
преимущество
Причина выбора Haxe
Javascript-библиотеки Платформы для разработки игр Haxe
Причина выбора Haxe
● Haxe - это высокоуровневый
мультиплатформенный язык программирования и
компилятор.
● Возможность быстрого портирования ActionScript
приложения на Haxe.
● Программа на Haxe может быть транслирована в
исходный код и в байт-код целевой платформы.
● Вывод в :
○ Javascript
○ ActionScript
○ PHP
○ C++
Выбор фреймворка для Haxe
Flambe
Функционал фреймворков:
1. Работа с ресурсами приложения (загрузка и выгрузка)
2. Воспроизведение звука
3. Вывод на экран
4. Работа с областью вывода
5. Работа с инструментами ввода. События мыши, клавиатуры
6. Дополнительные утилиты
Работа с библиотеками для Haxe
1 206 библиотек на официальном сайте
Источник для библиотеки:
● Git-репозиторий
● mercurial-репозиторий
● zip-архив
● локальная папка
3 360 репозиториев на GitHub
XML-файл описания проекта на OpenFL
Настройка приложения:
1. Задать имя приложения, версию и компанию-разработчика
2. Указать директорию для вывода проекта
3. Установить свой загрузчик приложения
4. Подключить к проекту haxe-библиотеки, установленные через haxelib
5. Перечислить загружаемые ресурсы
6. Указать флаги для компиляции
7. Настроить параметры сборки мобильного приложения
Использование директив условной компиляции:
mobile, desktop, web
ios, android, windows, mac, linux, html5
cpp, neko, flash, js
Организация ресурсов и загрузчика
● Ресурсы для каждой платформы
хранятся отдельно.
● Ресурсы, используемые для всех
платформ, выделяются в отдельную
структуру.
● При компиляции общие ресурсы и ресурсы
платформы объединяются.
Разработка системы соединения с сервером
Принципы работы с очередью:
1. Каждая команда пронумерована
2. Структура команды описана стандартом протокола JSON-RPC 2.0
3. Пакет команд отправляется:
● По требованию приложения
● Каждые T-секунд
● По накоплению N-команд
1. Очередь синхронизирована с локальным хранилищем
Сергей Мезенев, Broccoli Games — Создание кроссплатформенного игрового приложения на Haxe

Contenu connexe

En vedette

Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...
Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...
Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...Dev_Party
 
Игорь Иванов, Playrix — Статистические предсказания игровой активности
Игорь Иванов, Playrix — Статистические предсказания игровой активностиИгорь Иванов, Playrix — Статистические предсказания игровой активности
Игорь Иванов, Playrix — Статистические предсказания игровой активностиDev_Party
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Dev_Party
 
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...Dev_Party
 
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...Dev_Party
 
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?Dev_Party
 
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФСРоман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФСDev_Party
 

En vedette (7)

Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...
Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...
Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...
 
Игорь Иванов, Playrix — Статистические предсказания игровой активности
Игорь Иванов, Playrix — Статистические предсказания игровой активностиИгорь Иванов, Playrix — Статистические предсказания игровой активности
Игорь Иванов, Playrix — Статистические предсказания игровой активности
 
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
 
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
 
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...
 
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
 
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФСРоман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
 

Сергей Мезенев, Broccoli Games — Создание кроссплатформенного игрового приложения на Haxe

  • 1.
  • 3. Причина выбора Haxe ● Google объявил о блокировании Flash- контента по-умолчанию ● Firefox хочет поступить аналогично ● HTML5 Canvas игры получают преимущество
  • 4. Причина выбора Haxe Javascript-библиотеки Платформы для разработки игр Haxe
  • 5. Причина выбора Haxe ● Haxe - это высокоуровневый мультиплатформенный язык программирования и компилятор. ● Возможность быстрого портирования ActionScript приложения на Haxe. ● Программа на Haxe может быть транслирована в исходный код и в байт-код целевой платформы. ● Вывод в : ○ Javascript ○ ActionScript ○ PHP ○ C++
  • 6. Выбор фреймворка для Haxe Flambe Функционал фреймворков: 1. Работа с ресурсами приложения (загрузка и выгрузка) 2. Воспроизведение звука 3. Вывод на экран 4. Работа с областью вывода 5. Работа с инструментами ввода. События мыши, клавиатуры 6. Дополнительные утилиты
  • 7. Работа с библиотеками для Haxe 1 206 библиотек на официальном сайте Источник для библиотеки: ● Git-репозиторий ● mercurial-репозиторий ● zip-архив ● локальная папка 3 360 репозиториев на GitHub
  • 8. XML-файл описания проекта на OpenFL Настройка приложения: 1. Задать имя приложения, версию и компанию-разработчика 2. Указать директорию для вывода проекта 3. Установить свой загрузчик приложения 4. Подключить к проекту haxe-библиотеки, установленные через haxelib 5. Перечислить загружаемые ресурсы 6. Указать флаги для компиляции 7. Настроить параметры сборки мобильного приложения Использование директив условной компиляции: mobile, desktop, web ios, android, windows, mac, linux, html5 cpp, neko, flash, js
  • 9. Организация ресурсов и загрузчика ● Ресурсы для каждой платформы хранятся отдельно. ● Ресурсы, используемые для всех платформ, выделяются в отдельную структуру. ● При компиляции общие ресурсы и ресурсы платформы объединяются.
  • 10. Разработка системы соединения с сервером Принципы работы с очередью: 1. Каждая команда пронумерована 2. Структура команды описана стандартом протокола JSON-RPC 2.0 3. Пакет команд отправляется: ● По требованию приложения ● Каждые T-секунд ● По накоплению N-команд 1. Очередь синхронизирована с локальным хранилищем