На чем лучше делать игры

На чём создавать игры: что есть что в мире геймдева

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

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

Unity, Unreal Engine, Godot, Game Maker Studio, Source, RPG Maker, CryEngine, Creation Engine, C++, C#, JavaScript, Swift, Java, Objective-C, Lua, Python, PyGame, PHP, Scratch, DirectX, PhysX, OpenGL, Havok, Cocos2D…

Большой список, не правда ли? Это только часть технологий, которые используются для создания игр. Если вы очень хотите войти в геймдев, но пока ещё ничего не знаете, сам этот список может вас отпугнуть. Или же по чьему-нибудь совету вы что-то выберете, а потом, освоившись немного, поймёте, что это не совсем то, что вам нужно.

Эта статья — смесь энциклопедии и дорожной карты, которая поможет вам выбрать инструментарий для себя.

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

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

Что есть что

Движки для разработки игр

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

Вот скриншот интерфейса движка Unity:

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

В левом верхнем углу — игровая сцена, на которую можно добавлять объекты, двигать их, убирать и так далее. Ниже расположено игровое окно — в нём можно увидеть, как будет выглядеть готовая игра. Можно даже нажать на кнопку Play и поиграть.

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

Application Programming Interface — интерфейс программирования

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

Список современных движков:

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

Языки программирования

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

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

Если вы уже выбрали какой-то конкретный движок, то и язык нужно выбирать подходящий. Например, в Unity поддерживаются C# и JavaScript
(его модификация, которая называется UnityScript), а в UE4 — С++.

Список языков:

Фреймворки

Вы можете использовать язык, чтобы написать игру без движка. Например, на JavaScript создаются браузерные игры, на C++ или C# — игры для компьютеров, на Java — для устройств на Android, и так далее.

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

Разработчики игры Celeste решили отказаться от движков в пользу фреймворка XNA от Microsoft для языка C#. В итоге у них получился платформер с очень крутым управлением.

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

Список фреймворков:

Библиотеки

Библиотеки, в отличие от фреймворков, не дают почти готовое приложение, но предоставляют определённые инструменты. Самый простой пример — библиотека Math (математика), которая есть практически в каждом языке программирования.

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

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

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

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

Физические библиотеки берут на себя работу (сюрприз!) с физикой: ускорение свободного падения, закон сохранения энергии, импульсы, векторы — самые безобидные примеры.

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

Список графических библиотек:

Список физических библиотек:

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

Что из этого выбрать

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

Критерии выбора движка следующие:

Если хотите, почитайте отзывы, но они могут вас запутать. Так, многие не любят Unity, но разработчиков на нём становится всё больше.

Source

Например, на Source сделаны практически все игры от Valve вроде Half-Life и Portal.

Источник

Лучший игровой движок по версии пользователей хабра

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

В этом обзоре мы рассмотрим популярные в 2016 году игровые движки и проголосуем за лучшие из них.

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

Unity

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

Unity считается одним из лучших игровых движков в отрасли. Есть бесплатная версия которая может быть использована для создания 2D и 3D игр. Она охватывает 24 платформы это: мобильные устройства, VR, десктоп, консоли и веб платформы. Среди известных игр, сделанных в Unity: Temple Run, Deus Ex: The Fall, Assassin ‘s Creed: Identity.

Unreal Engine 4

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

Unreal Engine 4 является еще одним из самых продвинутых движков для разработки игр. Он доступен бесплатно, но нужно платить 5% роялти как только ваш доход превысит отметку в 3000$. В соответствии с информацией с официального сайта вы не платите роялти если создаете: проект для кино, архитектурные проекты и визуализации. Final Fantasy VII Remake — римейк популярной Final Fantasy VII выпущенной еще в 1997 году, и Tekken 7 были созданы с помощью Unreal Engine 4. Пример разработки на UE4 можно посмотреть здесь.

Phaser

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

Phaser это HTML5 движок с открытым исходным кодом, который в последнее время наводит много шумихи. Он хорошо поддерживается Ричардом Дэви и сообществом вокруг него. Это отличный вариант для тех, кто хочет создавать веб-игры. Разработка на Phaser выглядит так.

CryEngine

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

CryEngine один из самых популярных игровых движков, о чем свидетельствует количество «больших игр» созданых на нем: Giant, Sniper II: Ghost Warrior, Cabal II, Far Cry, Ryse: Son of Rome. Он привлек к себе внимание разработчиков после выхода Crysis. Crysis продемонстрировал новый уровень графики благодаря CryEngine. Позже, были выпущены несколько версий CryEngine с поддержкой новых функциональных возможностей.

Turbulenz

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

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

Construct 2

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

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

Corona SDK

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

Corona SDK предоставляет инструменты для создания кросс-платформенных игр. API позволяет создавать 2D игры, а также поможет вам создавать сложные функции, используя API на основе Lua. Кроме того, вы можете монетизировать Corona SDK с помощью Corona Ads. Разработка с помощью Corona достаточно проста благодаря тестированию в режиме реального времени. Пример разработки с помощью CORONA SDK.

GameSalad

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

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

Lumberyard

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

Lumberyard это новый игровой движок выпущен Amazon, дабы помочь разработчикам воспользоваться их инфраструктурой. Amazon теперь работает не только в сфере электронной коммерции, но и в IT. Lumberyard с открытым исходным кодом. Разработка позволяет создавать игровые проекты ААА-класса для настольных ПК, игровых консолей, мобильных устройств и даже VR. За скачивание и использование движка Lumberyard не нужно платить ни копейки, но дополнительные сервисы для разработчиков платные.

libGDX

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

libGDX это кросплатформенный фреймворк который написан на Java и работающий с OpenGL. Предлагает поддержку нескольких платформ для публикации игры. Ingress (предшественник Pokémon GO) был разработан с использованием libGDX. Поддержка сообщества также великолепна, благодаря этому вы можете получить отличную документацию для работы. Пример разработки с использованием libGDX.

HeroEngine

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

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

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

— Сервис по маркетингу и продвижению на Reddit

Источник

Игровые движки: виды и обзор наиболее популярных

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

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

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

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

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

Впервые термин «игровые движки» начал употребляться только в 90-х годах прошлого века, и был связан с кодом одной популярной игры, которая находит упоминание и сегодня. Она создана в распространенном тогда жанре «шутер от первого лица» и называется Doom. Там было все: от объемной графики и звуков до расчета столкновений и скриптов.

Ваш Путь в IT начинается здесь

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

Классификация игровых движков

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

Так, игровые движки можно разделить по использованным для них программам:

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

По типам лицензии игровые движки для создания игр делятся на следующие категории:

Перечень возможностей, которыми может быть снабжен движок:

Источник

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

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

На чем лучше делать игры. Смотреть фото На чем лучше делать игры. Смотреть картинку На чем лучше делать игры. Картинка про На чем лучше делать игры. Фото На чем лучше делать игры

Содержание

Содержание

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

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

Термин «игровой движок» является прямой копией английского «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, например, активно используют в работе над приложениями с дополненной реальностью. А это уже не только игры, но и путеводители, справочники, энциклопедии и многое другое.

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

Источник

Подумайте дважды, прежде чем использовать игровые движки

Холивар о том, нужно ли использовать для создания игр движки, начался сразу после появления первых игровых движков. Этот пост на reddit не является идеальным примером разумных контраргументов против постоянного использования движков, но я считаю, что непреодолимое желание их применения немного отдаёт фанатизмом.

Давайте рассуждать разумно

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

Уровень навыков

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

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

Есть промежуточное состояние между полным отсутствием навыков и профессиональным уровнем. В основном он находится в стране скриптовых языков: Scratch, Game Maker, Pygame, Unreal Blueprints, LOVE2D и т.д. Все они для тех, кто желает получить определённый уровень технических знаний, чтобы быстро достичь результатов.

Если вы опытный/профессиональный программист, способный уверенно освоить стороннее ПО, то можете воспользоваться этим навыком и решить, насколько минималистичным/максималистичным будет ваш подход (будет ли это исключительно минимальный SDL или же полностью оборудованный Unreal Engine).

Цели разработки

Каковы ваши цели в этом проекте? Технологии должны по максимуму упрощать их достижение:

Интерес

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

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

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

Что они дают вам на самом деле?

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

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

Что нужно для вашего проекта?

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

Существуют успешные игры, которым бы послужил плохую службу любой из доступных движков:

Будущее вашей (и нашей) индустрии

При использовании любой технологии стоит задуматься о замыкании. У Джоэла Сполски есть серия статей о бизнес-стратегии разработки ПО, в которой он размышляет о замыкании на продукте. Если вкратце, то его мысль заключается в том, что компании заинтересованы удерживать вас, чтобы вы использовали их продукт, потому что если вы не используете продукт, то они не зарабатывают денег. Мастерами в захвате целых отраслей стали Apple, Microsoft, Adobe и Autodesk, они создают ощущение, что кроме их ПО нет никаких других альтернатив.

Замыкание влияет даже на хобби/соло-разработчиков. У меня есть друг, который постоянно борется с Unity (рушащие совместимость обновления, система прототипирования, навмеш, плохая поддержка 2D. ). Он хочет уйти от Unity, но сильно замкнут на этот движок, потому что большая часть его кода (и данных) полагается на Unity API.

Почему движки покупают?

Unreal и Unity управляются требованиями рынка. Их клиенты AAA-уровня при помощи многомиллионых контрактов определяют курс дальнейшего развития движков. Если вы работаете над игрой, структура которой не совпадает с целями этих AAA-игроков, то разработчики движков не будут так же преданно служить вам. Например, двухмерным, процедурным, экспериментальным, воксельным играм и играм с большими объёмами данных почти всегда приходится искать что-то своё.

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

Действительно ли новые функции упрощают завершение создания вашей игры? На самом ли деле они повышают ценность конечного продукта?

Боритесь с централизацией

Каждый раз, когда одна из студий переходит с собственного движка на Unreal или Unity, компании Epic и Unity набирают в игровой индустрии ещё бОльшую мощь. Поначалу такая централизация может казаться выгодной (у них ведь над движком работают 500 инженеров, отлично!), но через пару десятилетий это станет реальной проблемой. На ум приходит Google: эта компания захватила обширную часть функций, которые люди используют в Интернете, и это стоило им потери большой доли приватности.

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

Будущее может быть за открытыми исходниками

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

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

Качество ПО

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

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

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

Каковы альтернативы?

Вместо использования движка вы просто пишете игру.

Новички часто думают, что для создания игры им нужен движок. С большой долей вероятности им стоит отбросить такую точку зрения. Начинающие будут впустую тратить время на реализацию бесполезных функций движка, вместо того, чтобы дать игре решить самой, что ей абсолютно необходимо. Только игра должна управлять тем, что нужно от движка (разумеется, в качестве контрпримера можно привести Unity, как образец подхода «движок в первую очередь»; в поддержку такой концепции у Unreal Engine 4 есть Paragon, Fortnite и Unreal Tournament, не говоря уже о десятках лет опыта выпуска бесконечного количества игр в предыдущих версиях движков).

Использование библиотек

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

Вот несколько библиотек, которые могут заполнить пробел между работой «с нуля» и использованием полностью готового движка:

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

Кроме того, и Unreal, и Unity поддерживают импорт динамически подключаемых библиотек. Это значит, что можно начать работать с библиотеками, а затем перейти на Unreal без необходимости переписывать весь базовый код геймплея, потому что он находится в библиотеке. Чтобы код оказался достаточно гибким для таких огромных изменений, требуется серьёзная продуманность, но я думаю, что для среднего или долговременного проекта оно того стоит.

В заключение

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

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

Источник

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

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