4 преимущества Unity3D, а также полезный инструмент для ускорения процесса разработки приложений

    Мы продолжаем серию интервью с нашими специалистами. В этот раз на вопросы отвечал Андрей Рылач – Senior Unity3D-разработчик XIMAD, Inc. Андрей рассказал о преимуществах Unity и раскрыл способ ускорения процесса разработки мобильных приложений.



    Ты работаешь разработчиком игр. Расскажи, какие игровые движки наиболее популярны сегодня?

    А.Р.: Все зависит от того, для каких целей выбирать игровой движок. Наиболее популярными движками для разработки мобильных игр сегодня являются Unity3D, UE4, Marmalade и Cocos2D. У каждого из них есть свои преимущества. Но поскольку мы фокусируемся в основном на разработке кроссплатформенных игр, то на первом месте, до недавних пор, находился Unity, потому что он дает возможность создания игры на различные платформы с минимальными временными затратами. Сейчас для Unity появился реальный конкурент в лице UE4.

    Как произошло твое знакомство с Unity?

    А.Р.: В свою бытность программировал на C# и пришел в компанию, где была вакансия game-разработчика. Так и познакомился с Unity, работать с которым оказалось очень легко.

    Для разработки каких игр используется Unity чаще всего?

    А.Р.: Unity можно использовать для реализации как крупных AAA проектов, так и для небольших 2D игр под мобильные платформы. Поддержка 2D в Unity появилась относительно недавно, до этого приходилось использовать различные плагины (Toolkit 2D, например). Последние же версии игрового движка позволяют комфортно создавать игры для широкой палитры различных устройств. Благодаря ему мы создаем кроссплатформенные мобильные игры с хорошей графикой, но в то же время не выставляющие жестких требований к мобильным устройствам.

    Можешь выделить конкурентные преимущества Unity перед другими движками?

    А.Р.: Первое преимущество, на мой взгляд – сам язык C#. Данный язык высокоуровневый и позволяет программисту легко войти в разработку игры. Это важный момент, потому что в отличие от других движков, где используется язык C++, в C# есть много элементов и приемов, которые уже реализованы, и программисту нужно только воспользоваться ими.

    Второе преимущество – кроссплатформенность, т.е. один и тот же код, написанный на движке Unity, с минимальными изменениями может быть перенесен на различные платформы (PC, Mac, Android, iOS, Web, игровые консоли). Это огромный плюс, который сокращает время на разработку игры в несколько раз.

    Третье преимущество — хорошее Community. Это означает, что у различных функций движка есть четкое описание с примерами на сайте разработчика, обратиться к которому можно в любой момент. Если что-то все же осталось непонятным, служба поддержки обязательно ответит на возникший вопрос.

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

    Плюсы Unity теперь известны, а существуют ли недостатки?

    А.Р.: Пожалуй, единственным минусом является стоимость Pro-версии. Для рядового или начинающего фрилансера 4500$ за лицензию (Pro-лицензия Unity + iOS Pro + Android Pro) для того, чтобы можно было воспользоваться всеми «плюшками» Pro-версии и публиковаться в iOS- и Android-маркетах, довольно дорого. Но недавно на GDC в Сан-Франциско был релиз Unity 5, который является совершенно бесплатным без каких-либо отчислений с полученного дохода. В версии Personal Edition недоступны только дополнительные сервисы, такие как Unity Analytics Pro, Unity Cloud Build Pro и некоторые другие. Данная версия больше всего подойдет начинающим разработчикам и некрупным компаниям. Если все-таки есть необходимость покупки Pro-версии, то Unity предлагает ее за 75 $ в месяц.

    Присутствуют ли какие-нибудь нюансы работы с Unity?

    А.Р.: Нюансы есть при работе на любом игровом движке, как и в любом ином деле. Можно привести типичные, на мой взгляд, ошибки начинающих Unity разработчиков, которые допускал я и, которые допускали знакомые мне новички. Первая – это использование небольшого количества скриптов, отчего код одного скрипта разрастается до нечитабельных размеров. Вторая – использование большого количества флагов вместо использования системы событий и колбэков. Третья – отсутствие оптимизации текстур и количества материалов на игровой сцене. В целом, у Unity имеется очень хороший Community, который позволяет очень быстро освоиться в игровом движке.

    Ты упомянул, что Unity помогает сократить время разработки игры или приложения в несколько раз. Есть ли какие-то наработки, которые позволяют упростить и ускорить процесс создания игры?

    А.Р.: Да, у нас имеется Multiplatform Solutions Framework (MSF) — инструмент, который упрощает многие аспекты создания игры в плане хранения файлов на сервере, получения файлов с сервера, хранения профиля игрока, статистики, интеграции с социальными сетями и пр. Функционал реализован на стороне сервера, а для Unity разработчика написан плагин, который можно использовать в любом проекте, что является значительным плюсом.

    Расскажи подробнее о Multiplatform Solutions Framework.

    А.Р.: В первую очередь MSF помогает использовать один и тот же профиль игрока на различных устройствах. В кроссплатформенную игру пользователь может играть на Android, на iOS, в Web и его прогресс сохранится везде: профиль будет единым для всех платформ. Это первое.

    Второе — это хранение и получение файлов. Часто игра требует хранения какого-то контента на сервере: если игра клиент-серверная или у игры есть настраиваемая конфигурация (например, возможность менять уровни после выпуска игры), значит, нужен механизм обновления конфигурации для игры. И MSF позволяет делать это путем хранения файлов и предоставления простого API к получению данных файлов: файлы можно закачать на сервер со стороны редактора, а на стороне клиента реализованный функционал работы с MSF позволит получить обновленные файлы и изменить игровой процесс.

    И третье – уже реализованный на стороне MSF-сервера функционал по интеграции с социальными сетями. Например, приглашение друзей в игру, отправка подарков, начисление бонусов игрокам и push notification.

    Какие преимущества использование Multiplatform Solutions Framework дает компании, разработчикам и игрокам?

    А.Р.: Самым главным преимуществом является сокращение сроков выполнения проектов. MSF – единый понятный всем сервер, который используется в различных играх, и нет необходимости писать его для каждой игры. Мы просто адаптируем MSF для каждого проекта.

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

    Кроме того, в MSF имеется и аналитический модуль, помогающий нам лучше узнать нашу целевую аудиторию:
    • какие покупки совершают игроки
    • как долго они играют
    • какие уровни для пользователей являются наиболее сложными
    • когда игроки покидают игру и пр.

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

    Если у Вас есть вопросы – задавайте. С радостью ответим на них!
    XIM & XIMAD
    Компания
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 26

      0
      >Данный язык высокоуровневый и позволяет программисту легко войти в разработку игры. Это важный момент, потому что в отличие от других движков, где используется язык C++

      Зачем же C++ так обижать
        +3
        К тому же в определенной доле «других» движков используется Lua
          –1
          <irony>Кто сказал «высокоуровневый ассемблер»?</irony>
          +1
          >Первое преимущество, на мой взгляд – сам язык C#.
          И это же его главный недостаток. Ибо то там, то тут лезут Attempt to JIT-compile на iOS устройствах. И невозможность никакого метапрограммирования из-за отсутствия JIT на том же iOS, как и средств статического (шаблонного) метапрограммирования в языке C#. В результате получается много boilerplate кода. Еще можно вспомнить mono какой-то бородатой версии с кучей багов.

          Почему-то ни слова не сказано о том, как долго спаунятся префабы. Просто неприемлемо долго.
            0
            >>Еще можно вспомнить mono какой-то бородатой версии с кучей багов.
            Собственно это и есть причина вышеописанных проблем на ios.
              0
              Невозможность метапрограммирования — проблема не компилятора, а сочетания языка и ОС.
                0
                Не заметил, а можно узнать, что именно вы бы хотели достичь метапрограммированием?
                  –1
                  Хотел бы уменьшить бойлерплейт. Как минимум одну очень интересную фишку на моем текущем проекте (как и на других, в общем-то) невозможно реализовать без МП. Точнее можно, но придется кодить «обвязки» больше, чем там самого полезного кода. Короче говоря, нецелесообразно.
            +3
            Понятно что всё интервью — ради рекламы Multiplatform Solutions Framework. Продукт заинтересовал — как и другой (AUTOMATED QA SYSTEM) увиденный на вашем сайте. Но не нашел цены — ни в статье, ни на сайте. Информации минимум, посмотреть как интегрируется — тоже нельзя. Хоть бы доки опубликовали.
              –1
              Спасибо за Ваш комментарий. Напишите нам на contact@ximxim.com и мы с радостью ответим на все Ваши вопросы.
                +1
                Ответьте сюда, пожалуйста. Это многим интересно!
                  0
                  Добрый день. Дело в том, что Multiplatform Solutions Framework и AUTOMATED QA SYSTEM, до текущего момента — продукты для внутреннего использования компанией. Пока мы занимаемся изучением спроса и выработкой стратегии: в каком виде, за сколько и как это продавать. Если Вас заинтересовал продукт — отправьте свои контактные данные (contact@ximxim.com) и позже представитель компании свяжется с Вами и обсудит условия и варианты использования данных продуктов.
                    0
                    Я вот отправил — уже почти неделя прошла — до сих пор нет ответа.
              –2
              Senior Unity3D-разработчик

              Это звучит как минимум странно. Наверное, так же странно, как среди художников звучало бы описание уровня — «Senior Photoshop». Освоил визуальный редактор? Здорово, классно!
              Но, впредь, к приставке senior, подписывайте, пожалуйста, язык программирования.
                –1
                Это ж не только визуальный редактор, а еще и целая платформа/фреймворк. Придет синьор помидор ASP и чего он там наваяет?
                  0
                  Ок, по вашей аналогии — senior visual studio разработчик — нормально? :)
                    0
                    Дык я и говорю, что аналогия некорректная. Вы вообще-то заглядывали в документацию?
                      –1
                      Про какую аналогию речь? Я говорю о том, что обычно приставка senior/middle/junior в IT сфере идёт в сочетании с языком программирования. Не корретно ставить её рядом со средой разработки.
                  0
                  Юнити является достаточно широкой в плане возможностей и объема материала платформой, достаточно объемная документация тому доказательство.
                  Это вполне позволяет указывать junior/middle/senior unity3d developer. Если вам так удобно, то можно Senior C# Unity3d Developer (хотя C#, имхо, априори в серьёзной разработке под юнити).

                  З.Ы. А вообще, холиварщина обычная. Не принципиально
                  –1
                  >Пожалуй, единственным минусом является стоимость Pro-версии
                  А как же размеры выходных файлов? Как озвучил выше автор время спавна префабов? Не внятный monodevelop(конечна при желании можно прикрутить visual studio)? Отсутствие на лине? И много, много другого…
                    –1
                    Каковы преимущества и недостатки Unity при сравнении с html5. В каких случаях вы рекомендуете отдать предпочтение одной или другой из этих технологий?
                      0
                      Прошу прощения, а при чем тут html5? Unity это платформа для разработки, а html5 де-факто веб-стандарт, если считать то, что включают многие в это слово сочетание, а де-юре, это язык разметки.
                        –1
                        Пожалуйста не придирайтесь. Возможно с академической точки зрения это и разные вещи, но определенное пересечение тоже есть. В частности и то и другое используют для разработки мобильных и веб приложений.
                          0
                          С такой логикой можно говорить, что мозги используются для разработки веб-приложений.
                          Эти вещи нельзя сравнивать, а если и пытаться, то адекватного вывода получить нельзя
                      –1
                      Довольно странно говорить, что единственным минусом движка является его цена. У Unity есть и другие проблемы, помимо этого (как и любого другого большого проекта). Например: использование старой версии mono, не готовый до сих пор для продакшена il2cpp (который необходим для паблиша х64 в iOS app store), использование ужасной (субъективно) mono develop (Visual Studio под Mac, например, нету). Есть и мелкие и не очень баги и проблемы с производительностью, особенно в редакторе и особенно на крупных проектах.

                      Но опять же, это ок — естественные трудности любого большого движка, и все это постепенно правится/дорабатывается. Но говорить, что цена — единственный недостаток — несколько однобоко
                        0
                        Ответьте сюда, пожалуйста. Это многим интересно!


                        Здравствуйте, меня зовут Владимир, я лид AUTOMATED QA SYSTEM.

                        Мы предлагаем пакет: экспертиза в области автоматизации + технические наработки, которые собираются в конкретное рабочее решение. В настоящий момент мы применяем его на нашем флагманском проекте Star Crusade: коллекционной карточной игре с более чем тремя сотнями карт, сложной серверной частью, клиентом и несколькими веб-сервисами. Прокомментировать систему в двух словах будет сложно, поэтому в течение трех недель я подготовлю обзор для Хабра, мы опубликуем его в формате интервью, в котором я раскрою детали AUTOMATED QA SYSTEM.

                        Какие вопросы у вас есть на данный момент, ответы на которые вы бы хотели увидеть в моем интервью? Я с удовольствием раскрою желаемые аспекты.

                        Условия и варианты использования AUTOMATED QA SYSTEM можно обсудить по электронной почте: vladimir.savelyev@ximxim.com.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое