«Powered by Unity» — такую табличку при запуске игры видели, я думаю, большинство людей, хотя бы изредка заходящих в игры. И это не удивительно — на данный момент движок позволяет писать игры под 25 платформ: от Windows, Linux и macOS, мобильных платформ и консолей до различных VR и Smart TV:
История появления — Unity 3D 1
Первая версия была создана в июне 2005 года тремя людьми: Дэвидом Хелгасоном, Джошимом Анте и Николасом Френсисом. Их целью было создание доступного любительского движка с удобным графическим интерфейсом, и первая версия движка имела схожий с Final Cut пользовательский интерфейс, работающий по принципу drag-and-drop (то есть перетягивание элементов между подменю программы). Изначально Unity работал только под macOS, однако разработчики отлично понимали, что доля яблочной ОС на рынке невелика, а уж создателей игр на ней вообще мало. Поэтому первое глобальное добавление, появившееся в августе 2005 в версии 1.1 — это возможность сборки игр под Windows и поддержка плагинов C/C++. Однако на тот момент полноценным игровым движком Unity назвать было трудно — он не поддерживал множество графических эффектов и подходил разве что для создания качественных анимаций. Разработчики исправили это недоразумение в версии 1.2 от декабря 2005 года — добавили эффекты постобработки, рэгдолл, тени, встроенный скрипт управления персонажем, расширили возможности редактора скриптов. После этого движком стали интересоваться инди-разработчики — поэтому выросло количество ошибок со старыми видеокартами и системных проблем с драйверами, которые создатели движка фиксили еще год. Последняя версия — 1.6.2 — вышла в мае 2007: да, до CryEngine 2 того же года она не дотягивала, однако создавать простые игры на Unity уже тогда было удобно, да и основные ошибки уже были исправлены. Графический интерфейс и игры на Unity 1 выглядели так:
Unity 3D 2 и Unity iPhone
В октябре 2007 команда разработчиков выпустила вторую версию движка. Основные изменения — добавление полноценной среды разработки под Windows (в версии 2.5, март 2008) , а так же улучшенный веб-плеер. Так как macOS использует API OpenGL, а Windows — в основном DirectX, разработчики добавили поддержку последнего в версию для Windows — по их словам, это привело к 30% увеличению скорости работы. Так же была добавлена поддержка веб-стриминга, мягких теней реального времени, Terrain Engine (часть движка, которая отвечает за отрисовку земли), а так же полностью переработали GUI (графический интерфейс пользователя). В Unity 2.6 (октябрь 2009) Indie-версия движка стала бесплатной и появилась версия для Wii.
Движок изначально был нацелен на macOS, и поэтому неудивительно, что с выходом iPhone движок оптимизировали и для него. Он развивался самостоятельно на протяжении 2 лет: с октября 2008 до апреля 2010, после чего был объединен с Unity 3D 3. За два года вышло 8 версий — добавили поддержку .NET 2.1, возможность работы с сетью и поддержку iPad. Движок использовал API OpenGL ES до версии 2.0. Одной из лучших игр на Unity iPhone можно считать шутер Shadowgun — он демонстрировал действительно высокодетализированную картинку и множество красивых эффектов:
Unity 3D 3
Третья версия вышла в сентябре 2010. Изменений много — теперь все элементы редактора можно менять местами как удобно, улучшили карты освещения, добавили: возможность отложенного рендеринга, Umbra occlusion culling (отрисовка только тех объектов, которые видны на экране), низкоуровневую отладку и FMOD аудио фильтры (возможность проигрывать разные аудиоформаты на разных платформах без конвертации). В это же время компания EA заинтересовалась движком и подписала с Unity Technologies контракт о многолетнем сотрудничестве, а количество зарегистрированных разработчиков превысило 200 000.
В декабре 2011 вышла первая версия Unity 3.5. Основные нововведения — возможность работы с Adobe Flash и публикация игр в формате .swf. Так же добавили новую систему частиц (которая теперь умеет взаимодействовать с тенями и светом), поддержку HDR (расширенного динамического диапазона), LOD (Levels Of Detail — возможность отрисовки далеких объектов с худшей детализацией для экономии ресурсов), а так же мультипоточный рендеринг (использование возможностей многоядерных процессоров). Окно редактора Unity 3.5 с запущенной тестовой игрой-демонстрацией способностей движка AngryBots:
Unity 3D 4
Новая версия вышла в ноябре 2012. Из основных изменений — движок научился работать под Linux. Так же была добавлена поддержка API DirectX 11, улучшена система анимации (добавлен скиннинг на GPU) и освещения.
Следующий глобальный релиз, Unity 4.3, вышел через год, в ноябре 2013: введена поддержка 2D-спрайтов и интегрирован физический движок Box2D — если раньше разработчикам приходилось делать «фальшивый» 2D, размещая плоские текстуры на плоскости в пространстве, то теперь есть возможность работать не с пространством, а только с плоскостью. Так же создатели Unity сделали жизнь разработчикам мобильных игр проще — теперь есть возможность собирать игры для iOS в версии движка для Windows. Одной из самых красивых игр на Unity 4 является пошаговая стратегия Endless Space:
Unity 3D 5
Самая новая версия движка, развивается с марта 2014 и по сей день. Количество зарегистрированных разработчиков превышает 3 миллиона — в основном потому, что Indie-версия движка бесплатна. Для тех, кому нужны дополнительные возможности, есть версия Plus и Pro (35 и 120 долларов в месяц), а так же есть возможность собрать редактор самому и договориться с разработчиками о цене.
В Unity 5 добавили и добавляют достаточно много, это пожалуй, крупнейшей релиз за все время существования Unity:
- Новые инструменты графического интерфейса отдельно для 3D и 2D игр.
- Полноценный звуковой редактор (можно в реальном времени объединять различные звуки, добавлять эффекты, связывать их с событиями в игре).
- Поддержка WebGL — игры работают напрямую в браузере без установки веб-плеера.
- Глобальное освещение в реальном времени для консолей нового поколения, ПК и мобильных платформ.
- Отражение света в реальном времени на основе Reflection Probes.
- Физически корректные материалы (к примеру кусок дерева теперь плавает в воде сам, без дополнительных скриптов).
- Новые возможности 2D физики: точечные силы притягивания и отталкивания; тангенциальные силы (силы, направленные по касательной к поверхности объекта); силы, направленные вдоль любых осей; одностороннее столкновение.
- Отслеживание загрузки процессора, видеокарты и памяти на временной шкале в режиме реального времени.
- Добавление полноценного 64х-битного редактора.
- Интеграция Terrain Speedtree.
- Добавление новых API для 2D физики и редактора анимации в Box2D, обновление 3D физики до nVidia PhysX3.
- Просмотр сцен в HDR-режиме.
- Настройки для рендера сцены с помощью заполняющего (Ambient) света.
- Улучшена работа LOD (теперь нет падения производительности для непропорционально скейлированной геометрии).
- Новые формы для препятствий Nav Mesh и сжатые текстуры для Cubemaps.
- Поддержка джойстика для Windows Store.
- Внутриигровая реклама без сторонних плагинов (к сожалению — трудновырезаемая, так как зашита в саму игру в виде текстур и показывается даже без наличия интернета).
- Повторяющаяся анимация может передвигать персонажа.
- Новые инструменты: обновленный MonoDevelop, одновременное редактирование нескольких сцен, инструменты для 2D, автоматическое тестирование.
- Оптимизация графики, включая новое ядро OpenGL, экспериментальная поддержка Metal в OS X и обновленная система частиц.
- Улучшенная поддержка WebGL и iOS 9.
- Поддержка интегрированных внутриигровых покупок.
- Добавлена экспериментальная поддержка DirectX 12.
Игр на Unity 5 вышло много: это красивейший «симулятор леса» The Forest:
Приключенческая игра Firewatch:
И даже всем известный Pokemon Go тоже работает на Unity — количество проектов переваливает за сотню.
Будущее движка
На данный момент это один из самых быстроразвивающихся движков, разработчики которого постоянно улучшают его и внедряют новые функции. О следующем глобальном релизе говорить еще рано, а вот о следующем минорном апдейте — 5.6 — уже известно много (он сейчас в бета-версии): поддержка 4К 360 градусов видео, API Metal в редакторе под macOS, а так же множество улучшений по работе с 2D. С учетом того, что в лицензия на движок стоит очень дешево (до 120 долларов в месяц с человека — к примеру, лицензия id Tech на одну игру продавалась за 250 000 долларов) — количество инди-игр на нем огромно и будет постоянно расти, а значит нас ожидает множество качественных игр.