⇡#Разработчики всех стран, объединяйтесь!
«Unity — это больше не движок, — задумчиво сообщает вашему покорному слуге Дэвид Хельгасон (David Helgason), исландец с очень живой мимикой, а заодно CEO Unity Technologies, компании, которая занимается разработкой Unity. — Unity — это больше чем движок». И, словно извиняясь, добавляет: «Ну да, мы превратили Unity в конструктор для игр. Но у нас же получилось?»
Ответить на вопрос, получилось или нет, предоставим статистике, озвученной на конференции Unite 2014 в Сиэтле, США. Итак, на 2014 год сообщество разработчиков, использующих Unity, насчитывает 639 000 человек, а из всех выпущенных за этот год мобильных игр 45% сделано именно на Unity. Дэвид приводит и какие-то совсем сумасшедшие цифры: количество установок мобильных игр на Unity перевалило за 8,7 млрд. То есть если усреднить всех людей на Земле и затем взять любого из них, на его смартфоне или планшете непременно обнаружится какой-нибудь проект на Unity, а то и не один. Похоже, получилось.
Конференции Unite, которые проходят один или два раза в год, предназначены в первую очередь для разработчиков — это отличная возможность послушать доклады создателей движка, узнать, что нового реализовано в последних версиях и что будет реализовано в ближайших обновлениях. Собственно, на конференции в Сиэтле подавляющее большинство докладов было как раз такого толка, однако они вполне могли заинтересовать не только суровых программистов, но и всех, кто хоть сколько-то близок к игровой индустрии. Дело в том, что Дэвид действительно прав: Unity — это больше не движок. То есть совсем не только движок…
Unity Technologies развивается весьма интересным образом — и Дэвид охотно делится тем, из каких соображений что делается. Приведем пример из истории. Скажем, в какой-то момент оказывается, что в Unity — по ощущениям пользователей или самих разработчиков — не хватает того или иного компонента. Допустим, движка для анимации. То есть какая-никакая анимация есть, но откровенно слабенькая. Компонент точно нужен — его в любом случае придется откуда-то взять, дальше закрывать глаза на эту проблему невозможно, иначе она станет своего рода бутылочным горлышком для развития движка.
Есть два выхода — либо переделать уже имеющийся компонент, но для этого придется хорошенько разобраться в теме и проделать немаленький объем работы, либо найти какую-нибудь маленькую компанию, которая этим занимается уже некоторое время и добилась на этом поприще успехов. И купить эту компанию, сделав ее частью Unity Technologies. Таким образом в 2011 году к американцам присоединилось трое канадцев — весь штат Mecanim, компании, которая занималась анимацией уже очень давно и в числе своих достижений могла, например, упомянуть тот факт, что именно она консультировала Ubisoft при разработке Assassin’s Creed.
Можно было бы не покупать Mecanim и просто отправлять всех разработчиков игр пользоваться их творением: «Для анимации команда Unity рекомендует Mecanim, но вы также можете воспользоваться чем-то еще». Однако наличие собственной качественной системы анимации делает движок более универсальным и уменьшает количество программ, которые пользователь должен установить, чтобы сделать наконец то, что он хотел сделать. Разработчики Mecanim сидят в Квебеке, Канада, и Дэвид в шутку жалуется: «Понимаете, они не хотят переезжать в США! Хотят оставаться со своими семьями на насиженном месте. Приходится организовывать для них новый офис». В результате появилось канадское подразделение Unity Quebec. И такие подразделения появляются регулярно — все чаще. Фраза «Вы — наш новый офис» в Unity Technologies является уже устоявшейся — этаким корпоративным мемом. В мае, например, офис Unity открылся в Москве, а всего на данный момент у Unity 18 офисов в странах Южной и Северной Америки, Европы и Азии.
Шаг за шагом Unity обрастает компонентами и становится чем-то вроде универсальной платформы для создания и продвижения игр. В марте 2014 года Unity Technologies приобрела компанию Applifier, что дало американцам сразу два важных компонента: рекламную сеть, которая теперь называется Unity Ads, и социальный сервис для размещения реплеев видеоигр Everyplay, название которого решили не трогать. Покупка существующих компаний выгодна — это возможность получить уже готовое и работающее решение. Unity Ads, для примера, за неполный 2014 год принесла разработчикам игр 20 млн долларов, а сама Unity, конечно же, тоже получила с этого немаленькую прибыль.
К несчастью для Unity Technologies, столь удачные приобретения возможны не всегда. Например, не нашлось подходящей команды, которая умела бы делать графический интерфейс для пользователя. В Unity вели переговоры с отдельными людьми, но их разработки по тем или иным причинам не подошли. Опять-таки — какой-никакой редактор GUI в Unity был. Скорее, конечно, никакой — его возможностей не хватало: пользователи требовали большего, им приходилось применять сторонние утилиты, все это надо было потом как-то интегрировать в один проект — в общем, возникала куча сложностей.
«На каком-то этапе, — говорит Дэвид, — мы тяжело вздохнули и поняли, что пришла пора еще раз все переписать. Мы уже пытались, но получалось не то и не так». Теперь же к проблеме подошли основательнее — и в результате в Unity 4.6, сейчас пребывающей на стадии открытого бета-тестирования, появился Advanced GUI, который сам Дэвид считает лучшим редактором пользовательского интерфейса из всех существующих.
Advanced GUI отличается двумя важными особенностями — гибкостью и простотой. Это нечастое сочетание: обычно есть либо то, либо другое. Если судить по тому, каким шквалом аплодисментов приехавшие на Unite 2014 разработчики игр встречали большую часть анонсированных изменений, касавшихся Advanced GUI, — обновление удалось. Собственно, опробовать его может уже каждый — Unity 4.6 beta доступна для скачивания, а исходный код Advanced GUI и вовсе открыт и доступен Open Source-сообществу.
⇡#Куда, Unity, путь держишь? Всюду!
На Unite 2014 была анонсирована и пара новых приобретений. Во-первых, в состав Untiy вошла компания Tsugi, базирующаяся в Остине, штат Техас, США. Соответственно, теперь у Unty Technologies есть офис и в Остине. Tsugi — которая теперь называется Unity Cloud Build — представляет собой весьма интересный сервис для облачной сборки приложений.
Вы указываете репозиторий, которым вы пользуетесь, задаете список платформ, для которых хотите собирать свое приложение, а дальше Tsugi самостоятельно отслеживает изменения в репорзитории и при обнаружении таковых пересобирает программу для всех указанных платформ. Во-первых, в облаке, а во-вторых, совершенно без вашего участия — вы получите по электронной почте уведомление о том, что сборка готова. Это позволяет не тратить на нее слишком много времени, что повышает скорость разработки — сборка сразу попадает ко всем заинтересованным лицам, к тому же люди сами могут тестировать, как работает то, что они изменили в программе, а не ждать, пока бильд-инженер раскачается и наконец пересоберет для них проект.
Облачная сборка особенно актуальна в случае разработки для нескольких платформ, но на данный момент Unity Cloud Build поддерживает только Android, iOS и веб-плеер Unity, а также требует наличия у пользователя лицензии Unity Pro. Обещают, что со временем список платформ расширится. Пока Cloud Build можно пользоваться бесплатно, по окончании бета-тестирования будут введены некие планы платной подписки. В Unity обещают, что для инди-разработчиков останется и бесплатная подписка, правда, с серьезным ограничением по количеству сборок за определенный период времени.
Второе недавнее приобретение — компания Playnomics, занимающаяся игровой аналитикой и статистикой. Сделать игру — только часть дела, надо еще заставить ее приносить прибыль. Pay-to-play-модель (читай: игры, которые продаются за фиксированную сумму) сдает позиции Free-to-play (читай: якобы бесплатным играм, в которых заплатить все равно придется за внутриигровой контент). И даже практически сдала: по данным Playnomics, доля Pay-to-play-игр на мобильном рынке сейчас меньше 1% — если считать по количеству скачиваний. А Free-to-play требует понимания того, что продавать и как продавать, заставляет держать руку на пульсе и следить, как аудитория игры себя ведет. А для пущей эффективности требует практически индивидуального подхода к игрокам. Собственно, этим и занимается Playnomics.
Для самих компаний, которые вливаются в состав Unity, жизнь становится, скажем так, более яркой и насыщенной. Например, на момент приобретения Playnomics использовало полторы сотни разработчиков, суммарно аналитика была встроена более чем в 400 проектов. Unity Technologies купила Playnomics, превратила ее в Unity Analytics — и число пользователей выросло на порядки. Когда основатель компании упоминает эти цифры, он принимает несколько удивленный вид — на такие масштабные изменения он явно не рассчитывал.
Зачем Playnomics понадобилась Unity? Создатели движка провели опрос среди разработчиков игр на Unity: какую аналитику вы используете? Самым распространенным ответом было: никакую. А ведь грамотное использование аналитики повышает прибыль разработчиков, соответственно, возрастает их удовлетворение от создания игр в целом и от Unity в частности. Да и сама Unity Technologies не остается внакладе: благодаря сервисам Playnomics можно показывать более точно таргетированную рекламу — а у нее выше конверсия, то есть она приносит больше денег. Когда Playnomics вошла в состав Unity, стало проще убедить разработчиков использовать аналитику: вот же она, под рукой, не надо ничего скачивать и устанавливать — у вас уже все есть.
В общем, за последний год Unity действительно превратилась в платформу по созданию, выпуску и сопровождению игр. А также в своего рода стандарт для разработчиков. Скажем, 90% проектов для Oculus Rift делается именно на Unity — просто потому, что здесь для переноса проекта в виртуальную реальность надо всего лишь добавить в сцену один компонент. То есть одно движение мышки делает из вашей игры проект для Oculus Rift.
Сотрудничество с Oculus идет полным ходом: у принадлежащей Facebook✴ компании на Unite 2014 был свой стенд, где все желающие могли погрузиться в удивительный мир виртуальной реальности с использованием второго поколения шлемов Oculus Rift — тех, которые с Full HD-дисплеями. Правда, мир пока молодой и очень зыбкий — после 5-10 минут погружения обычно начинает укачивать, и виноваты в этом не создатели Oculus, а разработчики игр и демонстраций для него. Например, виртуальную реальность нельзя делать слишком быстрой, дерганой — события в ней должны происходить с такой же скоростью, с какой они развиваются в реальном мире, а ведь игры обычно намного быстрее.
Среди партнеров Unity — также со своими стендами на Unite — значатся Google, Microsoft, Intel, NVIDIA, Samsung и много кто еще. Intel и Samsung пополнили этот список буквально на днях: на Unite 2014, во-первых, было анонсировано сотрудничество с Intel для улучшения производительности Android-приложений на Unity при запуске на чипах Intel, а во-вторых, поддержка Unity со стороны умных телевизоров Samsung Smart TV. Теперь игры, доступные во встроенном магазине Samsung, станут красочнее и, хочется верить, интереснее. Собственно, разработка для Samsung Smart TV практически ничем не отличается от разработки для мобильных устройств, разве что роль устройства ввода играет не экран, а игровой контроллер, пульт или встроенная веб-камера.
Самое удивительное на Unite — это атмосфера, в которой все происходит. Атмосфера дружбы, взаимопомощи и веселья. Евангелисты Unity и члены различных команд с удовольствием отвечали на вопросы — и засыпали вопросами сами: что нравится, что не нравится, что нужно реализовать в первую очередь и так далее. На Unite даже проходит отдельная сессия (к сожалению, ее просят никак не документировать), в рамках которой разработчики Unity Technologies рассказывает, что чаще всего просят пользователи и что для удовлетворения их нужд делают в Unity.
И честно признают, что Unity еще есть куда расти. Например, обработка ввода в движке привязана к смене кадров — новые команды система получает именно на момент начала рендеринга следующего кадра. Это негативно сказывается на отзывчивости управления. Проблема известная, в магазине Unity Asset Store кое-кто даже предложил методы ее решения, а специалисты Unity Technologies обещают в будущем решить ее своим способом, который лучше вписывается в концепцию движка. Не в самом ближайшем будущем — в Unity 4.6 и даже в 5.0 со вводом еще не разобрались, но разбираются.
А вот на 64-битные рельсы Unity переедет уже начиная с версии 5.0 — этого пользователи тоже давно ждали. Проблема с существованием двух принципиально разных систем частиц пока не решена — в ближайших релизах останется как удачная, но не слишком гибкая Shuriken, так и старая система.
С недавних пор разработчики начали больше внимания уделять исправлению ошибок. Теперь так называемые баг-фикс-релизы Unity выходят раз в две недели — чтобы пользователям не приходилось подолгу ждать исправления того или иного бага.
Также в Unity 5 существенно упрощена работа со светом: в сцене по умолчанию имеется небо — своего рода глобальный источник света, а также направленный источник — генерирующий удивительно симпатичные тени (один из докладчиков отдельно остановился на том, что «фотореалистичные» — это маркетинговый термин производителей видеокарт, а графика должна быть просто красивой). Собственно, тени и отражения в Unity 5 стали намного детальнее и живее благодаря поддержке физического рендеринга (PBR, Physicaly Based Rendering).
Среди прочих изменений в пятой редакции стоит отметить встроенную утилиту IL2CPP, конвертирующую код на JavaScript или C# в код на C практически без потери производительности, полностью обновленную систему работы со звуком, возможность импорта деревьев, созданных в SpeedTree, поддержку самой последней версии PhysX и еще тысячу маленьких улучшений.
Вот только когда именно будет готова Unity 5.0, ну хотя бы «бета», — не говорят. По крайне неофициальным данным, какой-то релиз (видимо, как раз «бета») нас ждет в начале 2015 года (по другим неофициальным данным, это будет уже как раз-таки релиз, а бета стартует ближе к концу сентября). А пока можно смело скачивать Unity 4.6 beta с новым Advanced GUI, ждать ее превращения в полностью стабильную версию и продолжать (ну или начинать) делать игры. Поверьте, это очень весело, крайне интересно и не так уж сложно.