Cross-platform

Макросы Haxe. Вводная статья.

Все ниже написанное соответствует Haxe 2 и почти верно для Haxe 3. Но работать без изменений будет только во 2-м. Кто адаптирует все примеры на 3-й и поделится с остальными, получит много экспириенса. Так же написанное не претендует на истину в последней инстанции и может содержать ошибки.

Хочу немного рассказать о макросах в Haxe, статья будет именно вводная, попробую рассказать и показать зачем вообще нужны макросы и какие задачи они могут решать в повседневной жизни.
Макросы в Haxe используют неоправданно мало программистов, кого-то отпугивает их синтаксис, кто-то просто не знает, что это и зачем. Все возможности макросов отлично описаны в статье метапрограммирование на википедии. В двух словах скажу: макросы позволяют как модифицировать существующий код (самомодификация кода), так и создавать новый (генерация кода). В этой статье мы попробуем генерировать новый код, но в очень ограниченных масштабах. Такие вещи, как генерация классов или enum-ов или редактирование существующего кода, я не затрону, лишь замечу, что все это возможно в пределах Haxe макросов!

Выпуск новостей №20

Выпуск новостей №19

Выпуск новостей №18

  • Стали известны темы двух докладов на предстоящей конференции WWX: Juraj расскажет о макросах, а Valerie расскажет о визуализации данных с помощью Haxe и Neko
  • Joshua Granick выпустил новую версию демки Pirate Pigs, использующую WebGL. Похоже, что она была скомпилирована с помощью emscripten - компилятора LLVM в JavaScript
  • Lubos Lenco, создатель игры Castle Siege, описал все шаги, необходимые для публикации вашего NME-приложения в Mac App Store
  • Jason O’Neil написал подробное введение в "новый синтаксис Map классов в Haxe 3"
  • Adrian описал прогресс в работе над игрой Crate Collector. Кроме того, на прошедшей неделе он устроил серию стримов, во время которых он работал над игрой и которые оказались отличным мотиватором, помогающим сосредоточиться и не отвлекаться по-мелочам
  • Следующая новость просто классная, на мой взгляд: Евгений Веретенников, создатель библиотеки Protohx, выложил видеозапись работы сетевой демки, работающей с клиентами на HTML5, Linux, Android, Flash, и серверами на Neko и NodeJS
  • Итак, нам известно, что уже некоторое ведется работа над поддержкой Objective-C в качестве целевой платформы, также ведутся обсуждения о возможной поддержке Python и Lua. Ну а теперь стало известно о работе над поддержкой Rust - нового языка от Mozilla
  • LoudoWeb выпустили новую игру, написанную на Haxe с использованием Awe6 и ASWing
  • Parveen Kumar написал "Обзор Haxe NME, как средства для кросс-платформенной мобильной разработки", в котором описал его сильные и слабые стороны

Выпуск новостей №17

  • WWX 2013 - третья Haxe-конференция - будет проходить с 24 по 27 мая в Париже. В продаже все еще есть билеты (на момент публикации их было около 100 по цене в 60 евро). Так что если собираетесь туда поехать, то торопитесь регистрироваться.
  • Lars Doucet, Samuel Batista при поддержке других членов Haxe-комьюнити добавили реализацию метода BitmapData.threshold() для CPP (почти такую же быструю, как Flash-версию)
  • Появилась еще одна статья для не-Haxe'ров, рассказывающая о создании мультиплатформенной игры Tweet Fighter с помощью Haxe, NME и Flambe для канала Nickelodeon
  • Lubos Lenco обновил свою статью о добавлении рекламы в NME-приложение для Android. Оказалось, что это не так сложно, как может показаться на первый взгляд
  • Как насчет нативной поддержки Facebook и Twitter в NME? Команда Hyperfiction (создатели игры Arkeon) поделилась кучей нативных расширений для iOS и Android
  • С помощью туториала об использовании FlashDevelop для разработки на Haxe, NME и HaxePunk от Kyle Pulver вы сможете "погрузиться в совершенно новый мир волшебства и веселья" (хе-хе, вот это цитата).
  • Greg Dove в статье LeafletJS via Haxe описал свой опыт использования Haxe-экстернов для Javascript, отметив при этом, что на выходе получается хорошо поддающийся сжатию код, а также наличие типизации кода
  • Andrew выпустил публичную альфа-версию своей игры CrateBreaker, которую он пишет, используя NME
  • Новость для пользователей IntelliJ IDEA - началась работа над поддержкой Haxe 3. Спасибо Федору Короткову
  • И, наконец, что такое Pazu? Новая версия NME? Или порт NME в Emscripten?

Выпуск новостей №16

  • В последнем dev-билде FlashDevelop был улучшен механизм автодополнения для Haxe
  • Выпустив в Play Store игру Hard-shell Hockey, Allan Bishop написал о своем опыте, о том, что в NME оказалось хорошо, а что не очень
  • С помощью библиотеки actors от Simon Richardson теперь можно использовать Web Workers в Haxe (для параллельной работы нескольких функций). Также стоит ознакомиться и с остальным функционалом его библиотеки funk.
  • Justin Donaldson выпустил простой bash-скрипт, который он использует для переключения между Haxe 2 и ночными сборками.
  • У парней из Mutant Labs получилось использовать Leap Motion в Haxe. В настоящее время их решение работает с помощью сокетов, но на пути реализация в качестве нативного расширения для NME.
  • TOML - минимальный язык для описания конфигураций - теперь поддерживается и в Haxe с помощью библиотеки HaxeTOML. Вот вводная статья ее автора.
  • Mike Stead выпустил библиотеку HX Yaml. На данный момент в ней поддерживаются JavaScript, Flash и Neko v2.
  • Sam MacPherson выпустил библиотеку Haxe Concurrency, содержащую потокобезопасные структуры данных, а также полностью многопоточный сервер (поддерживаемые платформы: CPP и Neko).
  • Хотите получить прирост в производительности на 67% - 125% в NME-приложениях, использующих метод drawTiles()? Тогда посмотрите в сторону библиотеки StablexDL.

Выпуск новостей №15

Выпуск новостей №14

  • Florian Hofmann из команды Black Goat Games сделает доклад о Haxe и NME на мероприятии Indie Outpost, которе пройдет 17 апреля
  • Erik Escoffier портировал на Haxe библиотеку триангуляции Делоне с довольно крутой демкой. Порт получил название Poly2Trihx, а оригинал на C++ и Java можно найти здесь - poly2tri
  • В качестве небольшого эксперимента Franco Ponticelli создал livehaxe - "автоматический компилятор для Haxe плюс другие инструменты", он "контролирует файлы в вашем проекте и перекомпилирует проект при обнаружении изменений." Очень круто.
  • Может быть эта библиотека станет частью новой версии haxelib, находящейся в разработке?
  • Andy Li написал очередной отличный пост об автоматизированных юнит-тестах для проектов на Haxe, работающих с Travis-CI
  • Nicolas Barradeau создал с помощью NME демку, работающую на HTML5 - "Привет, я попкорновый фрактал". За попкорном можно понаблюдать здесь
  • Adrian начал портировать свою игру Pole Vaultage на Андроид. Вот "видеодоказательство" с ютюба
  • Genome2D - известный 2D-движок с поддержкой аппаратного ускорения - переходит на Haxe. sHTiF сообщает о повышении производительности от 100 до 400% и о возможности поддержки платформы HTML5
  • Появился урок о совместном использовании библиотек HyperTouch и HaxeFlixel, так что теперь еще легче начать создавать игры для мобильных платформ
  • Если Вы когда-либо задавались вопросом, кто же входит в команду разработчиков NME, то теперь есть ответ и на него - встречайте наших героев

Выпуск новостей №12

Выпуск новостей №11

Выпуск новостей №10

  • Опубликована "дорожная карта" для релиз-кандидата Haxe 3: до 17 февраля принимаются новые фичи, а сам релиз запланирован на 24 февраля
  • А для тех, кто хочет опробовать новые возможности Haxe 3, добавили мануал, который регулярно обновляется по мере приближения релиза
  • Steve McIntyre написал гайд по настройке Haxe, NME и FlashDevelop
  • А если Вы работаете не с Windows, то можете попробовать Sublime Text, для которого Varomix DaGreit записал видео-урок о его настройке для работы с Haxe и HaxeFlixel
  • Ну а если Вы используете Vim, то стоит обратить внимание на проект от Justin Donaldson - Vaxe - бандл для Vim с подсветкой синтаксиса, настройкой отступов, компиляции и множества других опций (в котором недавно появилась поддержка и NME проектов)
  • François Nicaise поделился своим опытом публикации его игры Strange Masks. Название его новой статьи можно примерно перевести как "Мой Инди-кошмар - публикация мультиплатформенных игр. Часть 2"
  • Вот новость для пользователей HaxeFlixel - Lars Doucet добавил компонент "9 slice scaling" в свой набор UI-компонентов для этой библиотеки (см. рабочий скриншот)
  • Nick Holder написал короткое сообщение о создании прототипа движка для текстовых приключений - Tiny Text Worlds
  • Помните, что на прошлой неделе стало известно о существовании нескольких UI-библиотек (StablexUI, YAHUI и Basis)? Так вот, на этой неделе "нашлась" еще одна - Guise - GUI-библиотека для Haxe с поддержкой нативных и ненативных элементов управления, созданная Tom Byrne

Выпуск новостей №9

  • Вышла новая версия библиотеки NME 3.5.5, содержащая в основном исправления ошибок. Однако стоит отметить новые примеры шейдеров, работающие как на нативных платформах, так и в браузерах с поддержкой WebGL
  • Все, кто использует NME для кросс-платформенной разработки, также должны попробовать следующие UI-библиотеки: YAHUI и StablexUI
  • И еще одна новость для пользователей NME: теперь каждый может создавать и редактировать документацию и уроки на сайте проекта
  • На сайте VentureBeat появилась статья об игре Evoland, о ней мы уже неоднократно упоминали в предыдущих выпусках
  • Strange Mask - еще одна нашумевшая игра, написанная на Haxe, была рецензирована французским журналом Canard PC и получила оценку 8/10
  • Jordan выпустил новую версию библиотеки TJSON
  • Jon Borgonia выступит с докладом о Lua и Haxe на встрече OUDL, которая пройдет 18 февраля
  • Вышла версия Flambe 2.2, содержащая исправления багов, связанных с Flump (импорт анимаций из Flash IDE), а также экспериментальный WebGL-рендер
  • Отличная новость: Tong создал рабочий toolchain для HXCPP и Native Client.
  • Также стоит отметить проект Basis, целью которого является кросс-платформенный доступ к нативным UI-компонентам
  • Означает ли появление Haxe-мемов то, что язык обретает все большую популярность?

Выпуск новостей №8

Выпуск новостей №7

С этого дня я буду давать выпускам порядковые номера, и так как их уже было 6, то это - седьмой :)
Что ж, теперь переходим непосредственно к списку произошедших событий и интересных сообщений от пользователей Haxe:

  • Если Вы все еще размышляете о том, стоит ли начинать работу с Haxe, NME (и HaxeFlixel), то стоит ознакомится с этой темой на форуме HaxeFlixel.
  • Игра Evoland от студии Shiro Games, победитель Ludum Dare 24, теперь участвует в голосовании на Steam Greenlight! Помогите ей попасть на Steam, а также посмотрите замечательный трейлер.
  • А вот новость об еще одной замечательной игре - если у Вас есть iPad, тогда Вы можете принять участие в бета-тестировании Strange Masks.
  • Вышла библиотека Promhx. Ее автор, Джастин, начал интересное обсуждение на странице Haxe-сообщества, к которому Вы должны присоединиться, если Вы все еще не вступили в него.
  • Посмотрите видео (на французском) о приложении MYTF1, написанном на Haxe с использованием кросс-платформенной библиотеки Cocktail. Приложение рассчитано на одновременное подключение до 500000 пользователей. Также вышла статья об этом приложении (на английском)
  • Официально утилита Flump 1.0, предназначенная для конвертирования Flash-анимаций в текстурные атласы. В настоящее время есть экспорт в форматы Starling, Sparrow и Flambe.
  • Lars Doucet ищет Haxe-разработчика для портирования игры Defender's Quest, вышедшей на Steam в прошлом октябре. Подробности тут

Новости третьей недели января 2013

  • Juraj, автор библиотеки tinkerbell, показал кусочек кода, работающего с его новой разработкой - tinx_node
  • Нужен пример встраиваемого haxe http сервера? tong сумел создать его всего за одну ночь
  • Хью Сандерсон, автор hxcpp, сообщает, что смог запустить NME-приложение на Raspberry Pi при 60 fps
  • Релиз-кандидат Haxe 3 выйдет в конце января - начале февраля, и еще одной фичей этого релиза станут новые возможности работы с массивами - читайте о них на официальном сайте Haxe
  • François, разработчик игры Strange Masks, написал несколько интересных постов у себя в блоге
  • Christopher написал о своей библиотеке NME Tiled, которая, как ясно из названия, позволяет использовать карты, созданные в редакторе Tiled, в NME-приложениях (да, я - капитан очевидность :) )
  • Если вы пользуетесь FlashDevelop, то шаблоны, созданные Mark Knol, могут оказаться весьма полезными
  • Обновилась библиотека Flambe. Новая версия теперь имеет номер 2.1
  • Судя по официальному твиттеру NME скоро мы сможем создавать приложения и для новой консоли OUYA
  • Как вы, наверное, уже знаете - вышла новая версия NME 3.5.4, в которой наконец-то починили поддержку полноэкранного режима для настольных приложений
  • Джошуа Граник сообщает, что скоро в NME появится поддержка WebGL с помощью OpenGLView (в репозитории уже есть первые коммиты)
  • Matt Tuttle выпустил мажорную версию своей библиотеки HaxePunk. Главная фича релиза - аппаратное ускорение графики для нативных платформ
RSS-материал