Pull to refresh

Анонс snowkit

Reading time4 min
Views7.5K
Original author: Sven Bergström
Прошедшие полтора года или около того свое свободное время я провел собирая набор библиотек для Haxe и сообщества вокруг него.
Самой главной библиотекой является игровой движок luxe, который позволяет создавать игры, используя один и тот же код для Mac, Windows, Linux, Android, iOS и WebGL.

На мой взгляд, Haxe — это мощный инструмент, который играет важную роль в кроссплатформенной разработке. Я хочу приложить свои усилия к развитию инфраструктуры Haxe лучшим способом который знаю — делай, а не говори.

image


Так что такое snowkit?


snowkit это живой коллектив. Это набор библиотек, инструментов и разработчиков объединенных общей целью — создание высококачественной инфраструктуры для Haxe.
На сайте snowkit вы сможете найти больше информации о целях и идеалах, которые объединяют сообщество.

Что такое Haxe?


Haxe это выразительный и прекрасный современный язык программирования, который компилирует свой код в код на других языках программирования. Узнать больше о нем можно на сайте Haxe.

image

Альфа релиз


Опубликованная сегодня (30 сентября 2014 года) альфа версия, включает в себя высокоуровневый игровой движок, низкоуровневый фреймворк для поддержки различных платформ и систему сборки для Haxe. На данный момент они направлены на создание приложений для Mac, Windows, Linux, Android, iOS и WebGL.

Несмотря на то, что работа над этими библиотеками продолжается, я очень рад анонсировать и опубликовать начальную версию этих библиотек. И делаю я это с той целью, чтобы вы начали ими пользоваться уже сегодня.

Как и любая альфа версия, опубликованные библиотеки имеют функциональные возможности, над которым работа продолжается, библиотеки могут иметь ошибки и местами отсутствующую документацию. Но с вашей помощью, я надеюсь, мы достигнем стабильной версии гораздо раньше.

Несмотря на то, что библиотеки находятся в альфа версии, они довольно стабильны и пригодны для повседневного использования — и уже несколько месяцев постоянно используются немалой группой разработчиков. Я считают, что перед выпуском продукта его надо хорошенько проверить, и лучший способ это сделать — начать пользоваться им в своей повседневной работе как можно раньше.

Однако, хочу предупредить, т.к. это альфа версия, то неизменно будут происходить небольшие изменения. Конечно, все изменения будут документироваться и хотелось бы посоветовать использовать последнюю версию исходного кода, пока не закончится альфа версия, для того чтобы как можно быстрее получать исправления ошибок и новую функциональность.

Как только работа над основной функциональностью будет закончена первая “нумерованная” официальная версия — beta-1 — будет опубликована. А пока же работа будет продолжаться на гитхабе.
Ну а теперь с большим удовольствием хочу перейти к описанию библиотек:

flõw


И первым, о чем хочется рассказать, это система сборок flow. Она была создана с нуля с целью построения новой инфраструктуры для Haxe.

image

На вход flow принимает небольшой Json файл, и следуя описаниям в нем, flow создаст макет приложения, используя стандартные шаблоны, скомпилирует исходный код с помощью Haxe, скомпилирует сгенерированный код с помощью hxcpp и соберет готовое приложение для Web или нативных платформ.

Flow опирается на существующую инфраструктуру Haxe, использует haxelib и предназначен только для улучшения процесса сборки.

image

Flow не зависит от каких-либо внешних библиотек или инструментов. Он включает в себя шаблоны для Flash Develop, плагин для Sublime Text для управления проектами и поддержки дополнений кода (code completion).

snõw


image

Первая крупная библиотека, которая использует flow — snow. Я создал snow, потому что, мне был нужен легковесный, компактный, переносимый нативный фреймворк, для создания моего собственного игрового движка. Изначально, я создал небольшую обертку для нативной части NME (Native Media Engine, кроссплатформенная библиотека для Haxe), которую назвал lime (light media engine, которая стала частью OpenFL, другой библиотеки, которая развилась из NME). Но я продолжал нуждаться в полностью легковесном фреймворке без каких-либо зависимостей. Поэтому в итоге я создал snow с нуля, полностью независимо от NME и lime.

Пример простого приложения на snow:

image

snow очень низкоуровневый фреймворк, предоставляющий доступ к аудио подсистеме, системе ввода-вывода, управлению окнами и OpenGL на следующих платформах: Mac, Windows, Linux, Android, iOS и WebGL. На нативных платформах snow также позволяет создавать многооконные приложения, предоставляет прямой доступ к OpenAL из Haxe и многое другое. snow может быть запущен без окон (headless), с циклом обработки сообщений или без, позволяет получать уведомления от ОС о изменениях файлов, поддерживает события перетаскивания файлов и предоставляет доступ ко всей мощи SDL на всех нативных платформах.
snow — портируемый и очень гибкий фреймворк.

luxe


image

Следующая библиотека — luxe — использует snow и flow. luxe это кроссплатформенный игровой движок для быстрого создания приложений и игр для Mac, Windows, Linux, Android, iOS и WebGL.

Используя подход “напиши один раз — опубликуй везде” и подход снизу-вверх — luxe это очень простой высокоуровневый движок, но он не подойдет вам если вы привыкли докапываться до глубин самых глубин.

luxe спроектирован таким образом, чтобы подстраивать свою структуру под ваши нужды. Он больше похож на комплект инструментов или широкий набор строительных блоков для создания игр и приложений. Можно сказать, что он не имеет четкой структуры и не обязывает вас использовать его, только одним задуманным образом.

Имея аккуратный API и большой набор инструментов luxe является отправной точкой для создания библиотек и модулей для конкретной игры. luxe содержит машину состояний, событийную систему, обработку столкновений, поддержку tilemap и многое другое, к тому же он основан на гибком шейдерном движке для рендеринга.

image

Ниже представлено небольшое видео, демонстрирующее возможности luxe.



Дополнительная информация


Документацию и руководства для каждой библиотеки вы можете найти в соответствующем разделе на сайте snowkit.

Также советую вам подписаться на хештег или rss-фид на сайте, если вы хотите своевременно получать информацию о snow, flow и luxe.

Что же дальше


Есть еще много впечатляющих вещей о которых хочется рассказать и мне и остальному сообществу. С интересом жду, что же мы сможем сделать как сообщество.
Я написал краткий обзор истории и причин, почему создал snowkit (перевод).
Tags:
Hubs:
+19
Comments5

Articles

Change theme settings