Найти в Дзене

Игровые движки

Хотите больше интересных статей про разработку игр? Подписывайтесь на наш телегам канал https://t.me/g0mechan
-Что это такое?
Игровой движок - это центральный программный компонент компьютерных видеоигр и других интерактивных приложений с графикой, обрабатываемой в реальном времени. Проще говоря это объединенный в единое целое комплекс прикладных программ, с помощью которых обеспечивается

Хотите больше интересных статей про разработку игр? Подписывайтесь на наш телегам канал https://t.me/g0mechan

-Что это такое?

Игровой движок - это центральный программный компонент компьютерных видеоигр и других интерактивных приложений с графикой, обрабатываемой в реальном времени. Проще говоря это объединенный в единое целое комплекс прикладных программ, с помощью которых обеспечивается графическая визуализация, звуковое сопровождение, перемещение внутриигровых персонажей, их действия в соответствии со скриптами, а также игра в сети, встроенные графические сцены, соблюдение физических эффектов и законов и многое другое.

Польза от игровых движков ощутимая. Если раньше игры создавались буквально с «нуля», то сейчас они разрабатываются на готовых инструментариях. Это позволяет разработчикам сэкономить кучу времени, когда большинство программных кодов и других полезных вещей уже находятся под рукой. Неудивительно, что один и тот же движок может использоваться в десятках популярных игр.

-История

Впервые данный термин появился в 90-х годах, связан он был с разработкой шутера от первого лица - Doom. Код данной игры был очень качественным и удобным для разработчиков. Это привело к тому, что другие девелоперы начали часто использовать наработки из Doom, вместо написания своего кода. Хотя для честности нужно сказать, что сам Doom был разработан из наработок Wolfenstein 3D, а сам движок не смотря на трехмерность игры, создавал лишь симуляцию, ведь на то время компьютеры пользователей не имели достаточное количество мощностей для ее рендеринга.

-2

В середине 90-х после появления видеопроцессоров, способных обрабатывать трехмерную графику стали появляться программные интерфейсы, упрощающие ее разработку. Вслед за кроссплатформенным OpenGL на сцену в составе DirectX вышел Direct3D для Windows. Эти 2 визуализатора на много лет вперед определили способы графического вывода в играх.

Во второй половине 90-х вышла легендарная игра Quake, разработанная на игровом движке Quake Engine. Данный движок сделал гигантский шаг в развитие разработки игр. Позже вышел Unreal от Epic Games, данное ПО смогло совершить настоящий прорыв в графической сфере создания продукта.

В итоге вплоть до начала первого десятилетия 21-го века именно эти 2 компании (id Sowtware и Epic Games) соперничали в разработке более крутого инструмента создания видеоигр.

Ситуация начала коренным образом меняться примерно в середине первого десятилетия 21-го века. Тогда на рынке и в свободном доступе стало появляться большое количество средств для разработки игр. Бизнес промежуточного ПО (middleware) стал набирать обороты. Сначала рынок заполнился графическими фреймворками: Ogre, DarkGDK и др., предоставляющие программисту высокоуровневую прослойку над графическим API. В то же время отличающиеся от игровых движков полным отсутствием внутриигровых редакторов.

Затем на рынок пришли полноценные игровые движки по ценам, уместным для небольшой инди-команды разработчиков, среди них: Torque 3D, Unity 3D, и многие другие. Даже стартовавшие как флагманские движки — например, CryEngine от Crytek и ранее упомянутый Unreal Engine — стали использовать намного более доступную ценовую политику и стали доступны даже начинающим разработчикам.

-Устройство игры, со стороны игрового движка

Игровой мир состоит из игровых объектов (GameObject). К этой базовой категории можно практически отнести всё, что находится в игре, в том числе игрока, его инвентарь, камеру, землю под ногами, каждый отдельный кустик и даже небо. Не стоит думать, что все объекты обязательно должны быть видимы — всякие триггеры (объекты, вызывающие события при прикосновении), барьеры, источники освещения и даже части интерфейса являются такими же объектами. Все игровые объекты обладают несколькими базовыми свойствами: положение в пространстве (Transform), включены ли они (Active), какой у них родительский объект и есть ли он (Parent).

Игровые объекты так же могут быть дополнены поведением (Behaviour или Component). Поведение — это отдельный код, который привязан к объекту и выполняется при определенных условиях. Условия могут быть самыми разными, а количество поведений, привязанных к объекту, ничем не ограничено. В таком коде вы например можете двигать объект по движению мыши или перекрашивать его цвет. А ещё у каждого поведения могут быть свои отдельные параметры (выраженные в переменных).

Очень важным концептом является событие (Event). Это сигнал, который возникает при соблюдении каких-то условий. Поведения объектов в игре могут порождать эти события и реагировать на них. Например, столкновение — это событие, причём одно из самых частых по использованию. Именно на событиях строится основной игровой процесс, разработчик игры может навешивать действия (Action) одних поведений на события других и так, например, делать кнопки, рычаги, точки сохранений и так далее.

Место, в котором находятся игровые объекты, называется уровень или сцена (Level или Scene). Уровни можно менять в любой момент, а в некоторых движках ещё и совмещать между собой. Ваши игровые объекты будут распределены по уровням, чтобы друг другу не мешать. Например это будут локации и их наполнение. Но определённые универсальные для всех уровней объекты, например главный персонаж или интерфейс, лучше хранить в отдельном месте.

И последнее, про графику. Объекты в игре могут выглядеть самым разным способом. И дело даже не в отдельный настройках, а в самом способе их отображения на экране. Это могут быть 2D-объекты, например различные простейшие геометрические формы (Shape) или картинки (Sprite). А могут и 3D-объекты, которые состоят из 3D-модели (Mesh). Все видимые объекты в игре обязаны иметь материал (Material) — набор параметров, влияющий на отображение объекта. Такими параметрами могут являться текстуры (Texture), цвета (Color) и обычные числа (Float). Некоторые движки дают доступ ограниченный доступ материалу, давая лишь задать текстуру и цвет окрашивания, другие же дают полный доступ. В основе материала лежит шейдер (Shader) — особая программа, которая проводит математические вычисления и проецирует объекты в пространстве на плоский экран камеры.

Как выглядит интерфейс Unity
Как выглядит интерфейс Unity

Хотите больше интересных статей про разработку игр? Подписывайтесь на наш телегам канал https://t.me/g0mechan

-Примеры игровых движков

1 - Наиболее популярные

  1. CryEngine - игровой движок, созданный немецкой частной компанией Crytek в 2002 году и первоначально используемый в шутере от первого лица Far Cry. «CryEngine» — коммерческий движок, который предлагается для лицензирования другим компаниям. С 30 марта 2006 года все права на движок принадлежат компании Ubisoft.
  2. Unreal Engine - игровой движок, разрабатываемый и поддерживаемый компанией Epic Games. Хотя движок первоначально был предназначен для разработки шутеров от первого лица, его последующие версии успешно применялись в играх самых различных жанров, в том числе стелс-играх, файтингах и массовых многопользовательских ролевых онлайн-играх. В прошлом движок распространялся на условиях оплаты ежемесячной подписки; с 2015 года Unreal Engine бесплатен, но разработчики использующих его приложений обязаны перечислять 5% роялти от общемирового дохода с некоторыми условиями.
  3. Unity - межплатформенная среда разработки компьютерных игр, разработанная американской компанией Unity Technologies. Unity позволяет создавать приложения, работающие на более чем 25 различных платформах, включающих персональные компьютеры, игровые консоли, мобильные устройства, интернет-приложения и другие. Выпуск Unity состоялся в 2005 году и с того времени идет постоянное развитие.
  4. Source - игровой движок, разработанный компанией Valve Corporation и используемый ею для создания собственных компьютерных игр. Впервые был использован в Half-Life: Source и Counter-Strike: Source, вышедших в 2004 году.

2 - Самые простые

  1. Construct 3 - настоящий ветеран индустрии. Используется для создания 2D-игр и достаточно популярен. У движка больше настроек, с недавних пор есть версия для браузера, очень много примеров и шаблонов. Логика на визуальном интерфейсе. Но большинство возможностей скрыто за крайне дорогой лицензией. Бесплатная версия ограничена.
  2. RPG Maker - очень популярный движок для создания пиксельных RPG. Именно для RPG движок и заточен, но он подойдёт и для похожих жанров. Много встроенных ассетов и настроек для персонажей. Есть бесплатный 30-дневный пробник, дальше придётся платить.
  3. Game Maker Studio - очень популярный движок для разработки 2D-игр. Позволяет программировать логику на адаптированном Lua и дает много возможностей. Есть бесплатный 30-дневный пробник, дальше придётся платить.
  4. Godot - очень многообещающий движок с открытым исходным кодом, который грозится «заменить Unity» в своей распространенности. Godot поддерживает 2D и 3D графику, а также несколько языков программирования (C++, C# и модификация Python) и имеет свой визуальный скриптинг. Его использование полностью бесплатно.

Кроме того нужно сказать, что игровые движки делятся на 2 типа - Полноценное ПО (Что мы показали выше) и Фреймворки.

Фреймворк — это набор полезных классов и функций, которые вы можете использовать при создании своей игры с нуля. Игру вам придется собирать самостоятельно, но зато у вас будет больше контроля за процессом.

3 - Наиболее известные фреймворки

  1. Cocos2d - популярный фреймворк, портированный на несколько языков (C, Python, JS, Swift, C#). С его помощью сделано много игр в том числе для мобильных устройств.
  2. libGDX - завоевавший доверие фреймворк для разработки игр для Java.
  3. SFML - популярный фреймворк для разработки игр на C++
  4. Pygame – это библиотека модулей для языка Python, созданная для разработки 2D игр.

-Итоги

В конце можно сказать, что игровые движки это невероятно важная часть работы во время разработки. Подобрать нужный движок или же фреймворк достаточно важная задача, ведь в это время нужно помнить, что вам предстоит работать с ним, скорее всего до окончания проекта. Начинающим мы можем посоветовать пойти больше в сторону уже готового ПО, а не использовать фреймворки или же писать все с чистого листа. Хотя конечно же никто запретить вам этого не может)

Хотите больше интересных статей про разработку игр? Подписывайтесь на наш телегам канал https://t.me/g0mechan

Ссылки на сайты откуда была взята информация:

https://club.dns-shop.ru/blog/t-64-videoigryi/34701-chto-takoe-igrovoi-dvijok/

https://games.mail.ru/pc/articles/feat/ploschadka_dlja_sozdanija_igr_ili_igrovye_dvizhki_by_igrovoe_mnenie_mail_ru/

https://dtf.ru/s/superjam/236542-kak-razobratsya-v-igrovyh-dvizhkah

https://ru.wikipedia.org/wiki/CryEngine

https://ru.wikipedia.org/wiki/Unreal_Engine

https://ru.wikipedia.org/wiki/Unity_(%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D0%BE%D0%B9_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BE%D0%BA)

https://ru.wikipedia.org/wiki/Source