Чем отличаются игровые движки

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

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

Содержание

Содержание

Если вы регулярно читаете статьи о компьютерных играх, то обязательно сталкивались со словами «игровой движок». И вы знаете, что он может быть быстрым, тормозным, продуманным, неудачным, привычным и так далее. А что это за «движок», который скрывается под красивой оберткой текстур и скриптов компьютерной игры? Это же не двигатель автомобиля. Тогда что? Программный код? Комплекс приложений для программистов и игроков? Разберемся немного подробнее.

Понятие «игрового движка»

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

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

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

В результате ряд компаний занялся разработкой именно игровых движков, а разработчики игр стали покупать на них лицензии, как это получилось с Unreal Engine или id Tech 3. Стоимость лицензии может составлять от нескольких тысяч до миллионов долларов. Но при этом надо отметить, что для некоммерческого использования многие игровые движки, например, популярные Unity и Unreal Engine 4 доступны бесплатно. Остановимся на этих движках немного подробнее.

Особенности популярных игровых движков Unity и Unreal Engine 4

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

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

Unreal Engine 4

Этот движок смело можно назвать легендой. Его разработка началась в 1998 году и с тех пор он постоянно модернизируется, дополняется и совершенствуется. Современный Unreal Engine 4 — это движок, на котором пишут игры для любых платформ и операционных систем, начиная от ОС Windows и заканчивая всеми современными консолями — Playstation 4, Xbox One, а также мобильными платформами, в том числе и iOS.

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

Unity

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

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

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

Как создаются игры с помощью игровых движков

Для разработчика игровых приложений движки представляют собой программную среду, в которой он ведет разработку проекта. Ее использование позволяет не заниматься такими рутинными вещами, как описание работы с графикой, звуком и физической моделью. Но это не значит, что программировать не придется ничего. Разработчику все равно потребуется писать скрипты для внутриигровых действий. На Unity, например, потребуется работа с C#, да и на Unreal Engine знание языков программирования не помешает.

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

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

Использование игровых движков позволяет избавиться от написания кода для очень многих рутинных моментов, так как, кроме самих движков, для них существует огромное количество библиотек и расширений. С их помощью первые простейшие игры на Unity можно создать уже через несколько часов изучения платформы. Специально для начинающих в Unity существует масса проектов вроде Creator Kit и Microgame, предлагающих большое количество исходных материалов для написания простых приложений в 2D и 3D. На Unreal Engine также есть множество библиотек и уроков, позволяющих быстро освоить программную среду и начать писать простые игровые приложения.

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

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

Так что же такое игровой движок для игрока и разработчика?

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

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

Источник

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

Всём привет! Меня зовут Дядиченко Григорий, и я CTO Foxsys. В разработке я порядка 8 лет, а занимаюсь игровой или AR/VR разработкой последние лет 6. Сразу скажу, что в данной статье нет простого ответа “этот игровой движок лучше”, и она не претендует на объективность. Я лишь расскажу мнение с точки зрения технического директора и человека за плечами которого порядка 40 коммерческих проектов. Если вам интересно — добро пожаловать под кат.

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

Как выбираются технологии для проекта?

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

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

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

Бизнес-часть принятия решения составляет из себя ответы на вопросы: “Насколько просто найти специалистов на рынке на данной технологии?”, “Какую технологию дороже поддерживать?”, “Какой экспертизой на данный момент обладает команда?” + возможности партнёрства и прочие бизнес-причины.

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

Какой движок лучше выбрать новичку?

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

Конечно, с моим бекграундом в 6 лет Unity разработке можно было бы предположить, что выбор уже решён и что тут дальше читать то. Но мой ответ вас, возможно, удивит. На данный момент я считаю, что, если вы совсем новичок, ещё не погрузились ни в один движок и только начинаете свой путь лучшим выбором будет Unreal Engine. И пока сообщество не начало обвинять меня в предательстве я объясню свою точку зрения.

Я считаю, что эти движки в большинстве задач связанных с 3д графикой по сути идентичны. Чуть ниже я подробнее распишу почему. Мой выбор на данный момент связан не столько с технологическими причинами, сколько с работой компаний со своими комьюнити. И на данный момент я вижу в разы больше интересных программ, активностей, образовательных мероприятий и прочего со стороны Epic Games. На Unity, конечно, сидит почти весь мобильный геймдев, в 3 раза больше вакансий чем на UE и так далее. Но думаю, это со временем изменится. Да и 134 (на момент написания статьи) открытых позиций это немало. Современная разработка устроена так, что в целом вы можете учить что угодно, что вам больше нравится, и вы всегда найдёте себе работу. Поэтому это мнение на тему новичков, так как если вы выбрали для себя Unity — это отличный выбор. 6 лет работаю на Unity и горя не знаю. А вот для совсем новичков я вижу просто больше образовательных возможностей и интересного со стороны эпиков. Но всё может измениться.

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

На Unreal Engine лучше графика?

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

Это чистой воды миф совершенно непонятно откуда взявшийся. В 3д графика движка настолько хороша, насколько хорош его свет и Post Processing. И с точки зрения что не особо напрягаясь и где можно накрутить, они для меня практически идентичны. Вот собственно наилучшее сравнение, которое я находил.

Что же лучше для проекта?

Чем отличаются игровые движки. Смотреть фото Чем отличаются игровые движки. Смотреть картинку Чем отличаются игровые движки. Картинка про Чем отличаются игровые движки. Фото Чем отличаются игровые движки

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

Единственное, хотя я немного не в контексте движка UE, но я бы его не стал бы брать для 2D проектов в принципе. Так как последние время Unity выпускает много крутых инструментов для 2D разработки. Поэтому мне кажется, что пока в этой области UE рассматривать нет особого смысла. Есть конечно менее популярные движки для этой задачи типа Defold или же Game Maker, но их я бы не стал брать по бизнес-причинам. Потому что я не уверен, что не столкнусь с проблемой того, что мне неоткуда будет расширять команду, так как специалистов на них днём с огнём не сыщешь.

И оба движка я бы в целом не рассматривал бы для web проектов. Если в UE я просто не знаю, что с поддержкой веба (может её там и нет) То с Unity прикол в двух основных проблемах. Первая, что там до сих пор нет поддержки мобильных браузеров. Да, на топовых телефонах оно даже как-то работает, но это очень рискованная затея брать технологию, которая официально не поддерживается для продакшен решения. А второе и самое главное — это время загрузки. Основной прикол веба в быстрой доставке контента до пользователей (помимо того, что там нет ограничений и правил сторов). Поэтому время загрузки Unity убивает эту фишку напрочь. Для веб проектов я чаще всего беру pixi.js, three.js, playcanvas и react. Что в этом списке забыл реакт? Это длинная история для другой статьи, если кому-то это интересно.

Собственно, по этим же причинам я для себя пока не вижу смысла переходить с Unity. За 40 коммерческих проектов разного масштаба я ни разу не упирался в стену, чтобы что-то было нереально сделать на Unity и реально на Unreal Engine. Плюс для меня, как для бывшего С++ разработчика (невысокого уровня) основным минусом UE является С++. C# как язык в разы приятнее. Кто знает undefined behavior и сложные утечки памяти, тот поймёт.

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

Открытые исходники — это хорошо?

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

Подводя некий итог

Источник

Как разобраться в игровых движках

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Помимо своих собственных поведений в игровом движке есть несколько стандартных типов поведений: форма столкновения (Bounding Box/Sphere/Capsule/…), физическое тело (Rigidbody), отрисовщик (Renderer), камера (Camera), создатель частиц (Particle Manager), аниматор (Animator) и ещё десятки других типов. Всеми этими поведениями вы можете управлять на лету.

Очень важным концептом является событие (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#. Использование условно-бесплатное, при превышении определённого порога прибыли придётся платить за лицензию.

Что ж, теперь вы знаете, как выбрать движок и какие опции доступны. А теперь дерзайте! Скачивайте, тыкайте, экспериментируйте. На сайтах движков вы можете найти очень много шаблонов и примеров, а на YouTube (особенно английской его версии) можно найти буквально сотни и иногда даже тысячи гайдов по тем или иным сторонам разработки. Ждём ваши работы!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *