Unity (рушій гри)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Unity
Unity logo 2014.png
Розробник(и) Unity Technologies
Стабільний випуск 5.0.1 (1 квітня 2015)
Операційна система
Доступні мови Англійська мова
Тип Ігровий рушій
Ліцензія Власницьке програмне забезпечення
Сайт unity3d.com

Commons-logo.svg Unity у Вікісховищі


Unity — багатоплатформовий інструмент для розробки дво- та тривімирних застосунків та ігор, що працює на операційних системах Windows і OS X. Створені за допомогою Unity застосування працюють під системами Windows, OS X, Android, Apple iOS, Linux[1], а також на гральних консолях Wii, PlayStation 3 і XBox 360.

Є можливість створювати інтернет-застосунки за допомогою спеціального під'єднуваного модуля для браузера Unity, а також за допомогою експериментальної реалізації в межах модуля Adobe Flash Player[2]. Застосування, створені за допомогою Unity, підтримують DirectX та OpenGL.

Технічні характеристики[ред.ред. код]

  • Сценарії на C#, JavaScript та Boo;
  • Ігровий рушій повністю пов'язаний із середовищем розробки. Це дозволяє випробовувати гру прямо в редакторі;
  • Робота з ресурсами можлива через звичайний Drag&Drop.
  • Система успадкування об'єктів;
  • Підтримка імпортування великої кількості форматів файлів;
  • Вбудований генератор ландшафтів;
  • Вбудована підтримка мережі;
  • Існує рішення для спільної розробки — Asset Server. Також можна використовувати зручний для користувача спосіб контролю версій. Наприклад, SVN або Source Gear;

Функціональні можливості[ред.ред. код]

Редактор Unity має простий Drag & Drop інтерфейс, який легко налаштовувати, що складається з різних вікон, завдяки чому можна проводити налагодження гри прямо в редакторі. Рушій підтримує три сценарних мови: C #, JavaScript (модифікація). Проект в Unity ділиться на сцени (рівні) - окремі файли, що містять свої ігрові світи зі своїм набором об'єктів, сценаріїв, і налаштувань. Сцени можуть містити в собі як, об'єкти (моделі), так і порожні ігрові об'єкти – тобто ті  які не мають моделі. Об'єкти, в свою чергу містять набори компонентів, з якими і взаємодіють скрипти. Також у них є назва (в Unity допускається наявність двох і більше об'єктів з однаковими назвами), може бути тег (мітка) і шар, на якому він повинен відображатися. Так, у будь-якого предмета на сцені обов'язково присутній компонент Transform - він зберігає в собі координати місця розташування, повороту і розмірів  по всіх трьох осях. У об'єктів з видимої геометрією також за замовчуванням присутній компонент Mesh Renderer, що робить їх  модель їх видимою.

Також Unity підтримує фізику твердих тіл і тканини, фізику типу Ragdoll (ганчіркова лялька). У редакторі є система успадкування об'єктів; дочірні об'єкти будуть повторювати всі зміни позиції, повороту і масштабу батьківського об'єкта. Скрипти в редакторі прикріплюються до об'єктів у вигляді окремих компонентів.

При імпорті текстури в рушій  можна згенерувати alpha-канал, mip-рівні, normal-map, light-map, карту відображень, проте безпосередньо на модель текстуру прикріпити не можна - буде створено матеріал, з яким буде призначений шейдер, і потім матеріал прикріпиться до моделі. Редактор Unity підтримує написання і редагування шейдерів. Крім того він містить компонент для створення анімації, анімацію також  можна створити попередньо в 3D-редакторі та імпортувати разом з моделлю, а потім розбити на файли.

Рендеринг[ред.ред. код]

Графічний рушій використовує DirectX (Windows), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS), та спеціальне власне API для Wii. Також підтримуються bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), динамічні тіні з використанням shadow maps, render-to-texture та повноекранні ефекти post-processing.[3]

Unity підтримуює файли 3ds Max, Maya, Softimage, Blender, modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks та Allegorithmic Substance. В ігровий проект Unity можна імпортувати об'єкти цих програм та робити налаштовування за допомогою графічного інтерфейсу.[4]

Для написання шейдерів використовується ShaderLab, що підтримує шейдерні програми написані на GLSL або Cg. Шейдер може включати декілька варіантів реалізації, що дозволяє Unity визначати найкращий варіант для конкретної відеокарти.[5]Unity також має вбудовану підтримку фізичного рушія Nvidia PhysX (колишнього Ageia), підтримку симуляції одягу в системі реального часу на довільній та прив'язаній полігональній сітці (починаючи з Unity 3.0), підтримку системи ray casts та шарів зіткнення.[6]

Скрипти[ред.ред. код]

Скриптова система ігрового рушія зроблена на Mono — вільний відкритий проект з реалізації .NET Framework. Програмісти можуть використовувати UnityScript (власна скриптова мова, подібна до JavaScript та ECMAScript), C# або Boo (мова програмування, подібна до Python).[7] Починаючи з версії 3.0, до Unity входить перероблена версія MonoDevelop для зневадження скриптів.[8]

Із виходом версії 5.2 предбачається вбудована можливість редагувати скрипти у середовищі Visual Studio

Asset Tracking[ред.ред. код]

В Unity включено систему контролю версій Unity Asset Server для ігрових об'єктів та скриптів. Система використовує PostgreSQL, роботу зі звуком, побудовану на основі бібліотеки FMOD (з можливістю програвати Ogg Vorbis аудіофайли), відеопрогравач із кодеком Theora, рушій для побудови ландшафтів рослинності, вбудовану систему карт освітлення (Beast), мережу для мультиплеєру (RakNet) та вбудовані навігаційні меші для пошуку шляху.[9]

Unity Asset Server[ред.ред. код]

Інструментарій для спільної розробки на базі Unity. Сутність розробки ігор — це робота в команді. Сервер ресурсів Unity це доповнення, яке додає контроль версій у функціонал Unity.

Система контролю версій[ред.ред. код]

Сервер ресурсів Unity це повнофункціональне рішення для контролю версій для всіх ігрових скриптів і ресурсів. Як і все інше у Unity, він простий у використанні.

Оптимізація для великих проектів[ред.ред. код]

Багатогігабайтні проекти з тисячами мегабайтних файлів піддаються легкому керуванню. Налаштування імпорту та інші метадані також зберігаються разом з історією їх версій. Переглядати зміни ресурсів\версій можна одразу всередині Редактора Unity. Якщо файли змінюються, їх статус негайно оновлюється. Перейменування і переміщення ресурсів не створює будь-яких перешкод для безперервного робочого процесу.

Сервер з відкритим вихідним кодом[ред.ред. код]

Сервер ресурсів Unity управляється базою даних PostgreSQL. PostgreSQL відомий своєю надійністю, цілісністю даних і легкістю адміністрування і відмінно справляється з робочим навантаженням гігантських проектів.

Mac OS X або Linux[ред.ред. код]

Сервер ресурсів доступний як для Mac OS X Installer, так і для Linux RPMs . Підтримка декількох платформ дає вам гнучкість у впровадженні Сервера ресурсів Unity у вашу існуючу IT-інфраструктуру.

Історія[ред.ред. код]

  • Червень 2005, Unity 1.0.1. Перший випуск.
  • Серпень 2005, Unity 1.1. Добавлена збірка ігор під Windows та підтримка плагінів C/C++.
  • Грудень 2005, Unity 1.2. Добавлені ефекти пост-обробки, регдол, тіні, вбудований скрипт управління персонажем, розширені можливості редактора скриптів.
  • Жовтень 2008, Unity iPhone 1.0. Unity приходить на iPhone.
  • Жовтень 2008, Unity iPhone 1.0. Початок офіційних продаж Unity iPhone.
  • Березень 2009, Unity 2.5.0. Добавлена підтримка Windows середовищем розробки, перероблений редактор скриптів.
  • Квітень 2009, Unity приходить на ринок ігор Wii
  • Жовтень 2009, Unity отримує інвестиції від Sequoia Capital в розмірі 5 500 000 доларів США.
  • Жовтень 2009, Unity 2.6.0. Indie-версія стала безкоштовною.
  • Грудень 2009, журнал Gamasutra назвав рушій Unity одним із найзначніших учасників на ринку ігрових компаній[10].
  • Березень 2010, Unity iPhone 1.6 Добавлена підтримка .NET 2.1, вбудована підтримка мережі та інші покращення.
  • Квітень 2010, Unity iPhone 1.7 Добавлена підтримка iPad.
  • Вересень 2010, Unity Technologies и Electronic Arts (EA) уклали контракт про багаторічну співпрацю[11].
  • Листопад 2012, Unity 4.0.0. Покращена система анімації (доданий скінінг на GPU), освітлення. Додані візуальні ефекти. Додана збірка ігор під Linux і Adobe Flash. DirectX 11
  • Листопад 2013, Unity 4.3. Підтримка 2D-спрайтів, інтеграція фізичного рушія Box2D, можливість збирати ігри для iOs у версії рушія для Windows .
  • Березень 2014, Unity 5. Нові шейдери та інтеграція з технологією глобального освітлення в режимі реального часу Geomerics Enlighten. Це принесе в ігри появу реалістичного освітлення та візуальних ефектів консольного рівня, а також математично точне відображення тіней. Нові інструменти WebGL дозволяють створювати в браузерах більш просунуті проекти з більш високою продуктивністю.
  • Березень 2015, Повноцінна Unity 5. (Вище перераховане) + Додавання всіх можливостей з Pro. версії в Free. а в Unity Pro. залишилось: Unity Analytics, Team License, Prioritized bug handling, Beta access, Dark Skin та інше. Мова скриптів Boo була прибрана, як і приклади коду на офіційному сайті документації.

Станом на літо 2013 року кількість зареєстрованих користувачів Unity3d виросло до 2 мільйонів користувачів[12]. Загалом це пов'язано з тим, що indie-версія рушія стала безкоштовною.


Посилання[ред.ред. код]

  1. Официальная информация о поддержке GNU/Linux на сайте Unity (англійською). 2012-08-28. Архів оригіналу за 2012-11-21. 
  2. Dean Takahashi (2011-12-21). Unity Technologies developers will be able to publish 3D games via Adobe Flash (англійською). VentureBeat. Архів оригіналу за 2012-06-09. Процитовано 2012-03-11. 
  3. Using DirectX11 in Unity 4. Unity Technologies. Архів оригіналу за 2013-08-27. Процитовано 2013-02-19. 
  4. How do I import objects from my 3D app?. Unity Technologies. Архів оригіналу за 2013-08-27. Процитовано 2013-02-19. 
  5. Shaders. Unity Technologies. Архів оригіналу за 2013-08-27. Процитовано 2013-02-19. 
  6. Physics. Unity Technologies. Архів оригіналу за 2013-08-27. Процитовано 2013-02-19. 
  7. Using Scripts. Unity Technologies. Процитовано 2013-02-19. 
  8. Getting started with Mono Develop. Unity Technologies. Архів оригіналу за 2013-08-27. Процитовано 2013-02-19. 
  9. Asset Server (Pro Only). Unity Technologies. Архів оригіналу за 2013-08-27. Процитовано 2013-02-19. 
  10. Christian Nutt. Gamasutra's Best Of 2009: Top 5 Game Companies (en). Gamasutra. Архів оригіналу за 2012-06-09. Процитовано 2012-03-11. «Unity has become a major player in the market as of 2009, and there's more to come» 
  11. Unity Technologies Wins GigaOM’s Mobilize LaunchPad 2010 (en). Unity Technologies. 2010-10-01. Архів оригіналу за 2012-06-09. Процитовано 2012-03-11. «We’re excited about and proud of our long term relationship with Electronic Arts.» 
  12. Another million Unity developers in the house

Посилання[ред.ред. код]