Истории

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

Однажды на The Question спросили:

Что собой представляет «игровой движок», это как библиотека для написания игр?

Вообще будем честными – понятие «движок игры» («Engine» на английском) довольно абстрактное. И беда в том, что далеко не все разработчики подходят к вопросу так, что можно говорить о каком-то «движке». Но это не библиотека.

Грубо говоря, представьте, что вы программист-одиночка, вам проще и быстрее сделать игрушку на Objective-C потому, что вы знаете хорошо этот язык. Вот вы ее сделали, большую часть кода написали вручную. Все красиво и хорошо работает – но где тут «движок»? Игра просто написана на одном из языков программирования. Хотя если вы внедрили какие-то уникальные элементы в код, кто-то другой, может назвать это «самописным движком». Но сами вы вообще не рассматривали игру с этой стороны.

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

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

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

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

Unity 3D является одним из представителей такого подхода. Только он создавался не для какой-то конкретной игры, а именно «на продажу», чтобы разработчики могли быстрее и проще создавать свои проекты. И тут тоже есть доля путаницы, так как помимо программного компонента «движка», у Unity также есть интерфейс – то есть отдельный, специально написанный для пользователей, (а не необходимый самой игре) программный комплекс, который облегчает создание игры, позволяет это делать визуально (а не только с помощью кода) и быстро, насколько возможно. Если говорить утрированно – эдакий «Photoshop» для игр, только который не занимается «рисованием», а позволяет управлять «движком» и надстраивать на нем уже ваши элементы, вашей конкретной игры.

Таких движков много. Какие-то изначально создавались для «продажи», другие были созданы разработчиками для собственных игр, но позже оказывались настолько удобными, что их тоже начинали предоставлять по подписке.

Ниже список некоторых представителей, доступных любому разработчику:

https://unity.com – без него список конечно будет не полным. Так как это один из самых популярных инструментов. И это не случайно: во первых, у него есть бесплатная версия для индивидуальных разработчиков. Во вторых он довольно интуитивен и прост в использования. И в третьих – позволяет создавать игру сразу на множестве современных платформ.

https://www.unrealengine.com – Unreal Engine еще одна знаменитость из мира игр. Сначала он создавался для внутреннего использования, затем его активно продавали и продвигали для корпоративных клиентов, а теперь он доступен любому разработчику. Если не ошибаюсь, у них интересный подход к монетизации. Вам не нужно платить за его использование, но если игра набирает определенный порог по прибыли, компания просто берет от нее процент. Что полезно для «Инди» разработчиков, без начального бюджета.

https://gamesalad.com – возможно не такой знаменитый, но не менее интересный. По заявлениям разработчиков позволит вам создать игру «не написав ни строчки кода». Насколько это правда? Попробуйте сами, но возможно «движок» окажется хорошим вариантом, если у вас мало или вовсе нет знаний в программировании.

https://www.appgamekit.com – еще один менее популярный представитель индустрии, но «отвоевавший» свою аудиторию. Правда из за небольшой популярности, некоторые пользователи жалуются, что в нем долгое время не исправляют ошибки. Есть и плюс – позволяет создавать игры для множества платформ.

https://cocos2d-x.org/ - Cocos 2D популярен при создании казуальных игр. Но «движком» его назвать в полной мере сложно. Это «фрейморк» (видите, снова путаница). Однако и не указывать его было бы глупо, так как при определенных навыках в программировании может быть прекрасным и бесплатным подспорьем при создании вашей игры.

https://developer.valvesoftware.com/wiki/SDK_Installation:ru – Source Engine SDK, еще один знаменитый «движок» от компании Valve. Игры Half-Life 2, Portal созданы на нем, и любой сторонний разработчик тоже может воспользоваться данной платформой, для создания «мода» или собственной игры.

Есть еще множество разных движков. Одни из них используются только для внутреннего использования, другие – доступны для широкой аудитории. Это например:

Doom engine - как понятно созданный для классических игр Doom, а также Heretic, HeXen, Strife

Build Engine - использовался 3D Realms в свое время

Quake engine - кстати считается первым в мире полностью трехмерным движком, созданным компанией id Software

id Tech разных версий - как можно догадаться тоже принадлежит id Software и используется в частности в «реинкарнации» игр серии Doom

Construct Classic - когда то был создан для разработки игр на Windows, но увы более не поддерживается

Crystal Space - создан для разработки разных 3D-приложений

Delta3D - по сути «винегрет» из известных бесплатных проектов, изначально разрабатывался U.S. Navy

Game Editor - кроссплатформенный представитель для создания двухмерных игр

Godot - еще один открытый кроссплатформенный 2D и 3D игровой движок под лицензией MIT

А также: Falco 3D Engine, Infinity Engine, M.U.G.E.N, Nebula Device, OGRE, Piston, Ren'Py, Stratagus, URQ, DX Studio, Game Maker, CryEngine 3 SDK, Blender Game Engine(BGE), Corona, и многие, многие другие.



Автор: Ульященков Сергей
Больше ответов на Яндекс.Кью
Технологии Избранные