«Один раз написал игру — она везде работает»: в чём преимущества кроссплатформенного движка Defold

Текстовая версия 332 выпуска подкаста «Как делают игры».

«Один раз написал игру — она везде работает»: в чём преимущества кроссплатформенного движка Defold
5959

«Один раз написал игру — она везде работает»: в чём преимущества кроссплатформенного движка Defold Гулев рассказал, что Defold — это кроссплатформенный игровой движок, который можно использовать даже на HTML5 и мобильных устройствах. При этом везде у него будет единая база — это значит, что «не нужно писать игру несколько раз, ты один раз её написал, она работает». Как и любой другой кросс-платформенный движок?
В Unity первые 80% разработки игры очень лёгкие, ты доволен, а вторые 80% разработки — очень сложные. В Defold вторые — не 80%, а 20%, потому что не нужно ничего сильно оптимизировать.Но в Unity большая часть тормозов и лагов НЕ из-за кода, отвечающего за логику.

19

День добрый, я увидел вопросы в вашем комментарии

Как и любой другой кросс-платформенный движок?

Да, на сегодняшний день любой движок позволяет собрать игру под любые платформы. Но собрать не всегда означает, что она будет работать вменяемо. Я не уверен, удалось ли все донести мысль правильно, но основная месть была в том, что:
1. Это делается в один клик без дополнительных действий (не нужны СДК, другие аде и т.д. один раз скачал движок и собираешь игру под все)
2. Что важнее, что производительность под все платформы будет на высоком уровне, что очень важно для html5 проектов, особенно на мобильных устройствах (что я специально и подчеркнул). т.е. просто собрать, чаще всего, не достаточно. Нужно чтобы конечный пользователь мог в это играть с комфортом на любом среднестатистической устройстве.

Но в Unity большая часть тормозов и лагов НЕ из-за кода, отвечающего за логику.

Да, дело не в логике в 99% случаев. Думаю тут я точно не так донес мысль. Под подходами я имел ввиду не только написание логики, но и то как устроен движок и к каким подходам он в итоге "склоняет". Пара примеров:
- Defold статический движок, буферы под объекты выделяются заранее и создание/удаление объектов ничего не стоит на стороне движка (кроме логики в компонентах скрипт, которые пишет сам разработчик).
- GUI компонент дает простые инструменты разделения по слоям с простыми правилами, следуя которым накосячить с батчингом будет тяжело (даже если разработчик им не следовал, то добавить слои довольно быстро и просто)
- У ресурсов всегда есть четкий владелец, что делает менеджмент ресурсов довольно простым (загрузил объект с нужными ресурсам, выгрузил объект и ресурсы выгрузились)
и т.п.

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

Тут отмечу, что я не говорю, что Defold лучше Юнити. Но он решает другие проблемы, которые Юнити если и решает то совершенно другими средствами, вроде отдельного project tiny, что уже и не совсем тот-же движок и требует отдельного написания игры с нуля.

5

По поводу кросс-платформенности.

1. Если кому нужен именно хтмл5, то дефолд отлично подходит. Многие площадки ставят лимит на размер билда. Типа "нам нужно не более 10 мб". Но юнити тетрис сбилдит в 15мб. Из-за этого сложно пробиваться с тяжелыми по размеру играми на большие хтмл5-площадки

2. Дефолд прикольно собирает. Например, ты можешь собрать андроид-приложение без андроид студио. А мак и айос приложения спокойно сбилдишь на винде. Под свитч - без сдк свитча. Вроде юнити так не может. Хотя могу ошибаться.

3. Лично у меня переключение таргета для билда в юнити - это каждый раз боль. Кликнул "хочу теперь, чтобы таргет был андроид" - ждешь минут 20, а каждый раз гадаешь - нормально ли всё будет, или вылезет непонятная ошибка переключения. Я не до конца разбираюсь, что конкретно юнити делает в этот момент. Но вероятность какой-то внутренней ошибки - велика! В дефолде нет переключения как такового. Просто нажимаешь кнопку "а теперь сделай билд под айос" - никаких видимых дополнительных процессов не происходит. Для кросс-платформенной разработки это очень удобно

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

5

Но в Unity большая часть тормозов и лагов НЕ из-за кода, отвечающего за логику.А из-за чего тогда?