Unreal Engine: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
м виправлення дат
Рядок 19:
Написаний мовою [[C++]], рушій дозволяє створювати ігри для більшості операційних систем і платформ: [[Microsoft Windows]], [[Linux]], [[Mac OS]] і [[Mac OS X]], консолей [[Xbox]], [[Xbox 360]], [[PlayStation 2]], [[PlayStation Portable]], [[PlayStation 3]], [[Wii]], [[Dreamcast]] і [[Nintendo GameCube]]. У грудні [[2009]] [[Марк Рейн]] продемонстрував роботу рушія [[Unreal Engine 3]] на [[iPod Touch]] і [[iPhone 3GS]]<ref>{{cite web|url=http://www.anandtech.com/gadgets/showdoc.aspx?i=3695|title=Epic Demonstrates Unreal Engine 3 for the ipod Touch/iphone 3Gs|publisher=[[Anandtech]]|publication-date=22 грудня 2009|accessdate=2009-12-22|author=Anand Lal Shimpi|language=англійською|archiveurl=https://www.webcitation.org/65bY6pbh1?url=http://www.anandtech.com/show/2892|archivedate=2012-02-20|deadurl=no}}</ref>. У березні [[2010]] робота рушія була продемонстрована на [[комунікатор]]і [[Palm Pre]], що базується на мобільній платформі [[Palm webOS|webOS]]<ref>{{cite web|url=http://www.palmq.ru/article.php?sid=2479|title=Epic продемонструвала рушій Unreal 3 для webOS|publisher=[[Palmq Online]]|publication-date=12 березня 2010|accessdate=2009-12-22|language=російською|archiveurl=https://www.webcitation.org/65bY7kNva?url=http://www.palmq.ru/article.php?sid=2479|archivedate=2012-02-20|deadurl=no}}</ref>.
 
Для спрощення портування рушій використовує модульну систему залежних компонентів: підтримує різні системи [[рендеринг]]у ([[Direct3D]], [[OpenGL]], [[Pixomatic]]; раніше підтримувалися [[Glide API]], [[S3 Metal]], [[PowerVR SGL]]), відтворення звуку ([[Environmental Audio Extensions|EAX]], [[OpenAL]], [[DirectSound3D]]; раніше підтримувалися [[A3D]]), засоби голосового відтворення тексту, розпізнавання мовлення (тільки для [[Xbox 360|Xbox360]], [[PlayStation 3]], [[Wii|Nintendo Wii]] і [[Microsoft]] [[Microsoft Windows|Windows]]<ref>{{cite web|url=http://www.fonix.com/pr/20061002.pdf|title=Fonix Speech joins the Unreal Engine 3|publisher=Fonix Speech|accessdate=2009-01-24|language=англійською|archiveurl=https://www.webcitation.org/65bYD3zVC?url=http://www.fonix.com/pr/20061002.pdf|archivedate=2012-02-20|deadurl=yes}}</ref><ref>{{cite web|url=http://www.fonixspeech.com/voicein_ge.php|title=Fonix Voicein Game Edition|publisher=Fonix Speech|accessdate=24 січня 2009|language=англійською|archiveurl=https://web.archive.org/web/20080517145944/http://www.fonixspeech.com/voicein_ge.php|archivedate=17 травеньтравня 2008|deadurl=yes}}</ref>, також планувалося для [[Linux]] і [[MacOS|Mac]])<ref>{{cite web|url=http://osdir.com/ml/games.devel.linux/2003-11/msg00000.html|title=[Gd-linux] text to speech and speech recognition libraries|publisher=Daniel, Epic Games Inc.|publication-date=Листопад 2003|accessdate=2009-01-24|language=англійською|archiveurl=https://www.webcitation.org/6I3ec6LIm?url=http://osdir.com/ml/games.devel.linux/2003-11/msg00000.html|archivedate=2013-07-12|deadurl=yes}}</ref>, модулі для роботи з мережею й підтримка різних пристроїв вводу.
 
Для гри у мережі підтримуються технології [[Windows Live]], [[Xbox Live]], і [[GameSpy]], що дає можливість підключити до 64 гравців (клієнтів) одночасно<ref>[http://www.unrealtechnology.com/features.php?ref=technology-overview Unreal Technology Overview] {{Webarchive|url=https://web.archive.org/web/20081217133451/http://www.unrealtechnology.com/features.php?ref=technology-overview |date=17 груденьгрудня 2008 }} — Unreal Engine 3{{ref-en}}</ref>. Попри те, що офіційно засоби розробки не містять у собі підтримки великої кількості клієнтів на одному сервері, рушій використовувався для створення [[Багатокористувацька рольова онлайн-гра|MMORPG]]-ігор. Один з найвідоміших представників жанру, [[Lineage II]], використовує рушій Unreal Engine.
 
== Основна термінологія рушія ==
Рядок 30:
* ''Світ'', ''рівень'' ('''world''', '''game level''') — об'єкт, що характеризує загальні властивості «простору», наприклад, силу тяжіння й туман, у якому розташовуються всі актори. Також може містити в собі параметри ігрового процесу, як, наприклад, ігровий режим, для якого призначений рівень.
Для роботи із простими й, як правило, нерухомими елементами ігрового простору (наприклад, стіни) використовується [[бінарна розбивка простору]] — увесь простір ділиться на «заповнене» і «порожнє». В «порожній» частині простору розташовуються всі об'єкти, а також тільки в ній може перебувати «точка спостереження» при відмальовці сцени. Можливість повного або часткового поміщення об'єктів в «заповнену» частину простору не виключається, однак може привести до неправильної обробки таких об'єктів (наприклад, розрахунки фізичної взаємодії) або неправильної відмальовки у випадку поміщення туди «точки спостереження» (наприклад, ефект «залу дзеркал»). Усі пішаки, що потрапляють в «заповнену» частину простору, відразу «гинуть».
[[Файл:Unreal Engine Comparison.jpg|250x250px|thumb|Порівняння якості деталізації персонажів у різних версіях рушія]]Поверхня ('''surface''') є основним елементом бінарного дерева простору. Ці елементи створюються на грані перетину між «заповненою» і «''порожньою''» частинами простору. Група елементів бінарного дерева простору називається ''нодом'' ('''node''', {{lang-uk|вузол}}). Цей термін, як правило, уживається в контексті '''node count''' — кількість ''нодів'' на екрані або в ігровому просторі взагалі. Кількість нодів, одночасно видимих на екрані впливає на продуктивність при промальовуванні сцени. Якщо якийсь ''нод'' не потрапляє на екран або перекривається цілком іншими ''нодами'', він не обраховується — це допомагає підвищити продуктивність, особливо в закритих просторах. Розбивка всього простору на групи ''нодів'' називається ''зонуванням''<ref>[http://wiki.beyondunreal.com/Legacy:Zoning Зонування] — Unreal Wiki {{ref-en}}</ref>. Для цього іноді використовуються ''портали''<ref>[http://wiki.beyondunreal.com/Legacy:Zone_Portal Legacy:Zone Portal — Unreal Wiki<!-- Заголовок доданий ботом -->]</ref> — невидимі поверхні, які служать для того щоб вручну розділити великий ''нод'' на два менші<ref>Не слід плутати ноди Unreal Engine із ключовими точками ('''power nodes''') з ігрових режимів '''Onslaught''' і '''Warfare''' в іграх серії [[Unreal Tournament]]</ref><ref>У версії рушія Unreal Engine 3 ввели підтримку аддитивної геометрії, що дозволило відмовитися від зонування</ref>. Крім порталів використовуються ''антипортали''<ref>[http://udn.epicgames.com/Two/Leveloptimizationantiportals.html Оптимізація рівнів за допомогою антипорталів] {{Webarchive|url=https://web.archive.org/web/20110609123722/http://udn.epicgames.com/Two/LevelOptimizationAntiportals.html |date=9 червеньчервня 2011 }} — Unreal Developer Network {{ref-en}}</ref>, які обмежують області відмальовки.
 
Опис «''заповнених''» і «''порожніх''» частин простору виконується за допомогою набору замкнених тривимірних об'єктів, складених з не пересічних поверхонь — ''брашів'' ('''brush''', {{lang-uk|пе́нзель}}). Цей принцип побудови простору називається [[Конструктивна суцільна геометрія|конструктивною суцільною геометрією]]. Геометрія може бути «''адитивною''» (увесь простір початково «''порожній''») і «''віднімальною''» (початково заповнений матерією простір). ''Браші'' діляться на три типи:
Рядок 47:
Деякі технології рушія '''''Unreal Engine''''' були революційно новими, наприклад використання ''Dynamic scene graph'' (''DSG''). Ця технологія дозволяла ряд ефектів для накладення на поверхні:
* Частково або повністю дзеркальні поверхні.
* Технологія "''варпінгу"'' ('''warp''') — можливість при промальовуванні змінювати зображення однієї поверхні проєкцією зображення паралельною їй поверхнею. Попри те, що ряд об'єктів міг безперешкодно переходити через ''варп-зони'' (наприклад, пущена гравцем ракета), була присутня велика кількість обмежень на роботу таких зон<ref>[http://wiki.beyondunreal.com/Legacy:Warpzoneinfo Warpzoneinfo — Beyondunreal Wiki] {{Webarchive|url=https://web.archive.org/web/20110401003923/http://wiki.beyondunreal.com/Legacy:WarpZoneInfo |date=1 квітеньквітня 2011 }}{{ref-en}}</ref>. Ця технологія виглядала в грі як портали (через які можна було стріляти й проходити, але вони не пропускали звуки), що суттєво випередили свій час. Дизайнери гри додавали до таких порталів чудовий динамічний ефект переливчастої й світної поверхні, у результаті чого портали були однієї з помітних особливостей Unreal 1.
* ''Скайбокс'' ('''Skybox''') — проєктування на поверхні відмальовки з іншої точки (яка звичайно поміщалася в невелику «коробку» з накладеною текстурою неба, звідси й назва ''Skybox''). Простіше кажучи, відображення не лицьової грані полігонів, а зворотної, із заздалегідь накладеною текстурою «неба» на об'єкт. У грі взагалі досить широко використовувався прийом масштабування текстур таким способом, що приводило до досить реалістичних (і найголовніше — динамічних, на відміну від ігор попередніх поколінь) картинок навколишнього середовища. Для порівняння, в Quake3 також було динамічне небо, але на відміну від Unreal, там воно абсолютно не виглядало фотореалістичним (маючи крім того, помилку в декомпресії алгоритму S3TC, що привела до появи градієнтів). Unreal був однією з перших ігор, що широко використовували мультитекстурування, що дозволяло (при правильному розміщенні джерел світла й орієнтації відносно пререндерених текстур) досягти ефекту тривимірності поверхонь (хоча справжніх технологій Bump mapping у той час не було ще в жодній грі).
 
Рядок 62:
 
=== Unreal Engine 2 ===
[[Файл:Thief3 Garret.jpg|thumb|200px|right|Гаррет, головний герой гри [[Thief: Deadly Shadows]]. Рушій [[Flesh Engine]], на основі Unreal Engine 2]]Друга версія ''Unreal Engine'' побачила світ у [[2002]] році з появою [[Unreal Tournament 2003]]. У ній були практично повністю переписані ядро й механізм рендерингу, а також інтегрована нова версія редактора [[UnrealEd]] 3. Крім цього, рушій використовував фізичну підсистему [[Karma (фізичний рушій)|Karma]]<ref>[http://www.unrealtechnology.com/features.php?ref=past-versions Unreal Technology — Past Versions] {{Webarchive|url=https://web.archive.org/web/20081210001754/http://www.unrealtechnology.com/features.php?ref=past-versions |date=10 груденьгрудня 2008 }} — Unreal Engine 2{{ref-en}}</ref>. Інші частини рушія були також поліпшені або змінені для кращої сумісності з [[PlayStation 2]], [[GameCube]] і [[Xbox]].
 
З'явилися наступні технології:
Рядок 71:
* Складніша фізика тіл, [[Karma (фізичний рушій)|технологія «Карма»]] ('''Karma''') — обробка дії на тіла не як дію на один об'єкт, а як дію на скелет (''Ragdoll'') із прив'язкою до нього частин тіла. У кожного суглоба персонажа з'явилися обмежувачі (обертання), ці обмежувачі бувають 2х видів: шарнірні й лінійні. Лінійні можуть обертатися тільки навколо однієї осі, а шарнірні по всім 3-м. Також сама дія на деякі об'єкти визначається не по коробках колізій, а по складних моделях, які також прив'язані до скелета. Звичайно така технологія використовувалася тільки там де необхідно, наприклад для розрахунків взаємодії із гранатою застосовувалася тільки сфера колізій для економії ресурсів.
* [[Фізика Ragdoll]] (як наслідок переходу на Karma) — попри те що «скелетна» структура об'єктів була реалізована ще в першій версії рушія, можливість використання фізики «ганчіркової ляльки» з'явилася тільки разом з переходом на нову фізичну підсистему.
* Транспортні засоби ('''vehicles''') — можливість обробляти події від стороннього актора. В [[Unreal Tournament 2003]] реалізовані не повністю, є недопрацьований актор '''Bulldog'''. Однак є реалізація<ref>[http://planetunreal.gamespy.com/View.php?view=UT2003Gameinfo.Detail&id=1&game=5 Опис гри Unreal Tournament 2003 на сайті Gamespy] {{Webarchive|url=https://web.archive.org/web/20110403015806/http://planetunreal.gamespy.com/View.php?view=UT2003GameInfo.Detail&id=1&game=5 |date=3 квітеньквітня 2011 }}{{ref-en}}</ref> рівня для UT2003, на якому перебуває модифікований актор, що виконує всі функції транспортного засобу. Транспортні засоби діляться по типах реалізацій — нерухомі (стаціонарні оборонні установки), складені з декількох об'єктів (''Karma vehicle''), з використанням скелетної структури й транспортні засоби, що прикріплюються до інших транспортних засобів (наприклад, кулемет на вежі танка). Деякі транспортні засоби можуть діяти без «''пілота''», керовані власним штучним інтелектом.
* [[Environmental Audio Extensions|EAX]] 3.0 — рушій ''3D звуку'', розроблений [[Creative Labs]]<ref name="ue2">[http://www.unrealtechnology.com/features.php?ref=past-versions Unreal Engine 2 — Past versions (офіційний сайт)] {{Webarchive|url=https://web.archive.org/web/20081210001754/http://www.unrealtechnology.com/features.php?ref=past-versions |date=10 груденьгрудня 2008 }}{{ref-en}}</ref>.
 
У зв'язку з переходом на ''16-бітну'' графіку й використання технології ''Karma'', використання ''варп-зон'' стало ускладнено.
Рядок 86:
Був використаний в [[Unreal Championship]] і [[Unreal Championship 2]].
=== Unreal Engine 2 Runtime ===
Unreal Engine 2 Runtime є спеціальною версією рушія Unreal Engine 2.0 з обмеженою ліцензією. Користувач може завантажити дистрибутив [[Microsoft Windows|windows]]-версії рушія з офіційного сайту (для інших операційних систем необхідно придбати ліцензію). У комплекті поставляється [[редактор карт]] [[UnrealEd]], утиліта '''ucc''', а також тестовий рівень і невеликий набір моделей і [[Текстура (тривимірна графіка)|текстур]], що демонструють можливості технології «Unreal». Рушій безкоштовний для некомерційних проектів а також для використання в освітніх цілях (таких як створення [[Тривимірна графіка|3D]]-презентацій). Для використання в комерційних цілях потрібно придбати ліцензію<ref>[http://www.unrealtechnology.com/development-kit.php?ref=ue2r Unreal Engine 2 Runtime (офіційний сайт)] {{Webarchive|url=https://web.archive.org/web/20091201042258/http://www.unrealtechnology.com/development-kit.php?ref=ue2r |date=1 груденьгрудня 2009 }}{{ref-en}}</ref><ref>[http://wiki.beyondunreal.com/Legacy:Unrealengine2_Runtime Unreal Engine 2 Runtime (Unreal Wiki)] {{Webarchive|url=https://web.archive.org/web/20110105174240/http://wiki.beyondunreal.com/Legacy:UnrealEngine2_Runtime |date=5 січеньсічня 2011 }}{{ref-en}}</ref>. Завантажити безкоштовну версію, іменовану на офіційному сайті як «''демо''» можна [https://web.archive.org/web/20091201042258/http://www.unrealtechnology.com/development-kit.php?ref=ue2r тут].
 
=== Unreal Engine 3 ===
Рядок 92:
UE3 був розроблений з урахуванням персональних комп'ютерів, що використовують сучасні системи рендерингу (DirectX 9/10 і OpenGL 2/3, а з березня 2011 року було добавленно підтримку '''DirectX 11'''), і консолей наступного покоління ([[PlayStation 3]] і [[Xbox 360]]). У зв'язку із широким розповсюдженням багатопроцесорних систем рушій використовує два паралельні головні [[Багатопоточність|потоки]]&nbsp;— основний потік (що відповідає переважно за ігровий процес) і потік рендерингу. Крім двох головних потоків можуть бути викликані другорядні, які виконують разові задачі<ref>{{cite web|url=http://www.unrealtechnology.com/Downloads/Slides/xfest-gfx.ppt|title=Xfest 2006: Epic and the Unreal Engine – Graphics Technologies and Rendering Techniques|publisher=Dr. Michael V. Capps|accessdate=2009-01-24|language=англійською|archiveurl=https://www.webcitation.org/65bYEDunv?url=http://www.unrealengine.com/|archivedate=2012-02-20|deadurl=yes}}</ref>. З'явилася підтримка багатопоточного динамічного завантаження даних (''streaming''), наприклад, завантаження «локації» безпосередньо при переміщенню по ній з метою економії ресурсів.
 
Оновлений графічний рушій підтримує більшість сучасних технологій, включаючи [[High dynamic range rendering|HDR]], попіксельне освітлення, динамічні тіні, shader model 4, геометричні шейдери. Сам [[графічний конвеєр]] був переведений під керування шейдерів. Від фізичної підсистеми Karma відмовилися на користь іншої за назвою [[PhysX (рушій)|PhysX]] від компанії [[AGEIA]]. Пізніше AGEIA випустила набір додаткових бібліотек до гри, що дозволяють задіяти всі можливості фізичної системи (такі як ефект «рідини» або тканини). За анімацію облич персонажів відповідає механізм [[FaceFX]]. Оновлена версія [[Environmental Audio Extensions|EAX]] до 5-ї<ref>{{Cite web |url=http://getbits.info/novaya-mmorpg-now-na-dvizhke-unreal-engine-3-1466 |title=Нова MMORPG NOW на рушію Unreal Engine 3 |accessdate=20 березеньберезня 2011 |archiveurl=https://web.archive.org/web/20090910001932/http://getbits.info/novaya-mmorpg-now-na-dvizhke-unreal-engine-3-1466 |archivedate=10 вересеньвересня 2009 |deadurl=yes }}</ref>. Додана підтримка [[SpeedTree]] для генерації дерев. Наголос був зроблений на '' additive''-геометрію, однак від підтримки віднімальної геометрії не відмовилися. Недоліком віднімальної геометрії в першу чергу є набагато триваліший розрахунки освітлення<ref>[http://utmapping.wikidot.com/additive-vs-subtractive UT3 Level Design: Additive vs Subtractive]{{ref-en}}</ref>. Представлений новий редактор [[UnrealEd]], переписаний з використанням [[wxWidgets]].
 
=== Unreal Engine 3.5 ===
Рядок 131:
У цей час, перша версія рушія більше не доступна для ліцензування, однак ''сирцевий код'', необхідний для складання власних виконуваних файлів, існує у вільному доступі. Варто відзначити, що вони поширюються за «''Unreal Retail''» ліцензією — тобто '''тільки''' для персонального використання<ref>{{cite web|url=http://unrealtournament2004.filefront.com/file/Unreal_Tournament_Source_Code;50393|title=Unreal Tournament Source Code (432)|publisher=Filefront|accessdate=2009-01-24|language=англійською|archiveurl=https://www.webcitation.org/65bYJayLB?url=http://unrealtournament2004.filefront.com/file/Unreal_Tournament_Source_Code;50393|archivedate=2012-02-20|deadurl=no}}</ref>. Крім того, в 2004 році був опублікований сирцевий код гри [[Rune]]<ref>{{cite web|url=http://www.shacknews.com/onearticle.x/33804|title=Rune Source Code|publisher=[[Shacknews]]|publication-date=30 вересня 2004|accessdate=2009-06-17|language=англійською|archiveurl=https://www.webcitation.org/65bYKTtfH?url=http://www.shacknews.com/article/33804/rune-source-code|archivedate=2012-02-20|deadurl=no}}</ref>.
 
Друга версія як і раніше доступна для ліцензування. ''Epic Games'' пропонують її для створення ігор на «''діючі''» персональні комп'ютери або приставки [[шосте покоління ігрових систем|шостого покоління]] за суму $350 000 і більше (залежить від кількості підтримуваних платформ)<ref name="lic-terms">{{Cite web |url=http://www.unrealtechnology.com/terms.php |title=Unreal Engine Licensing Terms |accessdate=22 березеньберезня 2011 |archiveurl=https://web.archive.org/web/20100527030436/http://www.unrealtechnology.com/terms.php |archivedate=27 травеньтравня 2010 |deadurl=yes }}</ref>.
 
Для некомерційних проектів, що не стосуються до відеоігор, доступна «закрита» версія Unreal Engine 2 Runtime. Розробка ігор на цій версії рушія суворо заборонена (попри те що конкретного визначення «ігор» у ліцензії немає) через те що «основний дохід ''Epic Games'' отримує від створення ігор, і якщо ви прагнете зробити свою гру — зробіть її як модифікацію до існуючого продукту»<ref>{{Cite web |url=http://udn.epicgames.com/Two/Unrealengine2Runtimeeula.html |title=Unreal Engine 2 Runtime EULA |accessdate=22 березеньберезня 2011 |archiveurl=https://web.archive.org/web/20090828225934/http://udn.epicgames.com/Two/UnrealEngine2RuntimeEULA.html |archivedate=28 серпеньсерпня 2009 |deadurl=yes }}</ref>.
 
Для бюджетних проектів доступно також ліцензування ''Unreal Engine 2 Runtime'' за порівняно низькою ціною (від $8 000). Вартість ліцензії залежить від кількості розробників (числа «робочих місць»). Разом з ліцензуванням хоча б одного «робочого місця» доступне замовлення заголовних файлів другої версії рушія за ціною $5 000<ref>{{Cite web |url=http://www.unrealtechnology.com/development-kit.php?ref=order |title=Unreal Engine 2 Runtime Ordering |accessdate=22 березеньберезня 2011 |archiveurl=https://web.archive.org/web/20090917011437/http://www.unrealtechnology.com/development-kit.php?ref=order |archivedate=17 вересеньвересня 2009 |deadurl=yes }}</ref>.
 
Ціна ліцензування версій ''3.0'' і старше не публікується, однак згадується що є вибір з різних варіантів ліцензій, у тому числі й для не ігрових продуктів<ref name="lic-terms"/>.