- Зміст статті Комп'ютерів, ноутбуків, приставок, планшетів і смартфонів у людей стало дико багато....
- Назва: Torque 2D / 3D
- CryEngine 3
- UDK (Unreal Development Kit)
- HeroEngine
- Cocos 2D-X
Зміст статті
Комп'ютерів, ноутбуків, приставок, планшетів і смартфонів у людей стало дико багато. Їх обчислювальні можливості величезні, але використовуються вони зовсім не для того, щоб обчислювати траєкторію польоту до Альфи Центавра, шукати ліки від раку або спосіб нагодувати всіх голодуючих. Так, на цьому обчислювальному барахлі люди просто грають. Тому сьогодні мова піде про технології, які стали незамінними при розробці ігор. Можна, звичайно, написати движок з нуля самому, але це займе невиправдано багато часу. Поки ти гостриш його під конкретний проект, не факт, що до фіналу розробки жанр, а то й ціла галузь індустрії не втратять актуальності. Тому раціонально використовувати готовий движок.
Не хвилюйся: далі останніх 10-15 років я заглиблюватися не буду. Я б радий, звичайно, пофілософствувати про минулі часи, але редактор буде проти (відчепіться ви вже від мене, я ж не винен, що журнал паперовий. - Прим. Ред.).
Отже, ще 15 років тому кодова база для ігор створювалася з нуля всередині компаній - розробників певних продуктів. Трохи пізніше (приблизно в середині першого десятиліття XXI століття) слідом за розробкою інших компонентів ігор, таких як арт або звук, створення движків вийшло на аутсорсинг - виділилося в окрему індустрію. Відбувалося це поступово. Варто відзначити, що і в 90-ті роки були ігри на готових движках (DOOM і Quake від id Software), але це було рідкісним винятком від випередили свій час дядечок, а правилом стало тільки в середині 2000-х. Багато в чому через дорожнечу движків. А коли сформувалася відособлена кодова індустрія, бізнес придбав інший вид, з'явилися движки широкої цінової категорії. Спочатку ринок заповнився інструментами розробників - фреймворками, що представляють собою швидше графічні движки, ніж ігрові, що відрізняються від останніх наявністю лише прошарку над графічним API і відсутністю внутрішньоігрових редакторів: засобів для level-моделинга, імпорту об'єктів, текстурування, завантаження і анімації персонажів. Як приклад можна привести Ogre, DarkGDK (багато років тому я писав про нього), HGE. Пізніше на ринок вийшли інші, більш прокачані гравці, які запропонували розробникам повноцінні движки: Torque 3D, Unity 3D, UDK.
Одночасно з появою повноцінного ринку движків, в індустрії намітився відтік геймерів від сінглплеерних до мультіплєєрного онлайнових ігор. Результатом цього стала поява двигунів на кшталт HeroEngine і BigWorld.
Слідом за соціальними мережами стався сплеск інтересу до веб-ігор. На нього розробники двигунів відреагували досить оперативно, надавши своїм користувачам можливість запускати гри в браузері, встановивши плагін. Кінцеві користувачі в браузері отримали гри, за якістю майже нічим не поступаються клієнтським. З популярністю веб-ігор більшого поширення набула Flash-технологія, в результаті чого скромна Macromedia (розробник Flash) була придбана могутнім Adobe. А на базі Flash стали з'являтися не тільки гри, але і движки для їх розробки. Хорошим прикладом служить движок Alternativa від вітчизняної компанії Alternativa Platform.
Потім сталися мобільні технології. Як грім серед ясного неба з'явилися мобільні девайси, по потужності зіставні з ПК середньої цінової категорії і здатні потягнути круті ігрові програми з усіма спецефектами, якими володіли низькорівневі графічні інтерфейси. На цей факт розробники ігрових движків відповіли хто створенням спеціалізованих конверторів, що створюють нативний для конкретного обладнання код (наприклад, Unity 3D), а хто - адаптацією своїх продуктів до крос-платформенности (наприклад, Torque 2D).
Також на ринку з'явилися нові гравці, які пропонують крос-платформні фреймворки для всього парку мобільних пристроїв, які не потребують при цьому навіть перекомпіляції і виконуються зі швидкістю нативного коду. Серед подібних засобів можна відзначити Corona SDK, Marmalade SDK, AGK (App Game Kit).
Unity 3D
сайт: unity3d.com
Ціна: indie-версія: free, pro-версія: 1500 доларів
Поріг входження: низький
Вихідний код: закритий
Найпопулярніший движок для створення 2D- і 3D-ігор. Безперечно, він став лідером індустрії, і, як тільки з'являється нова ігрова / графічна технологія, розробники негайно реалізують її в Unity. Крім розробки сінглплеерних ігор для PC, за допомогою підключаються експортерів можна перенести гри під інші ОС, консолі і мобільні технології (за експортер доведеться доплатити 1500 доларів за кожну платформу: iOS, Android, BlackBerry). Плюс до цього утворилася ціла індустрія, що працює над створенням доповнень і розширень движка, серед них є як спеціалізовані серверні рішення для Unity (eg Photon - повноцінний ігровий сервер), так і засоби для розробки користувальницького інтерфейсу (NGUI), конструктори, призначені для створення ігор визначених жанрів (eg Playmaker).
У самого редактора Unity є порти під OS X і Windows, при цьому спочатку він був призначений для OS X. В Unity включена підтримка DirectX 11, що відкриває твоїм додатків дорогу в світи Windows 8 і Windows Phone 8. Під час написання статті вийшла чергова версія Unity під номером 4.2, в якій з'явилася підтримка останньої на даний момент OpenGL ES 3.0, поки цими засобами володіють тільки топові Android-смартфони. Движок Unity особливо цінний за низький поріг входження для початківців користувачів, завдяки цьому, а також тому, що інді-версія безкоштовна, навколо движка організувалося величезне співтовариство. Низький поріг входження є результатом грамотного дизайну програми: багато речей можна виконати за допомогою різних редакторів, не написавши при цьому ні строчки коду (якщо що, код пишеться на JavaScript, C #, Boo). Вихідний код на C / C ++ закритий, але це у зв'язку з розширеною компонентної структурою движка не створює ніяких перешкод.
Назва: Torque 2D / 3D
сайт: www.garagegames.com
Ціна: free (ліцензія MIT)
Поріг входження: середній
Вихідний код: відкритий
Безсумнівно, мій улюблений ігровий движок. Був свого часу лідером, але під натиском Unity втратив свої позиції. Проте до цих пір на ньому розробляється безліч успішних проектів, оскільки він активно розвивається спільнотою. Не так давно я присвятив тривимірної версії цілу статтю в нашому журналі, тому зараз я зверну твою увагу на Torque 2D.
Відмінності між двовимірної і тривимірної версіями досить значні, але є і загальні елементи, наприклад розвинена мережева підсистема. Після виходу в світ open source T3D зберіг і навіть збільшив свої можливості, а T2D, навпаки, багато втратив. Наприклад, він втратив абсолютно все вбудовані редактори, які, очевидно, були вилучені з-за певних юридичних угод. Зате на ньому можна розробляти гри для трьох платформ: Windows, OS X і, що найцікавіше, iOS (і продавати ігри в App Store, що не відраховуючи ні копійки авторам движка). Весь движок - це одна кодова база на C ++ без додаткових експортерів. Під час написання статті в співтоваристві розробників T2D кипіла робота над створенням компільованої версії для Android і реінкарнацією цих самих «втрачених» редакторів. Поточної стабільної версією є 2.0. Як видно, фундаментальні відмінності 2D- і 3D-версій полягають в графічної підсистеми: T2D для візуалізації використовує OpenGL, а T3D - DirectX, притому ще поки дев'ятої версії, що перегороджує створеним з його допомогою ігор шлях в Windows Store. Є куди розвиватися!
Як скриптового мови в T2D, як і в T3D, використовується Torque Script. Разом з тим в T2D для опису ігрових елементів служить XML-подібна мова TAML. Він дозволяє визначити властивості об'єктів на стадії ініціалізації рівня гри. Для відтворення звуків T2D використовує бібліотеку OpenAL. Симуляція фізики здійснюється за допомогою движка Box2D, що став стандартом в двовимірних фізичних обчисленнях. Незважаючи на те що в двовимірному ТОРК ще поки немає конструктора GUI, за допомогою засобів движка (в скриптовій коді) можна створювати призначений для користувача інтерфейс звичними компонентами, а не простими спрайтами. Однак, якщо необхідна компонента відсутня, його можна створити на основі спрайтів. Маючи аналогічну з 3D-версією мережеву систему, на T2D можна розробляти мультиплеєрний гри, які набирають популярність, - наприклад P2P з планшетів. Разом з T2D поставляється колекція з величезної кількості семплів, яка «дружно» укомплектована в Sandbox. У кожному прикладі розкривається певна фіча движка, а наявність вихідного коду дозволяє дізнатися її пристрій.
Мал. 1. TruckToy - семпл на Torque 2D
У сімейства двигунів від GarageGames теж є ком'юніті, яке робить корисні для решти спільноти речі: створюються туторіали і мануали, вирішуються проблеми - все, як прийнято при соціалізмі. Є і платні інструменти: система ШІ, різноманітні поліпшення і ефекти графічної системи, арт, що вбудовуються редактори - діалогів, інвентарю, террейнов, джерел світла.
CryEngine 3
сайт: mycryengine.com
Ціна: free для некомерційного використання (вивчення і «домашніх» розробок)
Поріг входження: середній
Вихідний код: закритий
CryEngine 3 бере початок своєї історії в 2001 році, коли була анонсована перша розробляється на ньому гра Far Cry. З тих пір багато води утекло, і поточна - на даний момент третя - остання версія була випущена в жовтні 2009-го. Розробники цього движка з самого початку мали на меті не самим створювати на ньому ігри, а продавати його як технологію. Отже, все що розробляються Crytek'ом ігрові програми - це «гра м'язами» з метою зробити додаткову рекламу своєму головному продукту. Хоча для вивчення він доступний безкоштовно, щоб розробляти на ньому комерційні проекти, необхідно заплатити, причому ціна публічно не оголошується. В результаті ліцензіат отримує движок, документацію (навчальні матеріали), вихідний код, а також оперативну підтримку. Крім того, процес ліцензування движка таїть в собі безліч підводних каменів - хоча б те, що ліцензувати його може тільки юридична особа, яка має надати дані про розроблені продуктах і в окремих випадках про всі свої співробітників.
На відміну від попередніх движків лінійки (які були виключно PC-орієнтованими), CryEngine 3 орієнтований на створення крос-платформних ігор, призначених для PC і консолей. В даний час підтримуються платформи Xbox 360, Xbox One, PlayStation 3-4, WiiU, а також технології візуалізації настільної Windows - DirectX 9-11. Як можна помітити, підтримки мобільних платформ немає. У ньому спочатку присутній підтримка глобальних мультіплеєрних (MMO) ігор. CryEngine 3 володіє приголомшливим списком технологій візуалізації, ось деякі з них: динамічне освітлення і затінення в реальному часі, затуманення, Terrain 2.5D, карти нормалей і паралакс-маппінг, підповерхневе розсіювання, світлові промені і хвилі, управління рівнем деталізації ландшафту, а також багато інше. Найцікавіше, що CryEngine за своїми можливостями випереджає поточну версію DirectX, тобто, наприклад, CryEngine 2 (в грі Crysis Warhead), визуализируя через DirectX 9, видавав ефекти від DirectX 10. А третя версія движка, працюючи під DirectX 10, видавала ефекти, що стали доступними широкому колу розробників тільки в DirectX 11. Фізичний компонент движка CryPhysics також працює незалежно від фізичних API, таких як PhysX. Вбудована система анімації пропонує кілька відмінних підсистем: індивідуалізація персонажів, параметричну скелетна анімація, процедурне деформування руху. Також заслуговує на окрему увагу вбудована система ІІ, яка дозволяє обробляти поведінка не тільки персонажів, але і транспортних засобів. Вона складається з трьох модулів: розумні об'єкти, алгоритми динамічного виявлення шляху, а також система, керована сценаріями. За відсутності ліцензії, відповідно, при відсутності вихідного C ++ коду ти будеш рулити движком за допомогою скриптового мови Lua, який завдяки гнучкості прекрасно підходить для вбудовування в ігрові движки. Та й при наявності исходника багато завдань простіше вирішити скриптовою мовою - це, до речі, справедливо для всіх двигунів.
Мал. 2. Sandbox в CryEngine 3
UDK (Unreal Development Kit)
сайт: www.unrealengine.com/udk
Ціна: free
Поріг входження: середній
Вихідний код: закритий
Прямий спадкоємець движка, що використовується в одному з перших реально успішних командних шутерів. Тоді, ще в кінці минулого століття, були випущені Unreal і більш успішний Unreal Tournament. Власне, UDK побудований на основі Unreal Engine 3 і використовує всю міць останнього.
UDK - це безкоштовна версія движка UE 3, що володіє всім успадкованим інструментарієм останнього для створення ігрових світів. Список підтримуваних платформ не так широкий, як у Unity, але цього цілком вистачає, щоб окупити розробку: Windows PC, Windows Store, OS X, iOS, Android і консолі передостаннього покоління.
Для скриптинга в движку використовується власна мова - UnrealScript. На сайті розробників представлені тонни навчальних матеріалів, як текстових, так і відео, як по редактору, так і по скриптингу. UE3 отримав безліч нагород на індустріальних заходах, а також в кінематографі і не раз ставав кращим ігровим / графічним движком року. По суті, UDK відрізняється від UE3 тільки відсутністю вихідного коду. На базі даного движка випущено більше 300 тайтлів! У їх числі: Gears of War 3, BioShock Infinite, Lost Planet 3, Transformers: Fall of Cybertron, Batman: Arkham Asylum, Mass Effect 3 і багато інших.
Тепер заглянемо всередину. Гнучка система анімації дозволяє контролювати кожну деталь аніміруемого об'єкта. Анімаційна модель контролюється системою AnimTree, яка включає наступні механізми: контролер змішання (Blend), контролер, керований даними, фізичні, процедурно-скелетні контролери. Для імпортування об'єктів використовується формат FBX, що став стандартом для експорту моделей між редакторами. Для візуалізації UE3 використовує 64-бітний кольоровий HDR графічний конвеєр, який здійснює гамма-корекцію, розмиття рухомих об'єктів, зовнішню окклюзию і інші ефекти постобробки. Движком підтримуються всі сучасні ефекти освітлення і технології візуалізації: нормалізувати карти, параметризованих освітлення по Фонгу, різні анізотропні ефекти та інше. UE3 відомий своєю високо оптимізованої мережевий архітектурою, що включає підтримку онлайнових баталій для ігор різних жанрів. Він має безліч інших засобів, які, якщо тобі цікаво, ти зможеш дізнатися сам, ну а ми перейдемо до наступної теми.
HeroEngine
сайт: www.heroengine.com
Ціна: 99 доларів на рік (за одне робоче місце)
Поріг входження: високий
Вихідний код: закритий
Так-так, це той самий движок, на якому розроблена приголомшлива MMORPG Star Wars: The Old Republic. Історія движка почалася ще в кінці дев'яностих, коли американська компанія Simutronics приступила до розробки MMORPG Hero's Journey. Як показав час, з грою у них нічого не вийшло: багаторазові переноси дати і зриви виходу проекту. Однак технологія, на основі якої велася розробка, була високо оцінена всередині індустрії і на ігрових заходах, і движок був ліцензований декількома студіями, в тому числі BioWare. У підсумку в 2010 році движок як самостійна технологія була продана корпорації Idea Fabrik. У цьому ж році вона почала продаж движка під двома ліцензіями. Перша ліцензія передбачає покупку всього движка разом з вихідними кодами за нечувану (або все-таки охрененно) суму грошей. За другою ліцензії за 99 доларів (в розрахунку на одного розробника) на рік купується доступ до хмарного сервісу, в якому за допомогою спеціальної програми-клієнта розробник може створювати гру. Якщо виходити з першого варіанту, то користувачеві доведеться організовувати всю апаратну і програмну інфраструктуру гри (на рис. 3 можна побачити клієнт-серверну архітектуру HeroEngine). Крім серверного заліза, сюди входить: серверна ОС (Cent OS), БД Oracle, ліцензія на яку варто також неміряно. Виходячи з другого варіанта, всі ліцензії на додаткове ПО, обслуговування серверного ПО і заліза бере на себе Idea Fabric - для інді-студій дуже сприятливий варіант, тому далі ми наведемо опис хмарної технології HE2.
Мал. 3. Клієнт-серверна архітектура HeroEngine
Клієнтську програму (як і розроблені гри) призначене тільки для Windows. В хмарі над однією грою можуть працювати відразу кілька людей: гейм-дизайнер пробує нову фічу, аніматор налаштовує перса, левел-дизайнер будує рівень, кодер пише логіку. HeroEngine надає всім учасникам групи розробки спеціальні інструменти. Це становить одне з найважливіших переваг - «жива» спільна розробка. Друге, що ти отримуєш разом з HeroCloud, - це доступ до прикладів реальних MMO-ігор: від соціальних до онлайн-шутера, серед семплів є «недороблена» MMORPG Hero's Journey, вона являє собою охоплює всі аспекти глобальних ігор приклад.
З технічного боку HeroEngine пропонує візуалізацію на DirectX 9.0c і інші інтегровані програмні системи, серед яких: PhysX - для обробки фізики, FaceGen - middleware для генерації тривимірних осіб, FMod - для відтворення звуків і музики, відеоконвертор від RAD Game Tools, високоякісна візуалізація рослин SpeedTree і інше.
На особливо Рамус заслуговують інструменти, что Надаються HeroCloud. Отже, HeroBlade - клієнтську програму Включає: World Builder - конструктор світу дает інтуїтівні інструменти для Зміни ландшафту, побудова будівель, размещения об'єктів, налаштування дінамічного освітлення; за допомогою системи персонажів можна створювати легко настроюються, динамічні істоти, технологія морфинга дозволяє точно керувати особи і синхронізувати губи з промовою; гнучка система стеження за кістками дозволяє створювати спецефекти, що відбуваються, наприклад, при ударі мечем; система ефектів включає параметризованих підсистему частинок: частинки можуть бути джерелами частинок, FX-система дозволяє зв'язати разом частинки і звукові ефекти; ігрова система служить для можливості безперервної роботи, після внесення змін тобі ніколи не доведеться перезапускати ігровий сервер або перезавантажувати БД, всі зміни підхоплюються на льоту, крім того, вона надає загальні для всіх MMO-ігор компоненти, наприклад, у всіх подібних іграх, щоб отримати доступ до аккаунту, треба ввести логін і пароль, і така система вже реалізована; щоб менеджер твоєї команди міг самостійно стежити за процесом розробки, в HB вбудований DreamManager, який дозволяє створювати і призначати таски для розробників, а також стежити за їх виконанням.
Для написання скриптів в движку є об'єктно-орієнтована тіпобезопасний скриптова мова HeroScript, написані і скомпільовані скрипти зберігаються безпосередньо на сервері. Скрипти на мові HeroScript виконуються навіть швидше Python-програм. Таким чином, всі ігрові дії, реакція на події, ігрові механізми та інше реалізуються на цій мові. Інтегрований скриптова редактор не тільки підсвічує код, але і дозволяє провести налагодження. Крім того, в ньому ведеться історія версій, він дозволяє проводити порівняння, Мержа зміни, тобто отримувати в своє розпорядження функції повноцінної IDE. До того ж в HE є зручний редактор GUI.
Мал. 4. HeroBlade в дії
Межа на розмір статті невблаганно наближається з кожним символом, але в розпал мобільних технологій я не можу не розповісти про двигунах даної категорії.
Cocos 2D-X
сайт: www.cocos2d-x.org
Ціна: free
Поріг входження: середній
Вихідний код: відкритий
Оригінальний Cocos 2D був розроблений на Python в 2008 році, потім в тому ж році він був портований на мові Objective C під iPhone (версія Cocos 2D-iPhone); два годя опісля була випущена крос-платформна версія Cocos 2D-X на C ++.
Якщо коротко простежити подальшу історію, то видно, що потім з'явилися версії з підтримкою Android (Java), XNA (C #) і HTML 5 (JavaScript). Також є розширення для візуалізації тривимірної графіки Cocos 3D, але воно не отримало особливого розвитку і поширення просто тому, що користувачам не хочеться 3D на мобільному девайсі.
Найбільш затребувана версія саме Cocos 2D-X, завдяки C ++ і крос-платформенности. Поточної стабільної версією движка є 2.1.5, яка вийшла 23 серпня цього року. Заявлена підтримка: iOS, Android, Windows Phone 7 (XNA), BlackBerry, Tizen, Bada, Marmalade, Windows, Linux. Використовуючи Cocos 2D-X, можна кодувати на C ++, Lua і JavaScript. Двигуном користуються як програмісти-дослідники, невеликі інді-команди, так і монстри ігрової індустрії: Zynga, Konami, Disney Mobile. Завдяки шаленої популярності движка - півтора мільярда закачувань заснованих на ньому ігор - в його розвитку беруть участь розробники з Google, Microsoft, Intel.
Підтримка движком акселерометра дозволяє створювати динамічні ігри з переміщенням в просторі. Безумовно, для обробки фізики використовується Box 2D, плюс, на вибір, движок Chipmunk. Є кілька спеціальних окремих редакторів (як платних, так і безкоштовних), службовців для створення певного контенту: атласи, шрифти, частинки, спрайтові таблиці і так далі. Набір GUI-елементів досить малий, але можна створити відсутні компоненти самостійно.
Ми коротко розглянули сучасні ігрові движки для всіх популярних на сьогоднішній день платформ: універсальні, спеціально призначені для MMO і мобільні. Вибір нав'язувати Не буду: все залежить від конкретного випадку і передбачуваного проекту. На основі наведених даних можна також зробити вибір, виходячи зі свого бюджету.
Однак, на жаль, реальність така, що в даний час має сенс розробляти гри тільки для двох платформ: iOS і Android. Будемо вважати, що я цього не говорив, так як я сам вірю в світле майбутнє і великі хардкорні гри. До зустрічі!