Почему Defold?

— А Defold точно убийца Unity?

Обычно, к этому сводятся все разговоры и вопросы о движке Defold. Но прочитав форум (где часто пишут разработчики движка), становится ясно, что такой цели нет.  Да и во всех анонсах говорится не о желании «откусить кусок» у Unity, а о попытке занять свободную нишу. А некоторые сравнения с Unity делаются лишь для удобства из-за его популярности.

facebook-share

Компания King известна своими социальными играми. И логично предположить, что технологии, которые она разрабатывает будут заточены на решение проблем, в первую очередь, в этой области.

— Так это просто match-3 движок? 

Нет. Компания не стоит на месте. Постоянно развивается. Осваивает новые жанры и ниши. Для того что бы убедиться в этом, достаточно посмотреть новости связанные с  King.com.

— Так стоит ли мне взять Defold вместо Unity?

Я не знаю. Никто не может принять решение за вас. Все зависит от вашего проекта и ваших целей. Поэтому я стараюсь рассказывать о плюсах и минусах движка, чтобы вы могли все взвесить и решить.

В одном из разговоров родилась следующая мысль: «довольный пользователь Unity перешедший на Defold — это, скорее всего, недовольный пользователь Defold». И речь не о том, что Defold хуже, а лишь о том, что у вас не будет достаточно мотивации чтобы учить новое. Поэтому просто подумайте, все ли вас устраивает в вашем текущем инструменте? Если да, то смело закрывайте страницу.  А мы рассмотрим плюсы и минусы.

Производительность.2016-08-30_16-27-10

Задача движка работать бысро на максимальном количестве устройств, кроме этого, еще и работа в web. Этим обусловлены многие решения ( о некоторых решениях в архитектуре движка можно прочитать тут).

Одним из таких решений является свой runtime в spine. Это создает следующие ограничения:

  • нет возможности анимировать вертексы (анимация мешей) без привязки к костям. Обратите внимание: анимация мешей есть и поддерживается! Просто к каждому вертексу необходимо привязать кость и анимировать ее, а не просто двигать вершины в spine, переключаясь с кадра на кадр. Аниматор, с которым я работал, признается, что это правильный подход, хотя и не всегда удобный. Уже общался об этом с разработчиками и они думают о решении.
  • на данный момент поддерживаются фичи spine до версии 3.0. Поддержка всех фич spine последней версии имеет высокий приоритет и будет реализована.

Отдельно отмечу, что HTML5 билд поддерживает только WebGL рендер. Поэтому движок, скорее всего, не подойдет для портальных игр. По крайне мере до тех пор, пока спонсоры требуют поддержки canvas.

Кроссплатформенность.

И это не пустое слово. Если вы написали сохранение в файл, то не важно собирается ли html5, ios или linux билд, все просто сохраняется и загружается. Это справедливо и для всех интегрированных библиотек:

Так же есть встроенная аналитика:

  • базовая аналитика от King, которая предоставляется бесплатно, но имеет только базовый функционал (который обещают расширить со временем — обсуждение на форуме);
  • facebook аналитика.

У всех библиотек общий API не зависимо от платформы, поэтому один раз написаный код просто работает везде.

Но здесь есть и минус — такой подход не позволяет интегрировать новые сервисы быстро. Поэтому уже сейчас разрабатывается возможность подключения написанных на c++ библиотек, что позволит подключать интересующие сервисы самостоятельно.

Я надеюсь, что подход разработчиков Defold к кроссплатформенности станет идеологическим для всех разработчиков сторонних библиотек.

Маленькая команда

Defold разрабатывает маленькая команда. Это и плюс и минус одновременно. С одной стороны это позволяет удерживать вектор развития движка в нужном направлении, с другой — ограничивает невозможностью успевать за огромным количеством запросов от сообщества. На прошлой неделе разработчики движка поднимали этот вопрос на форуме, очень советую к прочтению. Приоритеты задач такие:

  • самый высокий приоритет имеют баги и новые фичи, для которых нет обходных путей, и которые являются блокерами для команд, разрабатывающих игры;
  • баги и фичи, у которых есть обходные пути, считаются как «nice to have» и имеют более низкий приоритет;
  • так же есть отдельный список небольших задач, которые делаются по мере того, как появляется свободное время между основными задачами.

Нужно понимать, что некоторые вещи могут быть не реализованы, к примеру, расширенный функционал физики. Несмотря на то, что в движке используется модифицированный box2d, «наружу» вынесено не так много: есть только базовые функции и нет джоинтов (обсуждение на форуме и небольшая демка с физикой).

Еще одним минусом маленькой команды является невозможность дать точный roadmap (хотя этим грешат и большие разработчики). На данный момент есть только обобщенный список: http://www.defold.com/roadmap/

Тем не менее разработчики движка стараются дать максимум инструментов пользователю. Одним из таких инструментов будет Editor 2.0 — это новый редактор, для которого можно будет писать свои расширения. Для текущего редактора вносятся только исправления критических багов, а все  предложения по удобству и доработке редактора стараются учесть во второй версии.

Размер билда

2016-08-30_16-18-39

Есть вот такая таблица из двух страниц, которую я держу в актуальном состоянии. На первой странице изменение размера билда от версии к версии, на второй сравнение актуальной версии с билдом Unity. И да, я понимаю, что у Defold нет многого из того, что есть в Unity. Но как я выше и писал — это делается только для удобства и большей наглядности. Ведь если возможностей Defold вам хватает, то сразу будет виден объем ненужных вещей, которые попадают в билд.

Выводы

Движок Defold имеет свои плюсы и минусы. И очень важно с ними разобраться, прежде чем стартовать новый проект.

На данный момент Defold отлично подходит для 2D игр. 3D инструменты имеют высокий приоритет и находятся в roadmap, но в текущей версии поддерживаются плохо.

По платформам это в первую очередь мобильные и браузерные/социальные игры, а так же win/mac/linux игры (с появлением Си плагинов, можно будет встроить SteamSDK и др.)

Коротко о всех возможностях можно прочесть тут: http://www.defold.com/technology/

Группа русского комьюнити:
https://vk.com/defoldengine


Если у вас есть вопросы, спрашиваете в комментариях. Буду рад ответить.

  • IriySoft

    Правильно ли я понимаю, что встроить в Defold проект поддержку API мобильной рекламы (напрмер, AdMob) на данный момент не получится?

    • Да.
      В данный конкретный момент есть только реклама через webview : https://forum.defold.com/t/defads-showing-ads-on-mobile-using-a-webview/2352?u=agulev
      В течении месяца-двух выйдет поддержка плагинов (у этой задачи очень высокий приоритет) тогда можно будет встроить рекламу.
      Поэтому если ваш проект больше 2х месяцев, можно смело начинать его разработку.

    • Alexey Izvalov

      Сейчас ведём переговоры относительно встраивания рекламы в Defold-игры с помощью FGL Enhance

  • Victor Nedilko

    Спасибо за статью. Поддержка сторонних библиотек это как раз то чего не хватает. Банально сделал игру, нужно монетизировать а без рекламы сейчас не получится. Даже на первое время хватило бы heyzap)

    • Прежде чем монетизировать, игру нужно написать ) Собрать аудиторию )
      Поэтому, я думаю, что уже можно пробовать )

  • Sovestb

    Производительность. Я тестирую на своем старом компе Core2Duo с 1G памяти. В браузере сравнимые демки на html5 как то поживее будут. Особенно в процессе загрузки, defold загружая просто намертво вешает браузер. Примерно так же отвечали ранние плагины unity.

    • а можно пример, что с чем сравниваете? И чуть подробнее куда смотреть?
      Просто впервые слышу о проблеме, хотелось бы разобраться.