Bmw-rumyancevo.ru

БМВ Мастер — Автожурнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Игровой движок

Игровой движок

Игрово́й движо́к (англ. game engine ) — базовое программное обеспечение компьютерной игры [1] . Разделение игры и игрового движка часто расплывчато, и не всегда студии проводят чёткую границу между ними. Но в общем случае термин «игровой движок» применяется для того программного обеспечения, которое пригодно для повторного использования и расширения, и тем самым может быть рассмотрено как основание для разработки множества различных игр без существенных изменений [2] .

Содержание

  • 1 Определение
  • 2 Специализация
  • 3 История
  • 4 Обзор
    • 4.1 Аппаратная абстракция
  • 5 См. также
  • 6 Примечания
  • 7 Литература
  • 8 Ссылки

Определение [ править | править код ]

Термин «игровой движок» появился в середине 1990-х в контексте компьютерных игр жанра шутер от первого лица, похожих на популярную в то время Doom. Архитектура программного обеспечения Doom была построена таким образом, что представляла собой разумное и хорошо выполненное разделение центральных компонентов игры (например, подсистемы трёхмерной графики, расчёта столкновений объектов, звуковой и других) и графических ресурсов, игровых миров, формирующие опыт игрока, игровые правила и другое. Как следствие, это получило определённую ценность за счёт того, что начали создаваться игры с минимальными изменениями, когда при наличии игрового движка компании создавали новую графику, оружие, персонажей, правила игры и тому подобное [2] .

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

Большинство игровых движков разработано и настроено для того, чтобы запустить определённую игру на определённой платформе. И даже наиболее обобщённые многоплатформенные движки подходят для построения игр определённого жанра, например, шутеров первого лица или гонок. В данном контексте можно более аккуратно сказать, что игровой движок становится не оптимальным при его применении не для той игры или той платформы, для которой разработан. Данный эффект проявляется от того, что программное обеспечение представляет собой набор компромиссов, основанных на тех предположениях, какой должна быть игра. Например, проектирование рендеринга внутри зданий приведёт к тому, что движок, скорее всего, не будет таким же хорошим для открытых пространств. В первом случае движок может использовать BSP-дерево для отрисовки объектов, близких к камере. В то же время для открытых пространств могут использоваться менее точные способы, а также более активно применяются технологии отрисовки с разной степенью детализации, когда более далёкие объекты прорисовываются менее чётко, так как занимают меньшее количество пикселей [3] .

Специализация [ править | править код ]

Как правило, игровые движки специализированы в рамках жанра компьютерных игр. Так, движок, спроектированный для двумерного файтинга на боксёрском ринге, будет существенно отличаться от движка для массовой многопользовательской игры, шутера от первого лица или стратегии в реальном времени. Но в то же время движки имеют существенные общие части — все трёхмерные игры, невзирая на жанр, требуют взаимодействия игрока посредством клавиатуры, геймпада и/или мыши, некоторую форму трёхмерного рендеринга, средства индикации, как на лобовом стекле (например, печать текста поверх графического изображения), звуковую систему и многое другое. Так, движок Unreal Engine, несмотря на то, что был спроектирован для шутера от первого лица, успешно использовался для создания игр во множестве других жанров, таких как шутер от третьего лица Gears of War, приключенческая ролевая игра Grimm (англ.) русск. , или футуристичная гонка Speed Star [4] .

Исторически шутеры от первого лица относятся к играм, которые наиболее технологически сложны, так как им необходимо представлять игроку иллюзию трёхмерного мира, и делать это для активных действий в реальном времени. Движки шутеров от первого лица больше обращают внимание на такие технологии, как эффективный рендеринг трёхмерных миров, отзывчивая игровая механика контроля и прицеливания, высокая точность анимации оружия и рук управляемого игроком персонажа, широкий спектр ручного вооружения, «прощающая» модель движения игрока и его столкновения с препятствиями, высокое качество анимации и искусственного интеллекта неигровых персонажей. При этом характерны малая масштабируемость в многопользовательских играх (типична поддержка до 64 игроков) и повсеместная ориентация на игровой процесс deathmatch [5] . Графические движки игр данного жанра используют ряд оптимизаций в зависимости от текущего окружения игрока, но вместе с тем предъявляются требования по анимации персонажа, аудио и музыке, динамики твёрдого тела (англ.) русск. , кинематике и другим технологиям [6] .

Движки платформеров обращают больше внимания на анимацию персонажа и его аватара, и при этом им не требуется той реалистичности, которая присуща трёхмерным шутерам. Для платформеров характерно применение ряда технологий: множество способов перемещения (движущиеся платформы, лестницы, верёвки, подпорки и другие), элементы из головоломок, использование следящей за персонажем камеры от третьего лица, рендеринг нескольких слоев геометрии в сочетании с системой столкновений объектов, и другие [7] .

Файтинги ориентированы на богатую анимацию, точность ударов, возможность задания сложных комбинаций посредством кнопок и/или джойстика и тому подобное. Анимационные персонажи предъявляют требования движкам по высокой детализации, дополнительно движки обеспечивают возможность изменения и добавления спецэффектов (шрамов после ударов, выступление пота и тому подобное), а также предоставляются возможности симуляции причёски, одежды и других элементов [8] .

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

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

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

История [ править | править код ]

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

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

Более поздние игры, такие как Unreal 1998 года (движок Unreal Engine) и Quake III Arena (на движке id Tech 3) 1999 года, были спроектированы с применением данного подхода, с отдельно разработанными движком и наполнением. Практика лицензирования такой технологии оказалась полезным вспомогательным доходом для некоторых разработчиков игр. Так, стоимость одной лицензии на коммерческий игровой движок класса high-end может варьироваться от 10 тыс. до 3,75 млн $ (в случае Warcraft III) [ источник не указан 3823 дня ] , а число лицензиатов может достигать несколько десятков компаний (как для Unreal Engine). По крайней мере, многократно используемые движки ускоряют и упрощают разработку игры, что является ценным преимуществом в конкурирующей индустрии компьютерных игр.

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

Читать еще:  Что такое разгон двигателя

Шутеры от первого лица остаются преобладающими пользователями сторонних игровых движков, но сейчас такие движки также используются в других жанрах. Например, 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-графики использовались программные визуализаторы. Программный рендеринг всё ещё используется в некоторых инструментах моделирования для рендеринга изображений, для которых визуальная достоверность важнее производительности (количество кадров в секунду) или когда аппаратное обеспечение компьютера не удовлетворяет требованиям, например, не поддерживает шейдеры.

Обзор игровых движков для iPhone

Ниже представлен весьма подробный обзор основных бесплатных игровых движков для itouch – устройств с открытым исходным кодом.

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

1) Cocos2d – бесплатный некомерческий движок с открытым исходным кодом, распространяется по лицензии LGPL. Список игр разработанных на этом движке можно посмотреть здесь . Код доступен здесь .
Прекрасный движок для 2Д-игр, включает в себя поддержку движка Chipmunk, как бы 2-в-1. Обработка звука осуществляется при помощи OpenAL.
У продукта огромное количество разработчиков и очень много примеров использования и туториалов. Более подробное описание движка было на Хабре .

2) Sio2Engine – прекрасный игровой движок, написанный на C, есть как бесплатная версия с исходным кодом, так и инди-версия за 49$. Бесплатная лицензия требует от вас показывать в начале игры заставку, указывающую на использования вами этого игрового движка. Это, несомненно, справедливо, так как качество движка на высоте и разработчиков необходимо поддерживать. Основной минус движка в том, что он поддерживает только 3Д-формат файлов Blender, но это легко обходится плагинами для Blender, которые позволяют конвертировать файлы в другие 3Д-форматы.
В SiO2 входит хороший набор учебных пособий. Он также обеспечивает поддержку для сложных функций, таких как скелетная анимация, а также физика мягких тел, которые описаны в руководствах.
С версии 1.4. движок совершил настоящий прорыв в производительности. Так что рекомендуем использовать эту версию и старше. Это, вероятно, самый лучший движок для обработки 3Д-графики на touch-устройствах.
Исходный код доступен здесь . Кстати, сообщество продает исходные коды разработанных игр по стоимости от 49 до 249$. Внимательно ознакомьтесь с лицензией перед использованием.

3) Oolong Engine – 3D-движок написанный на C ++, обеспечивает отличную производительность. Недостатком Oolong является то, что его трудно использовать для тех, кто не знаком с OpenGL ES.
Oolong поддерживает широкий спектр функций, а также очень хорошее представление, которое, тем не менее очень сложно использовать. Этот движок низкого уровня предназначен для программистов, так что если вы начинающий в разработке компьютерных игр, то я бы на вашем месте, держаться подальше от этого движка.
Исходный код доступен на Google Groups ( тут ), документации очень мало, но сообщество разработчиков активно и вы можете получить ответы на свои вопросы в группе. Распространяется под MIT – лицензией.
Этот продукт подойдет скорее тем, кто хочет создать свой собственный игровой движок.

4) Irrlicht Engine – так же написанный на С++ движок. Сайт разработчиков не содержит официального порта под iphone, но, судя по слухам, вы можете найти версию OpenGL ES в репозитории.
Irrlicht это отличный движок с открытым исходным кодом, который поддерживает очень широкий спектр форматов файлов, и лучшая поддержка для классического BSP формата. Активное сообщество разработчиков опубликовало так же множество других инструментов, которые были созданы для движка.
Не смотря на это, сложно рекомендовать Irrlicht, потому что нет официального порта на iphone, и если вы почитаете форумы там мало кто готов помочь тем, кто пытается заставить двидок работать на iPhone, хотя некоторые из них создали игровые приложения для iPhone.
Irrlicht распространяется по лицензии Zlib.

5) Love – опенсорсный 2Д движок, который использует Lua как основной язык разработки. Это скорее даже не движок, а фреймворк для разработки игр. Разработчики говорят о крайней простоте создания игр на нем. Распространяется по Zlib – лицензии.

6) Aves Engine – проект еще в разработке, но авторы уверяют, что это первый HTML-5 движок для игр. Так как touch устройства поддерживают HTML-5 то это стоящая для изучения тема.

7) Antiryad Gx — этот движок примечателен тем, что поддерживает большое количество платформ и операционных систем:
Платформы — Playstation 2, PSP, Xbox, DS, Wii, IPhone/IPod Touch;
Операционные системы — AmigaOs v3.0, Dos, Linux x86, MacOSX x86, Windows 32.
Причем для всех платформ и операционных систем движок имеет единый API, и для того, чтобы портировать игру на другую консоль или ОС, достаточно поменять настройки инициализации движка и скомпилировать игру заново.Кстати, об API — хоть он и содержит более 4000 функций, он очень прост в освоении и использовании. Каждая функция доступна на любом из трех поддерживаемых языков: C, C++, Gel. Gel — это встроенный бейсикоподобный скриптовый язык, созданный специально для Antiryad Gx.
Их примеров под платформу iOS можно выделить невзрачные Dark Area 2 и Isla Dragon . Скачать можно отсюда

Включены в обзор так же популярные коммерческие движки.

1) Bork 3D – Этот движок разработан для программистов, тут нет удобных визуальных тулзов, никаких WYSIWYG-редакторов. Для примера работы движка можно посмотреть на игру Anytime Golf . Что действительно привлекательно в этом игровом движке, так это то, что автор продает его с исходным кодом и стоимость начинается от 49$.

Читать еще:  Что такое прогревные обороты двигателя

2) iTGB – двухмерный движок с чрезвычайно простым визуальным редактором игровых сцен. Хороший по показателям скорости и чрезвычайно хороший по удобству создания игровых сцен. Полный исходный код включен в поставку, так что это отличный движок для начала создания игр. Cтоимость начинается от 750$.

3) iTGE – трехмерный движок от создателей iTGB. Насколько я смог понять, он базируется на ядре движка Oolong. Так же как и в iTGB есть удобный визуальный редактор сцен и обширный набор функций. В раннем прошлом этот движок был использован для создания многих Инди-игр для Windows – платформы. стоимость начинается от 650$

4) Shiva Ston3d – Шива содержит визуальный редактор для дизайна сцен и, если почитать форумы разработчиков, то, видимо, этот движок стоит за многими наиболее популярными тайтлами в app store. Этот движок использует Lua – подобный скриптовый язык для разработки. Самые большие минусы движка – он не нативен для iphone и не факт, что выши приложения на нем пропустят модераторы Apple и то, что редактор Шивы работает в среде виндовс, что для мак-разработчиков как то нелепо. Придется работать с виртуальной системой. Стоимость движка от 250$

5) Unity 3D – известный за удобство использования игровой движок, который развивается уже достаточно много лет. Содержит визуальный редактор для сценографии и использует С# и язык программирования Boo. Самое важное качество движка – удобство разработки на нем, однако, не смотря на несколько игр в магазине Эпл, этот движок не нативен для разработки под iphone. Стоимость начинается от 199-499$. Имеется триал-версия, ограниченная временем работы.

6) Polarbit Fuse – пока не очень изученный продукт, разработчики так и не ответили на мое письмо, возможно вы будете более удачливы.

7) Airplay – судя по всему, не совсем движок. Но игры на нем все-таки делали, судя по анонсам разработчиков этого SDK. Бесплатный для ознакомления. Цена начинается от 100 долларов.

UDK — не иначе, как Unreal Development Kit, призван для создания реалистичных объектов с невероятной графикой и фантастическим миром. Такой набор инструментов используют Infinity Blade и Epic Citadel .
Unreal Development Kit (или Unreal Engine 3) – это полноценная профессиональная система разработки игр. Инструментарий игрового движка Unreal Engine 3 даёт вам возможность создавать большие игры с передовой системой визуализации и 3D-моделированием. Этот знаменитый движок и инструменты являются одними из лучших.
На данный момент версия для разработки под iOS находится на стадии бета-тестирования, но уже СДК доступен бесплатно здесь . Полная версия будет платной. Бесплатная версия будет урезана.

9) iXors3d — это ветвь от движка Xors3d для разработки 2D/3D-игр на iPhone и iPod touch (iPad поддерживается пока в экспериментальном режиме). Это весьма мощный и удобный игровой 3D-движок, унаследовавший возможности Xors3d, который развивался изначально как библиотека для Blitz3d. Он достаточно прост и удобен для использования.
Движок iXors3d на писан на языке программирования C++ с некоторыми вкраплениями чистого C. Поэтому он довольно-таки быстр. Но портируемые проекты требуют некоторой доработки. iXors3d позволяет работать с сенсорным дисплеем, реализовывать управление по multitouch-системе.
iXors3d использует собственный графический 3D-движок на основе OpenGL ES 1.1. Но разработчики планируют внедрить в следующие версии OpenGL ES 2.0, что повысит характеристики 3D-графики. Поддерживаются 3D-модели форматов .b3d (скелетная анимация) и .md2 (per-vertex). Запланирована поддержка .3ds и .ms3d. Поддерживаются текстуры в форматах: .bmp, .jpg, .png, .tif, .gif, .xbm. Полная версия стоит от 100$

11 доступных движков для тех, кто хочет начать создавать свои игры

Инструменты и ресурсы для разработки игр становятся все более доступными для всех, даже если у вас нет опыта программирования. Часто эти инструменты также доступны бесплатно. Вот список из 11 игровых движков / редакторов. Он облегчит задачу тем, кто хочет начать создавать игры.

Фото: instabug.com

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

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

CRYENGINE

Коммерческий кроссплатформенный 3D-движок, разработанный Crytek. Он использовался для таких игр, как Prey (2017) и Everybody’s Gone to the Rapture.

Фото: store.steampowered.com

Предназначен для разработки: 3D-игр.

Платформы: Windows.

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

Стоимость: Бесплатный, пока ваш проект не заработает более 5000 долларов в год, впоследствии взимается 5-процентный сбор.

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

GAMEMAKER

Кроссплатформенный коммерческий движок для 2D-игр, разработанный YoYo Games. Он использовался для таких игр, как Undertale, Hyper Light Drifter и Minit.

Фото: kanobu.ru

Для разработки: 2D-игр.

Платформы: Windows или macOS.

Языки программирования: Использует собственный язык сценариев, называемый GameMaker Language (GML), и язык визуальных сценариев, называемый Drag and Drop (DnD).

Стоимость: Бесплатная пробная версия на 30 дней, потом нужно купить лицензию за $39 в год.

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

GDEVELOP

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

Фото: gdevelop-app.com

Для разработки: 2D-игр.

Платформы: Windows, macOS, Linux или браузерная версия.

Языки программирования: Нет, использует интерфейс Drag-and-drop.

Стоимость: Бесплатно.

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

GODOT

Игровой движок с открытым исходным кодом для создания 2D-и 3D-игр. Отличается простотой в освоении и подходит для совместной работы целой команды.

Фото: github.com

Для разработки: 2D- и 3D-игр.

Платформы: Windows, macOS и Linux.

Языки программирования: GDScript, C# и визуальный скриптинг.

Стоимость: Бесплатно.

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

LUMBERYARD

Коммерческий кроссплатформенный движок для 3D-игр, разработанный Amazon. Он основан на более старой версии CryEngine. Он был использован для таких игр, как Star Citizen и The Grand Tour Game.

Фото: robertsspaceindustries.com

Для разработки: 3D-игр с интеграцией Twitch и многопользовательских функций.

Платформы: Windows.

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

Стоимость: Бесплатно.

Обучение: Существует бесплатная серия обучающих видеороликов и видео-бесед о более специфических особенностях движка.

REN’PY

Игровой движок для создания визуальных новелл с открытым исходным кодом. Он использовался для таких игр, как Doki Doki Literature Club, Butterfly Soup и One Night, Hot Springs.

Фото: doki-doki-literature-club.fandom.com

Для разработки: Визуальных новелл.

Платформы: Windows, macOS и Linux.

Языки программирования: Язык скриптов Ren’Py и Python.

Стоимость: Бесплатно.

Обучение: Существует бесплатный текстовый гайд, как сделать простую игру в Ren’Py, и дополнительные текстовые руководства для более специфической настройки вашего проекта.

RPG MAKER

Коммерческий игровой движок, разработанный Degica. Он разработан специально для создания классических игр в стиле JRPG без необходимости уметь программировать. Он был использован для таких игр, как Corpse Party и Rakuen.

Фото: medium.com

Для разработки: Ролевых 2D-игр.

Платформы: Windows и macOS.

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

Стоимость: $79.99.

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

TWINE

Редактор с открытым исходным кодом для интерактивных текстовых историй. Он был использован для таких игр, как Lionkiller и The Uncle Who Works For Nintendo.

Для разработки: Интерактивных текстовых квестов.

Платформы: Windows, macOS или браузерная версия.

Языки программирования: Собственный язык, но также поддерживает HTML, Javascript, и CSS.

Стоимость: Бесплатно.

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

UNITY

Кроссплатформенный коммерческий игровой движок, разработанный Unity Technologies. Он использовался для таких игр, как Untitled Goose Game, Ori and Will of the Wisps и Hollow Knight.

Фото: epicgames.com

Для разработки: 2D- и 3D-игр.

Платформы: Windows, macOS и Linux.

Языки программирования: C#.

Стоимость: Бесплатно для личного пользования предоставляется студентам и любителям, а также небольшим компаниям, которые зарабатывают менее 100 000 долларов в год. Помимо этого, существуют годовые планы, начинающиеся с 399 долларов в год или 40 долларов в месяц.

Читать еще:  Renault logan обороты двигателя

Обучение: Unity предоставляет некоторые бесплатные ресурсы, чтобы помочь новичкам начать работу с движком. Но в рамках программы Unity Learn Premium она предоставляет гораздо больше возможностей, включая курсы, учебные пособия и даже сертификаты. Unity Learn Premium в настоящее время бесплатна до 10 июня 2020 года, но обычно стоит 15 долларов в месяц.

UNREAL

Кроссплатформенный коммерческий игровой движок, разработанный Epic Games. Он использовался для таких игр, как Fortnite, ремейка Final Fantasy VII и Octopath Traveller.

Фото: playground.ru

Для разработки: 3D-игр.

Платформы: Windows.

Языки программирования: C++ и Blueprints Visual Scripting.

Стоимость: Бесплатно, но с 5-процентным сбором от общего дохода игры, если она принесет более 3000 долларов в квартал.

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

VN MAKER

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

Фото: gamingtrend.com

Для разработки: Визуальных новелл.

Платформы: Windows, macOS и Linux.

Языки программирования: JavaScript и CoffeeScript.

Стоимость: $69.99.

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

Зачем разработчикам игр писать свой собственный движок вместо использования уже существующих?

Я заметил, что многие крупные и известные разработчики игр часто разрабатывают свои собственные движки. Примеры включают Valve, Crytek, Ubisoft, Epic Games и Square-Enix.

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

Зачем разработчикам игр писать свой собственный движок вместо использования уже существующих?

Существует несколько причин, по которым студия может «строить» вместо «покупать» свои технологии:

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

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

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

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

Обратите внимание, что некоторые из перечисленных вами студий (в частности, Crytek и Epic) перестали пытаться доминировать непосредственно на игровом рынке и почти наверняка сделали гораздо больше в качестве поставщиков промежуточного программного обеспечения, чем разработчиков игр.

« Не построенный здесь синдром» ;

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

Я тестировал различные типы игровых движков, API рендеринга и тому подобное, в частности, Ploobs, UNITY WaveEngine, XNAFinalEngine, Love, Ogre и т. Д., И многое другое . Я хотел начать писать игры — я скачал много, ища хороший удобный и хорошо документированная точка входа .

Моя проблема, однако, была в то время, когда я понятия не имел, что происходит под двигателем. Я хотел хорошего контроля, и я хотел рамки, которые я знаю, как тыльную сторону моей руки. Мне пришла в голову идея «ЭЙ! Я думаю, что единственный способ узнать, как это работает и понять это, — это попытаться создать свой собственный движок целиком и полностью с нуля. Большая часть моей истории программирования была связана с веб-технологиями и решениями для обработки». — это была совершенно новая игра с мячом для меня.

Что я и сделал в итоге.

Поэтому я решил установить XNA, так как я уже знал C #, и начал думать о том, как или с чего мне начать. Мне нужна идея

Я решил, что, несмотря ни на что, я пойду прямо в 3D .

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

Я приступил к новому пути реализации Шейдерных инстансингов (и изучил HLSL, пока я там занимался), я отказался от встроенных в XNA объектов Model и Effect, чтобы вместо этого написать свои собственные замены. Сначала у меня были проблемы с пониманием потоков VBO; Я ломал вещи — я выходил в интернет, задавая вопросы об инстансинге, и продолжал, пока я, наконец, не понял, что делает GPU. Это окупилось; теперь у меня было более двадцати тысяч тестовых объектов, масштабирующихся в моем окне просмотра после пары дней отладки моего VBO с помощью PIX (dxsdk).

Теперь у меня было «некоторое» представление о том, как работают конвейеры рендеринга, но это еще не было сделано — я закончил тем, что создал свое собственное игровое состояние, камеру, пост-эффекты и объекты-сущности, отодвинув их от XNA Content Pipeline, создав собственный загрузчики (личная неприязнь к объекту XNB), создали сложную цепочку геометрии с сортировкой по глубине и разделенным состояниями, а также имели экземпляры спрайтов и текста, которые проецировались на игровую сцену.

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

Теперь мой двигатель был в основном стабильным и почти законченным. Он не идеален: скрипты честные, а графический интерфейс совсем не великолепен. Но я все еще любил это. Тысячи строк кода, ресурсов и мультимедиа спрятались в частном git-репозитории объемом 2 ГБ, и все головные боли, которые мне пришлось пережить, пытаясь сделать такой тип разработки, которого я никогда раньше не делал. Каждое препятствие, которое я преодолел, было извлеченным уроком и облегчением.

Я снял почти все, что хотел в нем.

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

Этот проект все еще находится в моем репозитории GIT.

Мой второй проход по написанию нового движка (на этот раз на MonoGame) проходит хорошо. Когда что-то ломается, это легче исправить. Меньше беспорядка. Я надеюсь публично показать мою игру где-то в этом году, потому что я, как правило, слишком привязан к своему коду.

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

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

Ссылка на основную публикацию
Adblock
detector