Haxe — это современный, строго типизированный язык программирования с некоторыми интересными функциями и небольшой стандартной библиотекой.
Наиболее существенной особенностью языка является его способность компилировать один и тот же код под разные целевые платформы.
Ниже приведу список лишь некоторых доступных фреймворков и движков, возможно упустил что то важное.
Flambe использовался для разработки HTML5-игр такими брендами, как Disney, Coca-Cola и Toyota.
Heaps — игровой 3D/2D фреймворк, лежащий в основе таких успешных инди-игр как Northgard и Dead Cells.
Библиотека для быстрой разработки awe6 является, возможно, скрытой жемчужиной даже для сообщества Haxe.
Kha — ультра-переносимый мультимедийный фреймворк, с возможностью сборки проектов не только десктопных и мобильных ОС и HTML5, но и под XBox One, Nintendo Switch и Playstation 4. На его основе создано более 20 игровых движков, наиболее интересным из которых является Armory — 3D-движок с полной интеграцией с Blender.
HaxeFlixel, созданный по образцу старого Flash-движка Flixel, является популярным выбором для создания небольших игр, например, для Defender's Quest.
Starling — изначально ActionScript-фреймворк, использовавшийся для порта Angry Birds для Facebook, теперь также обзавелся портом на Haxe.
OpenFL, реализующий Flash API, также позволяет создавать приложения для консолей (PlayStation 4, PlayStation Vita, XBox One и Nintendo Switch), десктопных и мобильных ОС, HTML5. HaxeFlixel и порт Starling работают поверх OpenFL. Примером игры, разработанной непосредственно на OpenFL, является отмеченная наградами Papers, Please.
Native Media Engine (NME), от которого несколько лет назад отделился OpenFL, продолжает поддерживаться и для него выпускаются обновления.
HaxePunk (произошел от еще одного Flash-движка — FlashPunk) — возможно вы могли видеть упоминание о нем в одном из выпусков Github Release Radar.
Если что Kha можно учить на ютубе https://www.youtube.com/playlist?list=PL4neAtv21WOmmR5mKb7TQvEQHpMh1h0po
На данный момент там 127 серий. Правда на инглише.
Есть что из перечисленного выше, что мне стоит покурить?
Размер билда важен только для html5 соответсвенно
Недеюсь ОП еще здесь.
Давно хотел спросить, но все не находил времени. Есть идея отличной концепции игрушки. Для реализации приложение должно запускаться на планшетах, смартфонах и ноутбуках (возможно с линуксом, но не обязательно).
Ищу самый простой язык для написания. Планирую генераторы, пиксельную графику, ничего прожорливого. Подумавал о варианте AIR + AS. Но то что ты описал, похоже, подходит лучше.
Можешь подробней описать процесс разработки? Какую среду можно использовать для кодинга, как это сочитается с фреймворками и движками? Интеграция с GIT? Общее удобство? Какой из фреймворков максимально прост в освоении и дает максимум свободы кода одновременно с простотой? И что проще всего запустить на описанных платформах?
нативная javascript против всякой неведомой херни которую нигде толком не задокументировали
>Чем этот нах лучше сишарпа? Вместо дотнета у него неко. Чем неко лучше дотнета?
вообще у тебя неверное понимание.
дотнет - это универсальная единая платформа. как джава машина. Их проблема - что это именно абстрактная машина далекая от текущей платформы.. и как бы ее не оптимизировали, почему юнити компилируется не в байт код нетплатформы а в нативный C++? вот потому что нативное эффективней универсальнго.
неко - это не платформа, а компилятор.
naxe - это про другое - это как бы один универсальный язык программирования который транслируется в нативные яп.
Ты не можешь написать код на C#, нажать кнопку и получить код на php.
А вот написать код на naxe и получить код и для php и для С++ - можешь. Вот она сила данного языка.
> неко - это не платформа, а компилятор.
Это виртуалка с байткодом. Возможно её байткод более специфичен для игор, чем дотнетовский? Я это хочу узнать.
> Вот она сила данного языка.
Я это уже понял.
Из этой силы вытекает второй вопрос: как там отладка организована? Отлаживать код на нахе я не смогу? Мне придётся отлаживать, скажем выполняющийся в хроме жс? А потом по сообщениям отладчика переводить жс в уме обратно в нах и править ошибки в исходном нахе? Или как вообще?
неко - это всего лишь одна из целевых платформ.
naxe используется именно как транслятор кода, который потом компилируется нативным компиляторм.
Например можно транслировать в C# и использовать дотнет (вот даже ссылка https://haxe.org/documentation/platforms/csharp.html)
>>639488
>Отлаживать код на нахе я не смогу?
Можно, но надо повозится с настройками. отладчик есть в Visual Studio Code. не подскажу, сам пока не пробовал.
>>639488
>А потом по сообщениям отладчика переводить жс в уме обратно в нах и править ошибки в исходном нахе?
ты работаешь только с naxe кодом. Все эти трасляции - они там в черном ящике происходят, можно не парится
(хотя конечно можно использовать и как кодогенератор чтобы потом уже на нативном языке использовать - как хочешь короче)
Не на Haxe, но можешь глянуть superpowers engine. Самое близкое и подходящее к твоему описанию, что я знаю.
>Можешь подробней описать процесс разработки?
Ну давай попробуем.
>Какую среду можно использовать для кодинга
HaxeDevelop или VSCode. Первое развивается с переменным успехом силами 1.5 человеков, 2-е развивается мелкософтом, с Haxe работает через расширение. Оба надо брать и пробовать все фичи и выбирать, какие в итоге более удобные в работе.
> как это сочитается с фреймворками и движками?
Зависит от. Где-то template-проект конкретно фреймворка делается одной кнопкой, где-то надо руками все настраивать.
>Интеграция с GIT?
git init
git add remote
git push
>Общее удобство?
Удовлетворительно-хорошо
>Какой из фреймворков максимально прост в освоении
Очевидный OpenFL. Но это в первую очередь фреймворк, а не игровой движок
>максимум свободы кода одновременно с простотой
Противоречит сути понятия фреймворк. Хочешь свободы - пишешь весь код сам с нуля под целевую платформу. Хочешь простоты - используешь готовые решения в рамках созданной архитектуры
>И что проще всего запустить на описанных платформах?
Процесс тестирования и отладки зависит от платформы и может сильно варьироваться. Какой-то общий код можно спокойно дебажить прямо в IDE. А все, что platform-specific - ставить доп. дебагеры, подключать удаленную отладку и прочая менее-удобная возня.
>Можешь подробней описать процесс разработки?
Ну давай попробуем.
>Какую среду можно использовать для кодинга
HaxeDevelop или VSCode. Первое развивается с переменным успехом силами 1.5 человеков, 2-е развивается мелкософтом, с Haxe работает через расширение. Оба надо брать и пробовать все фичи и выбирать, какие в итоге более удобные в работе.
> как это сочитается с фреймворками и движками?
Зависит от. Где-то template-проект конкретно фреймворка делается одной кнопкой, где-то надо руками все настраивать.
>Интеграция с GIT?
git init
git add remote
git push
>Общее удобство?
Удовлетворительно-хорошо
>Какой из фреймворков максимально прост в освоении
Очевидный OpenFL. Но это в первую очередь фреймворк, а не игровой движок
>максимум свободы кода одновременно с простотой
Противоречит сути понятия фреймворк. Хочешь свободы - пишешь весь код сам с нуля под целевую платформу. Хочешь простоты - используешь готовые решения в рамках созданной архитектуры
>И что проще всего запустить на описанных платформах?
Процесс тестирования и отладки зависит от платформы и может сильно варьироваться. Какой-то общий код можно спокойно дебажить прямо в IDE. А все, что platform-specific - ставить доп. дебагеры, подключать удаленную отладку и прочая менее-удобная возня.
Лучше поздно чем никогда :3 Со многим уже разобрался пока было свободное время, а его к сожалению очень мало.
Освоил основной синтексис. Определился с VSCode. Разобрался с Git. Операционка кстати Windows 10. Начал было ковырять HeapsIO, но это чисто графический движок. А мне нужны бродкаст запросы для поиска игроков в локальной сети. То что нужно походу есть в OpenFL, так что в следующий отпуск наверну его. Ну и поищу графические библиотеки совместимые с ним. Все очень медленно, конечно, но я никуда не тороплюсь.
Спасибо за ответ в любом случае.
а еше чего нового появилось? чтобы понимать насколько production-ready это вот все
evoland 1 и 2 да и прочие продукты их конторы, какая-то там стратежка про викингов.
Да вроде хроники хаоса с флеша была переписана на haxe, но там у них свои велосипеды какие-то.
документации полные штаны, ты куда смотришь-то вообще
плюс на гитхабе по Haxe искать можно, если что не понятно - берешь и смотришь как в других проектах делается
https://github.com/search?l=Haxe&q=openfl&type=Code
Это ты не туда смотришь.
Дедсел на heaps.io написан, практически единственный движок на haxe, который может в продакшн. И именно у него нет документации нормальной, хз как под него писать.
Если ты хочешь на haxe свой движок писать - документацию по haxe вообще нинужна.
> Дедсел на heaps.io написан
Ничеси, tnx. Надо поковырять,выглядит солидно
> Если ты хочешь на haxe свой движок писать
Ну есть куча вещей попроще уже готовых, есть флешовый старлинг из коробки я с флеша пересел на openfl+starling безпроблемно
на starling вообще до жопы готового на любую тему,либы под спайн итп
> Надо поковырять,выглядит солидно
Ну как сказать. Хорошая штука, но это не совсем движок и эти самые проблемы с документацией.
Непонятно всё с этим короче. Непонятно с тестированием по платформам. Я бы даже взял его, но да, всё слишком странно.
> starling
Че-то слишком специфично и узкий круг задач.
>Че-то слишком специфично и узкий круг задач
для 2D - с головой на нем смачный кусок флешового геймдева сидел. что удобно - API c флеша не поменялось ВООБЩЕ. просто тупой копипаст (с поправкой на синтаксис) - и все работает. даже шейдеры завелись сразу без изменений
Эх, а у меня триде срань. Везет в 2d работать
под свои хотелки понял, что для меня подходит два движка, это heaps и defold. Но у дефолда более странный подход, со всякими сообщениями между объектами. Если прокт разрастется, думаю разработка превратится в ад. еще по умолчанию язык со статической типизацией выглядет намного бодрее, нежеле, прикручивать, что нибудь(тот же haxe) поверх lua в дефолде.
Но вот, что разрабы досихпор не написали туториал для сборки под андроид, меня немного пугает.
сборка под мобилки - это больше хаксовская тема, heaps это же просто фреймоворк. я к тому что посмотри OpenFLные туторы/на форуме пообщайся - там дофига народу под мобилки пилят
Ухх, вроде получилось с горем пополам. Два вечера убил на все это дело. Честно туторы мне вообще не помогли никакие, помог недоделанный репозиторий Николаса а также натуральное вангование ошибок в Logcat т.к. гугл молчал.
Если зайдет все это дело, нагатаю гайд чуть попозжа.
я какое-то время самолично игрался с языком, писал всякие штуки на openfl и luxe, сейчас думаю снова попробовать в геймдизайн с haxe.
https://haxe.org/blog/shirogames-stack/
тута запилили тулзу которая считает (плюс-минус криво) под какими движками работают стимовские игры
ht__//steamdb.info/tech/?beta=ohthehumanity 3
и что интересно - OpenFL (lime-based) на Haxe оказался в первой трети списка, сразу за Source. обогнал CryEngine и Defold, так-то
рендер spine и drag bones
интеграция текстур пакера
если 2д из коробки работает то хотелось бы видеть хоть в сторонних репах готовый 3д рендер, с поддеркой импорта популярных форматов.
То, что этого ничего нет готоврит о том, что никто особо не делал игры на данном фреймворке. Начать велосипедить все самому, до игр точно не доберешся.
я про кха говорил, спайн есть только рантайм, самого рендера нету.
heaps своеобразный движок.
Но зато теперь могу ответсвенно заявить - Haxe жив (+openfl +starling) и для партизанского инди вполне подходит. Web+Mac+Win+мобилки на одной кодовой базе с минимумом костылей вполне работают. проблемы конечно есть - но решаемые
>Да вроде хроники хаоса с флеша была переписана на haxe
Меня hr их конторы походу как-то нашла по гитхабу и писала аж 3 раза на мыло. Так что хэксобои мотайте на ус.
Раз уж бамбанули.
>>842409
>Haxe жив
Не особо. Там кстати новый релиз HaxeFlixel - 5.0. Можно конечно носится с тем как он офигенно кросскомпилиться и что движок поверх heaps это новое юнити, но в реальности вердикт такой - ненужно. Тем не менее кто запретит что-то на нём до продакшена довести? Да никто. Практика показывает что запросто можно офигенные 3д стратежки делать.
>если кому интересно
Как сам движок нет. На код я бы глянул.
>Ссылки и прочая тут
Not found.
>Ссылки и прочая тут
>Not found.
странно // может доска скрытая. тогда вот -
- Web (Chrome, FF): https://gamerotor.com/play/nvl_nks
- Win10: https://gamerotor.com/get/nvl_nks_win
- MacOs: https://gamerotor.com/get/nvl_nks_mac
>но в реальности вердикт такой - ненужно
не соглашусь, юнити - тяжелая штука, для работы с которыми надо кучу нервов (особенно между апдейтами) и PC нормального уровня, и даже это не избавит от страданий в редакторе. тут же между тобой и результатом в браузере - 10 секунд компиляции некислого проекта. и если это работает в браузере - это на 90% работает ВЕЗДЕ. короче удобней (но lowlevel по сравнению с айдиешками, конечно), как с флешом - пока он был жив )
>тяжелая штука
Ну дык многофункциональная зато. Но мне тоже не нравится.
>но lowlevel по сравнению с айдиешками, конечно
А ты на visual studio code пишешь кста?
там нет ничего чего не было бы везде (я про 2D). и то что есть часто прибито гвоздями (ебучие инициализации). в итоге ты вместо разработки свои костыли сращиваешь с чужими и страдаешь
в более олдскульных движках надо конечно с порога больше знать. но и с юнити все что надо - узнать придется, если хоть где-то шаг вправо/шаг влево потребуется
> vscode
ага, ничего больше и не надо :)
А языку обязательно нудна ниша, просто быть "клёвым" для выживания мало. У C++ есть лоу-левел, у C# Microsoft и Unity, у джавы Oracle, у питона гугл, у JS нода и монополия в браузерах.
Никто не пишет на Ruby не потому, что он плох, а потому, что его потеснили с ниши.
У него и была ниша - заменить action script для флэша. А потом флэш ни во что не трансфомировался, тупо умер.
>на все платформы компилится теперь каждая собака.
Нативно вообще не каждая. Ты можешь скомпилить свой код в почти любой другой язык и тем самым присобачить его к почти любому другому проекту. Только это в принципе ненужно. Ну мало ли, вдруг это станет важно, например когда будет великий парсинг всего гитхаба нейросетями. Посмотрим, индустрия языков и инструментов всё ещё развивается. А так не умер и то хорошо.
> Только это в принципе ненужно
нужно, если не нужно тебе - то ты просто с комплексными задачами не сталкивался. а я вот сталкивался - и в итоге у меня один и тот же haxe-код и в клиенте работает и в node.js подключается, для проверки данных от клиента. для не-интерфейсных вещей (бизнес логика) это реально удобно - ни писать ни тестировать раздельно не надо
кстати haxe можно даже В ЮНИТИ компилить - вон разраб ceramic заморочился https://github.com/ceramic-engine/ceramic
>>842521
>ведь на все платформы компилится теперь каждая собака.
с одинаковым уровнем работоспособности НИ ОДНА собака кроме Haxe не компилит, в том-то и проблема. в том же юнити под PC/JS/IOS/ANDROID нужны абсолютно свои костыли, потому что изначально все заточено под полнофичевое окружение и все остальное вкручено на отъебись.
хотя сейчас может чо и поменялось, я про юнити давно забыл и обратно не тянет, потому что 3D в гробу видал (нормально делать слишком геморройно), а для 2D-проектов юнити ничего кроме постоянных страданий предложить в принципе не способен. 2D в Unity - это для идейных мазохистов, как по мне
haxe нативно компилируется в текст на других языках, который делает ровно тоже самое, и это экономит время на специфических задачах
>для всего нужно писать нативный код платформы, просто это обычно в библиотеках сделано
ну да, просто они не замахиваются на невозможное - зато ровный базовый минимум работает гарантировано везде одинаково.
>то есть это просто транслятор в c++ код
cpp - это под статические таргеты, но ими не ограничивается. под js - генерится js код. можно прям метод с логикой вырезать и скопипастить в бэкэнд на ноде. причем это читаемый код, не бурда какая. или можно "скомпилить в тайпскрипт" (только копипастить придется больше, если надо). или в php, если у тебя бэкэнд на нем, или в lua (для nginx например)
и с cpp тоже свои плюс по сравнению с типичным подходом - у тебя все В ИСХОДНИКАХ. под иос оно тебе прям проект для xcode генерит, причем там весь код ЧИТАЕМЫЙ, а не заранее скомпиленные дллки как в юнити (все что наколбашено в юнити оно уже туда закопилено, не поменять). И если тебе надо впендюрить что-то в конкретное место в твоей логике или под платформу что-то заточить - просто открываешь cpp соотсветсвующий hx-файлу и вписываешь что угодно (впрочем это в haxe можно прописывать, в проект лезть незачем)
>нужно, если не нужно тебе - то ты просто с комплексными задачами не сталкивался
Всё таки комплексные задачи - это например написать навмэш систему навигации, чтобы у тебя хотя бы 500 юнитов тянуло. Повторить что-то на бэкэ и на фронте это не то чтобы прямо сложно, скорее муторно.
>это например написать навмэш систему навигации, чтобы у тебя хотя бы 500 юнитов тянуло.
Ну да, а потом перенаписать ее на сервере, чтобы проверять данные которые тебе клиент шлет периодически. потому что верить клиенту это зашквар, а считать все на сервере - буржуйство и лагогенерация
>Повторить что-то на бэкэ и на фронте это не то чтобы прямо сложно, скорее муторно
вот именно. и когда это делается и тестируется ровно в одном месте - это не так муторно.
но так-то да, до всего этого далеко не каждый докатывается
Надо написать игру на Haxe!
тебе в ротик ;)
Напиши. для 3D - Armoury 3D рулит
вот например - https://blenderartists.org/t/last-man-fighting/1186473/61
RPaladin OP — 11/27/2022 12:32 AM
Originally created in the vanilla Blender Game Engine (BGE), ported to Godot, PlayCanvas, and now Armory3D.
Ща будут про дюну рассказывать.
https://www.twitch.tv/haxeevents
Ещё объявили, что где-то выйдет Haxe5, но там дропнут поддержку C# походу, что ультраплохо.
никуда они ее не дропнут, этож нахера
тут вон говорят годот с дефолдом подключили, чтобы значит из экосистемы не вылезать можно было, может бзал кто?