Знакомимся с Firmament

Недавно Jordan Wambaugh выпустил вторую версию своего движка для написания игр - Firmament. В рамках знакомства с движком я немного помог ему с тестированием и фиксом ошибки с генерацией файла проекта для FD, ну а полученную в процессе информацию и основы для быстрого ознакомления с ним, решил изложить здесь. На память, да и может пригодится кому.

Итак, Firmament - это движок для быстрой и простой разработки 2D-игр.
Автор пока выделяет 3 основные черты:

  1. Включает в себя работу с двухмерной физикой на основе Box2D
  2. Создан для быстрого создания игр, с помощью полноценного API
  3. Основан на NME и как следствие кросс-платформенный: Flash, PC, Mac, iOS, Android, HTM5...

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

Установка и первое знакомство с Firmament:

Устанавливается библиотека знакомым всем хаксерам способом - через haxelib:

haxelib install firmament

в процессе он подтянет все необходимые зависимости, если они еще не установлены - актуальный NME и либы для работы с json

После установки можно сразу быстро создать тестовый проект (или основу структуры для своего проекта):

haxelib run firmament setup [Ваше Название]

Затем заходим в созданную для проекта папку и запускаем сборку теста в flash:
 cd [Название]
 nme test [Название].nmml flash

Всё, за пару минут мы получили готовую структуру проекта и собранный, работающий результат. С физикой и тайлами. ;)

В папке проекта лежит готовый файл проекта для FlashDevelop, можно его открыть и посмотреть структуру. Как видно в коде там всего несколько строк инициализации, а вся инфа определяющая сцену, карту, конфиги и сущности на ней лежит в папке configs.
Разбираться в них просто, но вот редактировать руками код наверное приятнее, всё-таки автодополнение и прочее. Но тут как раз на помощь и приходит встроенный редактор FirmamentEditor.
Опять же из папки нашего проекта пишем:

haxelib run firmament edit

Открывается окно редактора, где можно либо начать создавать новую карту, либо загрузить и отредактировать имеющуюся (в тестовом проекте это exampleMap.json). Сущности можно плодить и расставлять вытаскивая их мышью на сцену. Кнопками курсора можно двигать камеру обзора, кнопками + и - (на цифровой клавиатуре) можно приближать и удалять ее.
После редактирования достаточно сохраниться и всё, можно собирать проект с обновленной картой.

Редактор еще довольно сырой и возможностей в нем не так много, но примечательно что он написан на том же NME и с использованием того же Firmament и является частью этого открытого движка, так что принять участие в его развитии или заточить его под себя - не проблема. Firmament на GitHub

Пока всё. С документацией у библиотеки пока слабо. Есть только сгенерированные доки, а тьюторов нет практически совсем, так что этот видимо будет первым) (update: появилась wiki где уже есть раздел для тьюториалов)

Это описание сдублировано в http://haxe.ru/firmament - странице которая, в свою очередь находится в подборке про игровые движки на Haxe.