Искать на сайте Unity

Охваченные темы
Поделиться

Наступает конец 2014, и мы подумали, что было бы хорошо, чтобы наши пользователи знали о прогрессе, которого мы достигли в добавлении поддержки 64-битной iOS, а также получили обновленную информацию о нашей стратегии на счёт сборки под Web.

О 64-битных приложениях на iOS

Почти месяц назад мы объявили о предстоящей поддержке 64-битных приложений на iOS в Unity 5. Недавно Apple сделала еще один анонс, связанный с 64-битными приложениями на iOS:

«Как было объявлено в октябре, начиная с 1 февраля 2015 новые приложения для iOS, представленные в App Store, должны включать поддержку 64-бит и быть разработаны с iOS 8 SDK. Начиная с 1 июня 2015 обновления приложений также должны соответствовать этим требованиям. Чтобы включить поддержку 64-бит в вашем проекте, мы рекомендуем использовать установку сборки по умолчанию в Xcode "Standard architectures", чтобы получить один файл с 32-битным и 64-битным кодом».

Итак, что же это означает для вас и как мы собираемся реализовать это? Ответы на эти вопросы ниже.

Обновление ваших проектов сейчас

Мы будем поддерживать iOS 64-бит с помощью IL2CPP в Unity 4.6.x и Unity 5. Если вы планируете опубликовать новый проект или выпустить обновление для существующего проекта в Apple iOS App Store, то ваш проект должен быть повышен до Unity 4.6.x или Unity 5.0. Обновите ваш проект до Unity 4.6.1, если он уже создан на Unity 4.x / 3.x – в этом случае вам нужно выпустить обновление, или если он находится в поздней стадии разработки. Это позволит вам быстро обновить игру до 64-разрядного приложения iOS, как только станет Unity станет поддерживать 64-битную iOS.

Тем не менее, если у вас есть лицензия Unity 5.x Pro и игра на ранних стадиях разработки, или вы планируете использовать некоторые функции Unity 5, обновляйте Unity 5. Те, кто уже работает над проектами на Unity 5, могут продолжить делать это без особого беспокойства: поддержка 64-разрядной iOS и рендеринга Metal будут активно поддерживается и совершенствоваться в Unity 5.x.

iOS 64-бит для Unity 5

Мы сделали Unity 5 на основе альфа-сборки и отправили её в нашу закрытую группу альфа-группы тестирования и специальные фокус-группы, чтобы получить первые отзывы. Мы добились хорошего прогресса и имеем множество игровых проектов, работающих в 64-разрядных iOS 8. Мы также сотрудничаем с разработчиками плагина Prime31 для модернизации наиболее популярных плагинов для IL2CPP и 64-бит. После Нового года мы планируем объединить эти изменения в нашем главной бета-версии Unity 5. Таким образом, все, кто предварительно заказал Unity 5, и подписчики получат доступ к этой новой функции в первой половине января 2015.

iOS 64-бит для Unity 4.6

На Unity 4.x созданы тысячи игровых проектов, которые находятся в заключительных стадиях производства, поэтому мы решили добавить поддержку 64-разрядной iOS в Unity 4.6.x.

Только сегодня мы выпустили первую бета-версию сборки Unity 4.6.1 с поддержкой 64-разрядной iOS в нашей закрытой группе бета-тестирования. Мы ожидаем официальное обновление Unity 4.6 с поддержкой 64-разрядной iOS к концу января 2015 года.

Рендеринг Metal для Unity 4.6.x

Изначально мы планировали добавить поддержку iOS Metal только в Unity 5, но узнав ваши проблемы и получив фидбек, мы понимаем, что необходимо добавить его в Unity 4.x. Мы уже начали портировать поддержку рендеринга Metal для Unity 4.6.x и имеем альфа-сборку для закрытой группы тестирования. Мы планируем выпустить бета-версии рендеринга Metal в Unity 4.6.x в январе 2015 года и отправим официальную версию Unity независимо от поддержки 64-разрядной iOS.

Что под капотом?

Большинство из вас знает, что мы в течение длительного времени разрабатываем IL2CPP. Это позволяет нам дать вам большую производительность скриптов (см. наш блог о производительности на WebGL здесь) и также позволит нам быть более гибкими и эффективными в поддержке различных платформ, включая 64-разрядную iOS. Для ознакомления с технологией посетите наш предыдущий пост в блоге «Будущее скриптов в Unity».

В Unity 4.6.x и Unity 5 мы будем поддерживать два движка скриптов: Mono и IL2CPP. Появился переключатель движка скриптов в «Player settings» для платформы iOS:

image00

Движок скриптов может быть Mono или IL2CPP. Если выбираете Mono, то будет построено 32-битное ARM v7 архитектуры приложение. До 1 июня 2015 года движок скриптов Mono можно использовать для публикации обновлений 32-разрядных существующих приложений в iOS App Store или для внутреннего тестирования. Если выбран IL2CPP, то переключатель «Architecture» позволит вам собрать 32-разрядное, 64-разрядное или универсальное - предпочтительный вариант, если вы ориентируетесь как на высоко- так и низко-производительные устройства.

Наша цель, чтобы скрипты работали через IL2CPP на iOS также, как через Mono, так что выбрав IL2CPP в качестве движка скриптов, вы не заметите никаких изменений. Однако есть некоторые отличия:

  • Требуется больше времени для сборки, потому что существуют дополнительные шаги для преобразования IL байт-кода в C++ и компиляции в библиотеки движка Unity.
  • Большой размер приложений для iOS, потому что мы должны хранить код для 32-разрядной и 64-разрядной iOS в универсальном приложении, так что игры могут работать как на старых 32-разрядных устройствах, так и на новых 64-разрядных.
  • IL2CPP всегда включена очистка кода, чтобы уменьшить размер; это может означать, что типы, которые не в компиляции, возможно, необходимо будет добавить вручную.

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

Разработка веб-игр на Unity

В Unity 5 мы введем захватывающе новую платформу - WebGL — и вы уже видели отличную игру, выпущенную на ней несколько месяцев назад. Мы считаем, что WebGL может изменить лицо веб-игр: разработчики игр получат доступ к миллиардам игроков без необходимости установки дополнительного плагина. Однако сейчас производители браузеров предлагают различные уровни поддержки WebGL в своих браузерах, поэтому в 2015 году разработчики игр могут использовать смешанные решения для того, чтобы быть самыми успешными. Недавно команда Chrome объявила об обновлении планов на NPAPI, цитируем ниже:

В апреле 2015 поддержка NPAPI будет отключена по умолчанию в Chrome, и мы будем отменять публикацию расширений, требующих NPAPI плагины от Chrome Web Store. Хотя производители плагинов работают над переходом к альтернативным технологиям, небольшое количество пользователей по-прежнему полагаются на плагины, которые ещё не завершили переход. Мы обеспечим переопределение для продвинутых пользователей (с помощью chrome://flags/#enable-npapi) и предприятий (с помощью Enterprise Policy) для временного включения NPAPI, пока они ждут перехода для критически важных плагинов.

В сентябре 2015 года мы удалим переопределение, и поддержка NPAPI будет навсегда удалена из Chrome. Установленные расширения, которые требуют NPAPI плагины, больше не будет иметь возможности загружать их.

Хорошей новостью является то, что команды браузеров Microsoft IE, Mozilla Firefox и Apple Safari не объявили каких-либо планов отказа поддержки плагинов.

Мы будем поддерживать Unity WebPlayer в Unity 5, по крайней мере в течении 2015 года, пока это полезно для наших разработчиков.

Итак, что вы должны сделать, чтобы убедиться, что вы по-прежнему достигаете наибольшее число пользователей? В настоящее время лучший способ добраться до большой аудитории игроков - выпускать игру, используя Unity 5 WebPlayer и Unity 5 WebGL. В настоящее время WebGL игры более ограничены в плане функциональности и производительности, так что если вы начинаете новый проект, рекомендуется выбрать Unity 5 WebGL в качестве целевой платформы и портировать вашу игру в Unity 5 WebPlayer позже, добавив дополнительную функциональность и используя больше возможностей Unity WebPlayer. Таким образом, геймеры смогут играть с WebGL на Mozilla Firefox, Google Chrome, Apple Safari 8.x или играть с Unity WebPlayer на Microsoft Internet Explorer или Apple Safari 7.x.

23 декабря 2014 г. через Технологии | 7 мин. читать
Охваченные темы
Партнеры
Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.