ЧТО ТАКОЕ ИГРОВОИ ДВИЖОК

Какие они бывают и как выбрать себе подходящий, если вы только начинаете постигать азы разработки

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

Что такое игровой движок

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

Обобщённо говоря, игровой движок ответственен за организацию и поведение игровых объектов, а также за их отображение на экране. Ваша же задача — выбрать, как они будут выглядеть и как себя вести. Для этого движок предоставит вам возможность создавать и удалять объекты, задавать их параметры, добавлять логику и управлять ресурсами.

Какие виды игровых движков бывают

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

Касательно внутреннего устройства игровые движки делятся на:

Если мы говорим о фреймворках, то игра пишется на том же языке, на котором написан фреймворк. Если же мы говорим о полноценном ПО, то программировать в них можно на:

Если говорить о лицензии, то тут тоже есть несколько вариантов:

Возможности, которые может предоставлять или не предоставлять игровой движок (список неокончательный):

Чем больше возможностей предоставляет движок, тем сложнее и дольше им пользоваться из-за огромного количества кнопочек и удлинённого времени компиляции, так что подбирать движок лучше не из соображений «чтобы умел побольше», но «взять достаточно для моих нужд — и не больше».

Ну и последнее разделение, которое относится к движкам лишь косвенно — это их дата создания и популярность. Чем раньше был создан движок и чем популярнее он, тем легче вам будет с ним работать, поскольку создатели движка наверняка уже починили огромное количество багов (да, это тоже важно, в игровых движках могут быть баги и их может быть много), а в сети вы сможете найти очень много обучающих материалов.

Типичное устройство игры внутри игрового движка

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

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

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

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

Но это и не единственный способ заставить игру работать, ещё есть раздел Update, в который можно написать код и который будет выполняться постоянно, в каждый игровой тик (tick). Тик — это самая минимальная единица времени, которую игра может обеспечить. Обычно тик составляет 16 миллисекунд, но если у вас плохо с оптимизацией, то он увеличится. Без этой функции не обойтись, и некоторые вещи, например плавное передвижение и проверка столкновений, пишутся именно там. Но чем меньше кода написано в этой секции — тем лучше.

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

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

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

Ну и маленький список движков с классификацией

Сразу предупреждаю, что список далеко не окончательный, в мире буквально каждый день кто-нибудь создаёт новый движок программирования — просто потому что это очень интересное испытание. Здесь же указаны более-менее популярные движки, о которых хорошо отзываются и которые вы можете начать использовать прямо сейчас, а их порядок ни в коей степени не отражает мои мнения о них.

Construct 3 — настоящий ветеран индустрии. Используется для создания 2D-игр и достаточно популярен. У движка больше настроек, с недавних пор есть версия для браузера, очень много примеров и шаблонов. Логика на визуальном интерфейсе. Но большинство возможностей скрыто за крайне дорогой лицензией. Бесплатная версия ограничена.

Stencyl — ещё один движок для создания 2D-игр. Имеет открытый исходный код и и приятный интерфейс. Логика на визуальном интерфейсе. Мало известен, но полностью бесплатен (платно только публикация на ПК).

GDevelop — другой движок для создания 2D-игр, набирающий огромную популярность. Так же имеет открытый исходный код и приятный интерфейс. Логика на визуальном интерфейсе. Полностью бесплатен.

RPG Maker — очень популярный движок для создания пиксельных RPG. Именно для RPG движок и заточен, но он подойдёт и для похожих жанров. Много встроенных ассетов и настроек для персонажей. Есть бесплатный 30-дневный пробник, дальше придётся платить.

Средние по сложности

Game Maker Studio — очень популярный движок для разработки 2D-игр. Позволяет программировать логику на адаптированном Lua и даёт много возможностей. Есть бесплатный 30-дневный пробник, дальше придётся платить.

Godot — очень многообещающий движок с открытым исходным кодом, который грозится «заменить Unity» в своей распространённости. Godot поддерживает 2D и 3D графику, а так же несколько языков программирования (C++, C# и модификация Python) и имеет свой визуальный скриптинг. Его использование полностью бесплатно.

Ren’Py — самый популярный движок визуальных новелл, на котором написаны тысячи новелл. Использует Python в качестве языка программирования логики. Полностью бесплатен

Monogatari — простой движок визуальных новелл на веб-технологиях. Мало известен, но выглядит интересно, к тому же движок на Javascript легче исправить под свои нужды. Код пишется на том же языке. Полностью бесплатен.

Unity — самый популярный в мире движок для разработки игр. Поддерживает 2D и 3D графику, имеет в себе невиданное количество вспомогательных модулей, огромный магазин ассетов и поддерживает большинство платформ. К сожалению, с ростом популярности движок становится всё сложнее и тяжелее в освоении, но всё равно очень доступен. Программирование на C#. Использование условно-бесплатное, при превышении определённого порога прибыли придётся платить за лицензию.

Unreal Engine — настоящий гигант, используемый профессионалами в индустрии кино и игр. Имеет самую лучшую графику на рынке, кучу инструментов внутри и ежемесячно раздаваемые бесплатные ассеты на любой вкус. В качестве программирования используется визуальный интерфейс, но есть возможность писать и на C++. Инструмент для профессионалов, поэтому очень просто что-то испортить. Использование бесплатно, но с каждой проданой игры надо отчислять процент.

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

Cocos2d — популярный фреймворк, портированный на несколько языков (C, Python, JS, Swift, C#). С его помощью сделано много игр в том числе для мобильных устройств.

Phaser — набирающий популярность фреймворк для разработки игр на Javascript.

libGDX — завоевавший доверие фреймворк для разработки игр для Java.

SFML — популярный фреймворк для разработки игр на C++

Немного про 2д движки

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

Unity является универсальным игровым движком, который подходит для разработки как 2D, так и 3D игр. Он отлично подходит для создания игр любого жанра и масштаба, включая кроссплатформенные проекты.

Unity обладает обширными возможностями, большим сообществом разработчиков и поддержкой множества платформ. Если вам нужно создать 2D игру с возможностью расширения до 3D в будущем или если у вас уже есть опыт работы с Unity, то этот движок может быть хорошим выбором.

Godot специализируется на разработке 2D игр и предоставляет удобный в использовании визуальный редактор. Он отлично подходит для небольших и средних проектов в 2D, особенно если вам нужна простота в настройке и гибкость в разработке.

Godot имеет малый размер, легко усваивается новичками и имеет низкий порог входа в программирование. Если вы хотите быстро создать 2D игру с минимальными затратами на обучение, Godot может быть отличным выбором.

Cocos2d является фреймворком, который предоставляет мощные инструменты для разработки 2D игр на нескольких языках программирования. Он отлично подходит для разработчиков, предпочитающих программирование на C++ или JavaScript. Cocos2d обладает обширной документацией, поддержкой различных платформ и хорошим сообществом разработчиков.

Если вы хотите создать высокопроизводительную и масштабируемую 2D игру, Cocos2d может быть отличным выбором.

Construct — это интуитивно понятный движок для создания 2D игр без необходимости писать код. Он отлично подходит для начинающих разработчиков или тех, кто хочет быстро прототипировать и создать простую 2D игру. Construct предоставляет множество готовых решений, интегрированных инструментов и поддержку различных платформ.

Немного про 3д движки

Unity является одним из самых популярных 3D-движков и широко используется для разработки игр. Он предоставляет обширный набор инструментов для создания и управления 3D-сценами, анимацией, физикой, звуком и другими аспектами игрового процесса. Unity также поддерживает множество платформ, включая ПК, консоли и мобильные устройства.

Unreal Engine также является мощным 3D-движком, который широко применяется в индустрии геймдева. Его особенности включают визуально привлекательную графику, продвинутую физику и эффекты, интуитивный визуальный скриптинг и сильный инструментарий для разработки многопользовательских игр.

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

Godot Engine: Godot Engine — это открытый и бесплатный 3D-движок с активным сообществом разработчиков. Он обладает простым в использовании интерфейсом и интуитивным языком программирования. Godot поддерживает создание 3D-сцен, анимацию, физику и имеет гибкую систему компонентов для разработки игр различных жанров.

Чем между собой отличаются 2д и 3д движки, на каких удобнее и быстрее работать

2D и 3D движки отличаются в нескольких аспектах:

Что касается выбора удобного и быстрого разработчика игр, это зависит от множества факторов, таких как опыт разработчика, требования проекта и доступные ресурсы.

Если тебе нужно разработать простую 2D-игру с ограниченными средствами и опытом, то 2D движок может быть лучшим выбором.

Если нужны более сложные 3D-эффекты, взаимодействие с трехмерной средой и у тебя есть необходимые ресурсы, то 3D движок может подходить лучше.

Важно также учесть, что навыки программирования и понимание работы движков также будут влиять на скорость разработки игр. Если ты уже знаком с определенным движком или языком программирования это может повлиять на твою скорость разработки игр. Если у тебя уже есть опыт работы с 2D или 3D движками, то разработка игр на этой платформе может быть быстрее и удобнее для тебя.

Некоторые разработчики предпочитают использовать 2D движки для создания игр, потому что они предоставляют более простой и интуитивный интерфейс, а также меньшую сложность в разработке и отладке.

2D движки также могут быть быстрее в работе и требовать меньше ресурсов компьютера для выполнения.

С другой стороны, если тебе нужны более сложные и реалистичные эффекты, физическая модель и трехмерная среда, то использование 3D движков может быть предпочтительнее.

Они предоставляют больше гибкости в создании трехмерных объектов, сцен и анимаций. Однако разработка в 3D может требовать больше времени и усилий, особенно если у вас нет опыта работы с 3D-графикой и моделированием.

В целом, выбор между 2D и 3D движками зависит от ваших конкретных потребностей, опыта и ресурсов. Поэтому рекомендуется ознакомиться с различными движками, попробовать их и принять решение на основе своих конкретных требований и возможностей.

Как выбрать игровой движок

Так как же выбрать игровой движок? Выбор игрового движка зависит от множества факторов, включая твои навыки в разработке, тип игры, платформы, на которых ты планируешь выпустить игру, и твои предпочтения по функциональности и языкам программирования. Каждый игровой движок уникален по своему, и каждый игровой движок очень хорошо справляется с отдельными целями.

В данной статье я

Графический движок (англ. ; иногда «рендерер» или «визуализатор») — промежуточное программное обеспечение (англ. ), программный движок, основной задачей которого является визуализация (рендеринг) двухмерной или трёхмерной компьютерной графики. Может существовать как отдельный продукт или в составе игрового движка. Может использоваться для визуализации отдельных изображений или компьютерного видео. Графические движки, использующееся в программах по работе с компьютерной графикой (таких, как 3ds Max, Maya, Cinema 4D, Zbrush, Blender), обычно называются «рендерерами», «отрисовщиками» или «визуализаторами». Само название «графический движок» используется, как правило, в компьютерных играх.

Основное и важнейшее отличие «игровых» графических движков от неигровых состоит в том, что первые должны обязательно работать в режиме реального времени, тогда как вторые могут тратить по несколько десятков часов на вывод одного изображения. Вторым существенным отличием является то, что начиная приблизительно с 1995-1997 года, графические движки производят визуализацию с помощью графических процессоров, которые установлены на отдельных платах — видеокартах. Программные графические движки используют только центральные процессоры.

Графические движки в компьютерных играх

Скриншот из бенчмарка «Fresnel Reflections and Refractions» (рус. ) из пакета «OGRE Demos pack». В данном тесте демонстрируется работа движка с водой, отражениями и преломлениями в водной среде. Параметры визуализации: оригинальное разрешение 1600*1200 пикселей, OpenGL-движок, 16-кратное полноэкранное сглаживание (FSAA), 32-битный цвет. В кадре присутствует 23653 треугольника.

Как правило, графические движки не распространяются отдельно от игровых. Единственного графического движка без дополнительных компонентов и инструментария недостаточно для создания игры, поэтому разработчики движков продают лишь игровые движки с полным набором инструментов и компонентов. Однако это правило не относится к свободному программному обеспечению. Энтузиасты создают свободные графические движки и свободно их распространяют. Впоследствии разработчики игр могут объединить свободный графический движок с физическим, звуковым и другими компонентами и создать на основе их полноценный игровой движок.

Графические движки в специализированных программах

Список примеров в этой статье не основывается на авторитетных источниках, посвящённых непосредственно предмету статьи.

Добавьте ссылки на источники, предметом рассмотрения которых является тема настоящей статьи (или раздела) в целом, а не отдельные элементы списка. В противном случае список примеров может быть удалён.

«Мраморный чихуахуа» — изображение, созданное с использованием встроенного движка Blender

Большинство популярных программ по работе с трёхмерной графикой имеет минимум один встроенный движок, но часто имеется возможность подключить внешний в качестве плагина. К самым известным графическим движкам, которые могут использоваться как плагины в множестве программ, относятся:

Графические движки с GPU-ускорением и трассировкой лучей

Начиная с 2009 года, в связи с развитием графических процессоров, а именно в связи с увеличением их многофункциональности и гибкости, начали разрабатываться и выходить графические движки реального времени, которые используют мощности GPU для расчётов. Как правило, такие движки реализуют освещение через метод трассировки лучей, а геометрия иногда представлена вокселями, а не полигонами. Данные движки предназначаются для работы как в компьютерных играх, так и в других интерактивных и не интерактивных приложениях, включая научные расчёты.

На домашних компьютерах 1980-х из-за отсутствия стандартизации и ограничений памяти портирование было ручным и трудоёмким: переносилась только логика работы, а остальные части — вывод графики на экран, вызов прерываний и т. п. — писалось заново. Тем не менее, в те времена появились игровые движки Z-Machine и SCI от компаний Infocom и Sierra соответственно. В 1980-е компания Incentive Software начала разработку Freescape — переносимого 3D-ядра.

Сам же термин «игровой движок» появился в середине 1990-х годов — в это время окончательно установилось доминирование IBM-совместимых компьютеров, а быстрые процессоры и «хитрое» программирование дали 30 и более кадров в секунду в трёхмерных играх. Игры Doom и Quake от id Software оказались настолько популярными, что другие разработчики вместо того, чтобы работать с чистого листа, лицензировали основные части программного обеспечения и создавали свою собственную графику, персонажей, оружие и уровни — «игровой контент» или «игровые ресурсы». Движок Quake был использован в более чем десяти проектах и дал серьёзный толчок развитию middleware-индустрии.

Дальнейшее усовершенствование игровых движков привело к сильному разделению между рендерингом, скриптингом, художественным дизайном и дизайном уровней. Сейчас для типичной команды разработчиков игр является вполне обычным иметь в составе столько же художников, сколько и программистов.

Шутеры от первого лица остаются преобладающими пользователями сторонних игровых движков, но сейчас такие движки также используются в других жанрах. Например, RPG Morrowind и MMORPG Dark Age of Camelot основаны на движке NetImmerse, в то время, как Oblivion и Fallout 3 используют новую версию данной технологии — Gamebryo. Известная MMORPG Lineage II построена на движке Unreal Engine 2 (несмотря на то, что данный движок изначально предназначался для использования в шутерах).

Игровые движки также используются в играх, первоначально разработанных для игровых консолей; например, движок RenderWare используется в таких франшизах как Grand Theft Auto и Burnout.

Современные игровые движки — одни из самых сложных в написании приложений, зачастую состоящие из десятков различных компонентов, каждый из которых можно настраивать по отдельности под нужды игры. Сложность разработки такого рода систем наглядно показывает один из комментариев к теме на сайте Slashdot.org, описывающий набор типовых навыков, необходимых разработчику.

В дополнение к многократно используемым программным компонентам, игровые движки предоставляют набор визуальных инструментов для разработки. Эти инструменты обычно составляют интегрированную среду разработки для упрощённой, быстрой разработки игр на манер поточного производства. Эти игровые движки иногда называют «игровым подпрограммным обеспечением» (сокр. П ПО; англ. middleware), так как, с точки зрения бизнеса, они предоставляют гибкую и многократно используемую программную платформу со всей необходимой функциональностью для разработки игрового приложения, сокращая затраты, сложность и время разработки — все критические факторы в сильноконкурирующей индустрии видеоигр.

Как и другие ППО решения, игровые движки обычно платформо-независимы и позволяют некоторой игре запускаться на различных платформах, включая игровые консоли и персональные компьютеры, с некоторыми внесёнными в исходный код изменениями (или вообще без них). Часто игровое ППО имеет компонентную архитектуру, позволяющую заменять или расширять некоторые системы движка более специализированными (и часто более дорогими) ППО компонентами, например, Havok — для физики, FMOD — для звука или SpeedTree — для рендеринга. Некоторые игровые движки, такие как RenderWare, проектируются как набор слабосвязанных ППО компонентов, которые могут выборочно комбинироваться для создания собственного движка, вместо более традиционного подхода расширения или настройки гибкого интегрируемого решения. Тем не менее расширяемость достигнута и остаётся высокоприоритетной в игровых движках из-за широких возможностей их применения. Несмотря на специфичность названия, игровые движки часто используются в других типах интерактивных приложений, требующих графику в реальном времени, таких как рекламные демо-ролики, архитектурные визуализации, обучающие симуляторы и среды моделирования.

Некоторые игровые движки предоставляют только возможности 3D-рендеринга в реальном времени вместо всей функциональности, необходимой играм. Эти движки доверяют разработчику игры реализацию остальной функциональности или её сбор на основе других игровых ППО компонентов. Такие типы движков обычно относят к «графическим движкам», «движкам рендеринга» или «3D-движкам» вместо более содержательного термина «игровой движок». Однако эта терминология используется противоречиво: так, многие полнофункциональные игровые 3D-движки упомянуты просто как «3D-движки». Некоторые примеры графических движков: RealmForge, Ogre 3D, Power Render, Crystal Space и Genesis3D. Современные игровые или графические движки обычно предоставляют граф сцены — объектно-ориентированное представление 3D-мира игры, которое часто упрощает игровой дизайн и может использоваться для более эффективного рендеринга огромных виртуальных миров.

Чаще всего 3D-движки или системы рендеринга в игровых движках построены на графическом API, таком как Direct3D или OpenGL, который обеспечивает программную абстракцию GPU или видеокарты. Низкоуровневые библиотеки, например, DirectX, SDL и OpenAL, также используются в играх, так как обеспечивают аппаратно-независимый доступ к другому аппаратному обеспечению компьютера, такому как устройства ввода (мышь, клавиатура и джойстик), сетевые и звуковые карты. До появления аппаратно-ускоряемой 3D-графики использовались программные визуализаторы. Программный рендеринг всё ещё используется в некоторых инструментах моделирования для рендеринга изображений, для которых визуальная достоверность важнее производительности (количество кадров в секунду) или когда аппаратное обеспечение компьютера не удовлетворяет требованиям, например, не поддерживает шейдеры.

Что такое игровой движок?

Когда-то для каждой игры делали собственный движок, но в наше время большинство пользуется универсальными решениями, которые доступны кому угодно. Но что вообще такое игровой движок, что он делает и какими они бывают? Рассказываем об этом понятным языком в нашем материале.

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

Впрочем, это не всегда так, и в некоторых случаях созданный для игры движок был от нее практически неотделим. Это часто происходило в ранние годы развития игровой индустрии, когда для каждой из игровых консолей выпускалась отдельная версия, которая могла разительно отличаться от оригинала. Например, так произошло с популярной в России и ближнем зарубежье игре про Аладдина, версии которой для Super Nintendo и SEGA Mega Drive были не особо похожи друг на друга.

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

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

Во-первых, существует два подхода, определяющих, как разработчики в принципе работают над игрой:

Также движки могут отличаться друг от друга способом распространения, ведь, как и с любым другим программным обеспечением, разработчики этого софта чаще всего хотят получить вознаграждение. Впрочем, так бывает не всегда:

Впрочем, не всегда можно говорить об игровой платформе как об универсальных движках: часто бывает так, что технологическая начинка игры складывается из множества технологий, каждая из которых не является полноценным движком, но выполняет важную функцию.

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

Один из популярных примеров — технология SpeedTree. Этот движок изначально разрабатывался для работы с деревьями и растительностью и с середины двухтысячных помогает разработчикам игр в самых разных жанрах создавать уникальные леса и заполнять пустые пространства флорой. Современная версия движка стала создавать настолько фотореалистичное изображение, что теперь используется не только для разработки игр, но и применяется для создания кино.

Другой известный пример — движок Euphoria. Это был физический движок, который обсчитывал поведение объектов в играх, где пользователь мог каким-то нетривиальным способом взаимодействовать с окружением. Одной из таких игр была GTA 4 — многие до сих пор вспоминают, что нетрезвый главный герой падал там максимально реалистично, как и пешеходы, пострадавшие в ДТП.

За что отвечает движок в играх?

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

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

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

Также не стоит забывать, что движок отвечает за так называемую внутриигровую логику. То есть, например, система торговли, когда игрок может покупать и продавать товары у игровых персонажей, также реализуется на движке и работает на его основе, как и возможность использовать ранее приобретенные вещи. Разные эффекты от этих предметов и их применения также лежат на совести движка, и качество их работы тоже обеспечивается программным решением.

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

Как создать игру с помощью игрового движка?

Так как же в итоге с помощью всех этих мощных движков создать собственную игру? Ответ что для обычного человека, что для профессионального разработчика прозвучит примерно одинаково: необходимо запустить программную среду в том или ином виде и что-то там делать.

Как уже было упомянуто, разные движки предоставляют разработчику разные подходы к созданию игр. В некоторых случаях получится ограничиться лишь управлением процессом в окошках редактора, перетаскивая логические блоки, — например, так построена система Blueprints в Unreal Engine 4. Пользователю достаточно лишь научиться правильно работать с интерфейсом редактора движка и строить там правильные цепочки, а код будет автоматически сгенерирован.

В то же время этот же Unreal Engine 4 подразумевает базовое знание пользователем языков C++ или C#, на которых можно программировать более сложные схемы. На самом деле, большинство современных игровых движков все-таки требуют навыка программирования: даже если большинство вещей можно создать с помощью интерфейса и «перетаскивания квадратиков», то сложный функционал придется добавлять своими силами.

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

Тут на помощь приходят магазины с контентом — у всех популярных платформ сейчас такие есть. Там за большую или небольшую плату, а часто и вовсе бесплатно, можно получить те самые трехмерные модели и объекты окружения. Умение пользоваться такими площадками и находить там нужные ресурсы тоже является важной частью профессии современных разработчиков игр.

Обзор самых популярных движков для игр

Unreal Engine — не просто линейка знаменитых игровых движков, а практически лидер направления в создании крупнобюджетных приключенческих игр. Услугами компании Epic пользовались создатели The Callisto Protocol, Final Fantasy, Tekken, Gears of War, Mortal Kombat, Batman: Arkham и многих других. А с недавних пор все больше студий переходит на использование Unreal Engine вместо движков собственной разработки: на пятой версии прямо сейчас разрабатывают новые части «Ведьмака», Mass Effect, S. T. A. L. K. E. R. и других хитов.

Прямо сейчас актуальными можно назвать две версии: Unreal Engine 4 и 5. Для четвертой версии выпущено гораздо больше обучающих материалов и внутриигровых ассетов, поскольку он находится на рынке уже почти десять лет и за это время на нем были выпущены сотни игр. В то же время Unreal Engine 5 станет стандартом будущего, поскольку в нем используются самые передовые технологии, упрощающие создание реалистично выглядящих игр.

В Unreal Engine 5 появится сразу пачка программных компонентов, которые значительно упростят разработку игр на нем и позволят без огромных бюджетов делать очень красивые игры. Например, технология Lumen реализует глобальное освещение (то есть свет будет идти от неба, а не как сейчас в большинстве игр — от маленьких искусственных объектов), Nanite изменяет программный рендеринг объектов, что сделает их более качественными и менее ресурсоемкими, а также MetaHuman — система, генерирующая реалистичные модели людей.

При этом создатели движка из компании Epic предоставляют достаточно гибкую ценовую политику: если разработанная игра приносит прибыль меньше чем 3 тысячи долларов в квартал, то использование любой версии Unreal Engine бесплатно. Если же проект приносит больше указанной суммы, то необходимо приобрести лицензию и начать выплачивать процент с этой прибыли.

Нет у движка и ограничений по платформам, на которых можно выпускать свои игры. Хоть обе версии Unreal Engine в первую очередь создавались для невероятно красивых игр для игровых приставок PlayStation и Xbox, а также мощных ПК, все равно на данных движках делали и мобильные игры для устройств на Android и iOS.

Unity

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

Система оплаты здесь еще проще и понятнее, чем у Unreal: для некоммерческих проектов движок полностью бесплатен, а с выручки коммерческих нужно выплачивать процент комиссии создателям Unity.

Ограничений по жанрам у этого движка нет — на нем сделан и известный мобильный шутер Dead Trigger, и не менее известная стратегия для ПК Endless Legend. При этом популярность движка обеспечивается простотой его освоения — хоть для создания игр и понадобится что-то программировать, а не только использовать встроенный редактор, в целом он гораздо проще, чем тот же Unreal и другие движки.

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

Любите делиться своим мнением о технике? Тогда напишите обзор товара в «Эльдоблоге» и получите до 1000 бонусов на новые покупки!

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

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

Сейчас есть множество движков со своими нюансами. Мы решили помочь вам с выбором движка, отобрав лучшие для маленьких и крупных проектов. При отборе смотрели на стоимость движков, сложность изучения и поддержку со стороны разработчиков.

Для небольших игр

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

Подходит только для 2D. Можно разрабатывать игры на веб (HTML5), смартфоны (iOS, Android) и ПК (Windows, Mac OS X, Linux).

Construct интуитивно понятен и универсален — его используют даже для обучения детей. Редактор позволяет создать игру за пару часов: выбрать бесплатные спрайты, музыку из встроенного магазина и настроить физику. Также в блочную систему можно встроить код на JavaScript.

Движок работает в браузере. Подписка на одного человека стоит 4199 рублей в год, бизнес-версия — от 6199 рублей.

Подходит для 2D. Платформы: веб (HTML5), смартфоны (iOS, Android) и ПК (Windows, Mac OS X).

GDevelop — почти аналог Construct. Подходит для 2D-игр любого жанра, позволяет управлять объектами парой кликов мышкой. Есть функция Live Preview, которая позволяет вносить изменения прямо во время игры.

Движок бесплатен и поддерживается и распространяется сообществом программистов-энтузиастов, поэтому могут встречаться баги.

Подходит для 2D. Платформы: веб (HTML5), смартфоны (iOS и Android), ПК (Windows, Mac OS X, Ubuntu) и консоли (Xbox, PlayStation).

GameMaker Studio также прост в освоении, все взаимодействия можно настраивать перетягиванием. Но магазин шаблонов беден.

У движка есть свой код программирования GML (Game Maker Language), который увеличивает функционал. Структурно язык похож на C, довольно прост и функционален. Его легко выучить по туториалам создателей.

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

Ролевых игр и визуальных новелл

Есть движки, которые созданы для конкретных жанров.

Создан для двухмерных ролевых игр и простых адвенчур. Платформы: веб (HTML5), смартфоны (iOS, Android) и ПК (Windows, Mac OS X).

В движке есть готовые анимации, карты, оружие, способности персонажей, внутриигровые предметы и редактор создания героев.

Движок популярен и на нём было создано несколько известных игр: To the Moon, Corpse Party, Ao Oni, Mad Father и Angels of Death.

Лицензия стоит $80, покупать нужно один раз, есть пробный период.

Движок создан для разработки визуальных новелл. Платформы: смартфоны (Android, iOS) и ПК (Windows, Linux, Mac OS X).

Небольшие и лёгкие проекты можно создавать с помощью скриптов, для более сложных проектов нужно использовать язык программирования Python.

На Ren’Py тоже создавали популярные игры: Бесконечное лето, Doki Doki Literature Club! и RE: Alistair++.

Для крупных проектов

Если ваш проект требует больше функций, понадобятся более сложные движки.

Подходит для 2D и 3D-игр. Платформы: веб (HTML5), смартфоны (iOS, Android), ПК (Windows, Mac OS X и Linux), консоли Xbox, PlayStation и VR (Steam VR, Gear VR).

Unreal Engine — популярный движок, на котором созданы многие известные игры. Например, Fortnite, Star Wars Jedi: Fallen Order, King’s Bounty II, BioShock: Infinite, трилогия Batman: Arkham и Hellblade II.

В UE можно работать на языке C++ и с системой визуального программирования Blueprints, которая заменяет написание кода на работу с нодами. Ноды — логические блоки с настраиваемыми свойствами, которые можно соединять между собой, выстраивая логику программы. Функционала Blueprints хватит чтобы создать простенькую игру без использования кода.

У движка есть Unreal Engine Marketplace — магазин, куда разработчики выкладывают готовые ассеты, музыку, плагины и прочие элементы для разработки. Большинство из них платные, но есть и бесплатные, а для платных устраивают распродажи.

Компания Epic Games, сделавшая движок, продолжает улучшать и упрощать его. В Unreal Engine 5 добавила систему Lumen, которая автоматически обрабатывает источники света, и Nanite, которая выводит на новый уровень качество проработки графики и геометрии и упрощает работу с 3D-моделями.

Работать с UE можно бесплатно, но при доходе от $1 млн за всё время с момента публикации игры Epic Games забирает 5% от заработка.

Подходит для 2D и 3D. Платформы: веб (HTML5), смартфоны (iOS и Android), ПК (Windows, Mac OS X) и консоли (Xbox, PlayStation).

Ещё один популярный движок, на котором вышло много известных игр. Например, Cities Skylines, Subnautica, Fall Guys, Ori and The Blind Forest, Hitman GO и Beat Saber.

Для создания игр на Unity понадобится разобраться во внутреннем редакторе и изучить C#.

В интернете есть много материалов для обучения от энтузиастов, а сами создатели движка выпустили серию материалов для новичков. Unity активно поддерживает сообщество разработчиков и создаёт онлайн и оффлайн-платформы для обмена опытом.

В магазине Unity Asset Store есть готовые платные и бесплатные модели, текстуры, анимации и шаблоны игр. Иногда проходят распродажи.

Движок бесплатен для инди-разработчиков, если доход не превышает $100 тыс. в год. Пакеты для студий стоят от $399 в год.

Подходит для 2D и 3D-игр. Платформы: веб (HTML5), смартфоны (iOS и Android), ПК (Windows, Mac OS X) и консоли (Xbox, PlayStation).

Пока движок только набирает популярность, поэтому известных игр ещё нет.

У Godot минималистичный интерфейс и есть подробная документация. Он поставляется с языком программирования GDScript на основе Python. Его можно освоить по подробным гайдам от разработчиков. Также Godot поддерживает C++ и C#, а GDNative API позволяет другим языкам связываться напрямую с механизмом движка. Ещё создатели работают над VisualScript — системой программирования на основе узлов без кода.

Движок вышел недавно, поэтому обучающих материалов по нему немного и решения многих проблем придётся искать самому.

Александр

Здравствуйте, меня зовут Александр, уже более 10 лет я занимаюсь ремонтом компьютером, этот сайт я создал чтобы делиться полезной и практической информацией с вами! Буду благодарен, если вы опишите свой опыт или мнение в комментарии, надеюсь, что данная информация принесёт только пользу

Оцените автора
WindowsComp.ru
Добавить комментарий