Мы используем Lua 5.1, потому что для него есть LuaJIT, который даёт сильный прирост производительности. [...]
Lua очень популярен не только в геймдеве, но и в бэк-энде, как раз благодаря LuaJIT. [...]
Lua придумали не для программистов, а для того, чтобы быстро решать задачи, и его было проще изучать. По структуре он похож на Java Script, но меньшим количеством синтаксических операций даёт больше возможностей. Современные тенденции идут к тому, что многие языки стараются урезать количество синтаксических возможностей для выполнения одних и тех же операций — унифицировать, чтобы не усложнять код. Lua прямой, простой, но очень гибкий.
«Один раз написал игру — она везде работает»: в чём преимущества кроссплатформенного движка Defold Гулев рассказал, что Defold — это кроссплатформенный игровой движок, который можно использовать даже на HTML5 и мобильных устройствах. При этом везде у него будет единая база — это значит, что «не нужно писать игру несколько раз, ты один раз её написал, она работает». Как и любой другой кросс-платформенный движок?
В Unity первые 80% разработки игры очень лёгкие, ты доволен, а вторые 80% разработки — очень сложные. В Defold вторые — не 80%, а 20%, потому что не нужно ничего сильно оптимизировать.Но в Unity большая часть тормозов и лагов НЕ из-за кода, отвечающего за логику.
День добрый, я увидел вопросы в вашем комментарии
Как и любой другой кросс-платформенный движок?
Да, на сегодняшний день любой движок позволяет собрать игру под любые платформы. Но собрать не всегда означает, что она будет работать вменяемо. Я не уверен, удалось ли все донести мысль правильно, но основная месть была в том, что:
1. Это делается в один клик без дополнительных действий (не нужны СДК, другие аде и т.д. один раз скачал движок и собираешь игру под все)
2. Что важнее, что производительность под все платформы будет на высоком уровне, что очень важно для html5 проектов, особенно на мобильных устройствах (что я специально и подчеркнул). т.е. просто собрать, чаще всего, не достаточно. Нужно чтобы конечный пользователь мог в это играть с комфортом на любом среднестатистической устройстве.
Но в Unity большая часть тормозов и лагов НЕ из-за кода, отвечающего за логику.
Да, дело не в логике в 99% случаев. Думаю тут я точно не так донес мысль. Под подходами я имел ввиду не только написание логики, но и то как устроен движок и к каким подходам он в итоге "склоняет". Пара примеров:
- Defold статический движок, буферы под объекты выделяются заранее и создание/удаление объектов ничего не стоит на стороне движка (кроме логики в компонентах скрипт, которые пишет сам разработчик).
- GUI компонент дает простые инструменты разделения по слоям с простыми правилами, следуя которым накосячить с батчингом будет тяжело (даже если разработчик им не следовал, то добавить слои довольно быстро и просто)
- У ресурсов всегда есть четкий владелец, что делает менеджмент ресурсов довольно простым (загрузил объект с нужными ресурсам, выгрузил объект и ресурсы выгрузились)
и т.п.
Ну и вопросы производительности, все-же, стоит всегда поднимать для самого слабого "звена". В данном случае, я рассматриваю html5 на довольно средних, но очень распространенных мобильных телефонах. Если на них все хорошо, конечно и на других устройствах все будет отлично.
Тут отмечу, что я не говорю, что Defold лучше Юнити. Но он решает другие проблемы, которые Юнити если и решает то совершенно другими средствами, вроде отдельного project tiny, что уже и не совсем тот-же движок и требует отдельного написания игры с нуля.
По поводу кросс-платформенности.
1. Если кому нужен именно хтмл5, то дефолд отлично подходит. Многие площадки ставят лимит на размер билда. Типа "нам нужно не более 10 мб". Но юнити тетрис сбилдит в 15мб. Из-за этого сложно пробиваться с тяжелыми по размеру играми на большие хтмл5-площадки
2. Дефолд прикольно собирает. Например, ты можешь собрать андроид-приложение без андроид студио. А мак и айос приложения спокойно сбилдишь на винде. Под свитч - без сдк свитча. Вроде юнити так не может. Хотя могу ошибаться.
3. Лично у меня переключение таргета для билда в юнити - это каждый раз боль. Кликнул "хочу теперь, чтобы таргет был андроид" - ждешь минут 20, а каждый раз гадаешь - нормально ли всё будет, или вылезет непонятная ошибка переключения. Я не до конца разбираюсь, что конкретно юнити делает в этот момент. Но вероятность какой-то внутренней ошибки - велика! В дефолде нет переключения как такового. Просто нажимаешь кнопку "а теперь сделай билд под айос" - никаких видимых дополнительных процессов не происходит. Для кросс-платформенной разработки это очень удобно
Опять же - возможно, есть другие движки, которые умеют так же. Сравниваю с юнити, потому что у меня есть небольшой опыт создания именно кросс-платформенных игр.
Но в Unity большая часть тормозов и лагов НЕ из-за кода, отвечающего за логику.А из-за чего тогда?
Комментарий недоступен
Комментарий недоступен
"PS. Defold в 2021 такое себе и издателями стал окончательно восприниматься, как движок для плохих 2D-игр от команд, которые не вытянули Unity."
Откуда такая информация?
Или это типа твоё оценочное суждение, которое ни на чём конкретном не основано? Проще говоря пи**ёж?