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

В последнее время я занят тем, что пишу игровой движок на C++. Я пользуюсь им для создания небольшой мобильной игры Hop Out . Вот ролик, записанный с моего iPhone 6. (Можете включить звук!)


Your browser does not support HTML5 video.


Hop Out - та игра, в которую мне хочется играть самому: ретро-аркада с мультяшной 3D-графикой. Цель игры - перекрасить каждую из платформ, как в Q*Bert.



С чего бы кому-то хотеть написать игровой движок? Возможных причин много:

  • Вы - ремесленник. Вам нравится строить системы с нуля и видеть, как они оживают.
  • Вы хотите узнать больше о разработке игр. Я в игровой индустрии 14 лет и всё ещё пытаюсь в ней разобраться. Я даже не был уверен, что смогу написать движок с чистого листа, ведь это так сильно отличается от повседневных рабочих обязанностей программиста в большой студии. Я хотел проверить.
  • Вам нравится ощущение контроля. Организовать код именно так, как вам хочется, и всегда знать, где что находится - это приносит удовольствие.
  • Вас вдохновляют классические игровые движки, такие как AGI (1984), id Tech 1 (1993), Build (1995), и гиганты индустрии вроде Unity и Unreal.
  • Вы верите, что мы, индустрия игр, должны сбросить покров таинственности с процесса разработки движков. Мы пока не очень-то освоили искусство разработки игр - куда там! Чем тщательнее мы рассмотрим этот процесс, тем выше наши шансы усовершенствовать его.

Игровые платформы в 2017-ом - мобильные, консоли и ПК - очень мощные и во многом похожи друг на друга. Разработка игрового движка перестала быть борьбой со слабым и редким железом, как это было в прошлом. По-моему, теперь это скорее борьба со сложностью вашего собственного произведения . Запросто можно сотворить монстра! Вот почему все советы в этой статье вращаются вокруг того, как сохранить код управляемым. Я объединил их в три группы:

  1. Осознайте, что сериализация - обширная тема.

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

Используйте итеративный подход

Мой первый совет - не задерживаясь заставьте что-нибудь (что угодно!) работать, затем повторите.


По возможности, начните с образца приложения, которое инициализирует устройство и рисует что-нибудь на экране. В данном случае я скачал SDL , открыл Xcode-iOS/Test/TestiPhoneOS.xcodeproj , затем запустил на своём iPhone пример testgles2 .



Вуаля! У меня появился замечательный вращающийся кубик, использующий OpenGL ES 2.0.


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



Затем я реализовал управление двумя стиками, чтобы перемещать Марио. (Поначалу я рассматривал идею создания dual-stick шутера. Впрочем, не с Марио).



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



К тому моменту я отказался от формата OBJ и написал скрипт на Python для экспорта собственных JSON-файлов из Blender. Эти JSON-файлы описывали заскиненный меш, скелет и данные анимации. Я загружал эти файлы в игру с помощью библиотеки C++ JSON .



Как только всё заработало, я вернулся в Blender и создал более проработанного персонажа (Это был первый сделанный и зариганный мной трёхмерный человек. Я им весьма гордился.)



В течение следующих нескольких месяцев я сделал такие шаги:

  • Начал выделять функции работы с векторами и матрицами в собственную библиотеку трёхмерной математики.
  • Заменил.xcodeproj на проект CMake
  • Заставил движок запускаться и на Windows, и на iOS, потому что мне нравится работать в Visual Studio.
  • Начал перемещать код в отдельные библиотеки "engine" и "game". Со временем, я разделил их на ещё более мелкие библиотеки.
  • Написал отдельное приложение, чтобы конвертировать мои JSON-файлы в бинарные данные, которые игра может загружать напрямую.
  • В какой-то момент убрал все библиотеки SDL из iOS-сборки. (Cборка для Windows всё ещё использует SDL.)

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




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


Готов поспорить, что больше времени тратится при противоположном подходе: пытаться заранее продумать архитектуру, которая будет делать всё, что вам понадобится. Две моих любимых статьи про опасности чрезмерной инженерии - The Vicious Circle of Generalization Томаша Дабровски и Don’t Let Architecture Astronauts Scare You Джоэла Спольски.


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


Итеративный подход дал мне куда более элегантную архитектуру, чем я мог бы вообразить, глядя на чистый лист бумаги. iOS-сборка моего движка сегодня на 100% состоит из оригинального кода, включая собственную математическую библиотеку, шаблоны контейнеров, систему рефлексии/сериализации, фреймворк рендеринга, физику и аудио микшер. У меня были причины писать каждый из этих модулей самостоятельно, но для вас это может быть необязательным. Вместо этого есть множество отличных библиотек с открытым исходным кодом и разрешительной лицензией, которые могут оказаться подходящими вашему движку. GLM , Bullet Physics и STB headers - лишь некоторые из интересных примеров.

Дважды подумайте, прежде чем слишком обобщать

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

Время от времени нарушайте принцип DRY

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

  • Owned<> для динамически выделяемых объектов, имеющих единственного владельца.
  • Reference<> использует подсчёт ссылок чтобы позволить объекту иметь несколько владельцев.
  • audio::AppOwned<> используется кодом за пределами аудио микшера. Это позволяет игровым системам владеть объектами, которые аудио микшер использует, такими как голос, который в данный момент воспроизводится.
  • audio::AudioHandle<> использует систему подсчёта ссылок, внутреннюю для аудио микшера.

Может показаться, что некоторые из этих классов дублируют функциональность других, нарушая принцип DRY . В самом деле, в начале разработки я пытался повторно использовать существующий класс Reference<> как можно больше. Однако, я выяснил, что время жизни аудио-объекта подчиняется особым правилам: если объект закончил воспроизведение фрагмента, и игра не владеет указателем на этот объект, его можно сразу же поместить в очередь на удаление. Если игра захватила указатель, тогда аудио-объект не должен быть удалён. А если игра захватила указатель, но владелец указателя уничтожен до того, как воспроизведение закончилось, оно должно быть отменено. Вместо того чтобы усложнять Reference<> , я решил, что будет практичнее ввести отдельные классы шаблонов.


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

Использовать разные соглашения о вызове - это нормально

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


В моём C++ движке некоторые функции принадлежат классами, а некоторые - нет. Например, каждый противник в игре - это класс, и бо́льшая часть поведения противника реализована в этом классе, как и следовало ожидать. С другой стороны, в моём движке выполняются вызовом sphereCast() , функции в пространстве имён physics . sphereCast() не принадлежит какому-либо классу - это просто часть модуля physics . У меня есть система сборки, которая управляет зависимостями между модулями, что сохраняет код достаточно (для меня) хорошо организованным. Заворачивание этой функции в произвольный класс никоим образом не улучшит организацию кода.



Как минимум, постарайтесь представить, насколько сложными будут ваши требования. Если вы делаете маленькую игру вроде Flappy Bird, с несколькими ассетами, вам скорее всего не придётся много думать о сериализации. Вероятно, вы можете загружать текстуры напрямую из PNG и этого будет достаточно. Если вам нужен компактный бинарный формат с обратной совместимостью, но вы не хотите разрабатывать свой - взгляните на сторонние библиотеки, такие как Cereal или Boost.Serialization . Не думаю, что Google Protocol Buffers идеально подходят для сериализации игровых ресурсов, но они всё равно стоят изучения.


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


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

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

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

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

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

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

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

Немного предыстории.

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

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

5 Место

Stencyl – конструктор игр, который поможет создать вам игры разных жанров в формате 2D , для таких платформ как Android , IOS , Windows а так же игры в формате Flash и HTML 5.

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

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

С помощью данного движка можно создавать онлайн игры, так называемые флеш игры, в форматах Flash и HTML 5 которые можно запускать в браузере и размещать на вебсайтах.

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

В этом конструкторе стоит отметить наличие магазина, в котором можно загрузить уже готовые сценарии, графику и многое другое.

Примером работы движка является множество онлайн флейш игр, которых полным-полно в сети интернет.

· Простота работы.

· Большое количество видео уроков и инструкций, а также поддержка на официальном сайте.

· Конструктор является полностью бесплатным.

· Возможность коллективной работы над игрой.

· Возможность применения собственных скриптов на языке ActionScript 3.0.

· Разработка игр для разных платформ.

· Англоязычный интерфейс.

· Не сразу понятный интерфейс.

4 Место

Kodu Game Lab – это визуальный редактор позволяющих создавать трехмерные игры без каких любо знаний языков программирования. Этот движок дает возможность создавать игровые миры, карты и размещать в них персонажей, для которых потом можно создавать задания или сценарии.

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

Kodu Game Lab имеет много возможностей и на её базе можно создавать любой жанр игр. Из-за того, что интерфейс программы очень простой любой желающий может создать самую примитивную игру со своим сценарием и миром.

· Большое количество инструментов.

· Простота работы.

· Создание абсолютно любого жанра игр.

· Русскоязычный интерфейс.

· Не требуется наличие мощного компьютера.

· Плохая оптимизация.

· Низкие возможности создания игр.

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

· Невозможность создания своих текстур и добавления своих материалов.

3 Место

Unity – это мощный движок для создания игр. Этот движок является кроссплатформенным, позволяет создавать игры под популярные ОС, такие как Windows , MacOS , Linux , Android , IOS , а также для игровых консолей Xbox , Wii .

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

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

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

Основные языки программирования, которые вам нужны для создания простых игр это C# и JavaScript.

Стоит заметить наличие магазина скинов, текстур и много другого, а также возможность использовать собственно созданные материалы в движке Unity .

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

Что бы понять все возможности данного движка советую ознакомиться с популярными видео играми, которые были полностью созданы на Unity – это Cities Skylines, Hearthstone: Heroes of Warcraft, Rust, Firewatch, Superhot, Kerbal Space Program.

· Ориентировочно-понятный интерфейс.

· Создание абсолютно любого жанра игр.

· Кроссплатформенность.

· Оптимизация.

· Большое количество видео уроков и инструкций.

· Движок является полностью бесплатный.

· Не требуется наличие мощного компьютера.

· Не подходит для начинающих.

· Закрытый исходный код.

· Устаревшая графика.

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

2 Место

Unreal Engine – является довольно мощным движком для создания игр. Эта платформа даёт возможность создания 2D и 3D игр. Неотъемлемой частью таких современных и мощных движков является кроссплатформенность, и в Unreal Engine она довольно хорошо реализована. Можно создавать игр для всех популярных платформ как для смартфонов (Android , IOS ), так и для компьютеров под управлением (Windows , MacOS ).

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

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

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

Хочу заметить, что, будучи не опытным в сфере создания игр, а также если вы не знаете основ программирования на С++, тогда не стоит начинать знакомство с разработкой игр с этого движка. Так как Unreal Engine является профессиональным инструментом для создания игр.

Что бы понять всю силу и возможности движка, можете просмотреть уже созданные на нем популярные проекты, такие как Gears of War 4, We Happy Few, Final Fantasy VII, Dead Island 2, Taken 7 и еще длинный список примеров возможностей.

· Огромное количество инструментов.

· Создание абсолютно любого жанра игр.

· Кроссплатформенность.

· Оптимизация.

· Большое количество видео уроков и инструкций.

· Собственные форумы, обсуждения в разработке игр.

· Движок является полностью бесплатный.

· Встроенный магазин дополнений.

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

· Высокий уровень графики.

· Открытый код

· Не подходит для начинающих.

· Сложный интерфейс.

1 Место

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

CryEngine – мощный движок для создания современных игр в любом жанре под все возможные платформы. Он так же является кроссплатформенным и позволяет создать игры под ОС Windows , MacOS , Linux , Android , IOS .

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

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

Вот некоторые проекты, реализованные на CryEngine: CrySis, Star Citizen, Sniper: Ghost Warrior 3, Ryse: Son of Rome, Warface, первая часть FarCry и многие другие.

· Огромное количество инструментов.

· Создание абсолютно любого жанра игр.

· Кроссплатформенность.

· Оптимизация.

· Большое количество видео уроков и инструкций.

· Собственные форумы, обсуждения в разработке игр.

· Движок является полностью бесплатный.

· Встроенный магазин дополнений.

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

· Высокий уровень графики.

· Почти не ограниченные возможности в создании игр.

· Открытый код

· Не подходит для начинающих.

· Довольно требователен к компьютеру.

· Сложный интерфейс.

Заключение

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

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

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

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

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

Construct 2

Construct 2 – простой движок, с помощью которого можно легко создавать игры под все популярные платформы – Android , IOS , PC и многие другие. Скрипты на нем пишутся на языке . Движок имеет простой интерфейс и незамысловатую логику построения, из-за чего «супер сильные» игры создать не получится. Однако существует парочка игр, созданных на этом движке, которым удалось завоевать свой кусочек популярности. Самым успешным примером является игра Mortal Melon .

GameMaker

Движок, позволяющий создавать игры без углубленных знаний программирования. Хотя в GameMaker можно работать как над 2D , так и над 3D проектами, стоит отметить, что 3D проектирование в нем реализовано весьма сухо, из-за чего более уместно будет использовать данный движок преимущественно в качестве 2D площадки. Для итогового восприятия возможностей движка рекомендую ознакомиться с проектом BLACKHOLE .

Unity

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

Проектов на Unreal Engine было реализовано масса, и вы о них наверняка уже где-то слышали. Это такие гиганты игрового творчества как Gears of War 4, We Happy Few, Final Fantasy VII, Dead Island 2, Taken 7 и еще длинный список примеров возможностей движка.

CryEngine

По функционалу и возможностям движки похожи (CryEngine & Unreal Engine ), даже можно было бы обоим присвоить первое место. Но проекты, созданные на CryEngine , внятно показывают, какими возможностями обладает именно этот движок. Впрочем, тут все зависит от таланта и опыта работы, ибо теоретически оба движка способны на прорыв в игровой индустрии. Я хочу сказать, что не стоит забывать, что всякая теория должна быть доказана практикой, с чем CryEngine справился на ура. Поэтому мы и присвоили ему почетное первое место в списке 5 лучших игровых движков.

Вот некоторые проекты, реализованные на CryEngine: CrySis, Star Citizen, Sniper: Ghost Warrior 3, Ryse: Son of Rome, Warface, первая часть FarCry и многие другие.

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

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

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

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

На каком движке строить 3D игры?

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

Для наших гостей мы собрали лучшие программы в одном месте. Здесь вы можете подробно изучить свойства движков, посмотреть скриншоты и видеоуроки. Читайте отзывы, сравнивайте рейтинги и скачивайте подходящие 3D движки, через торрент или файлообменные сервисы (MEGA или Яндекс.Диск).

Проприетарная технология, созданная компанией Guerrilla Games. В создании движка также принимала участие студия Kojima Productions. Появившись только в 2013 году, Decima Engine успела стать базой для нескольких ААА-проектов, а также просто интересных играх.

Первой игрой, созданной на Decima Engine, стала Killzone Shadow Fall, которую разработала сама Guerilla Games. Изначально студия не сообщала, на какой технологии создается их проект, однако с анонсом следующей своей игры - - все же рассказала, что новый проект будет использовать прежний движок - Decima Engine.

Как и в случае со многими популярными движками, физическая составляющая Decima Engine завязана на Havok physics. Благодаря этому Guerilla удалось создать перспективную технологию с динамичной скелетной анимацией и реалистичной системой повреждений.

В 2015 Decima Engine стала основой для Until Dawn - сомнительного поначалу хоррора, который в итоге стал главным открытием жанра за весь год. Не считая Horizon Zero Dawn, движок также используется в амбициозном проекте Хидео Кодзимы - . Именно поэтому студия японского разработчика - Kojima Productions - оказывала помощь во время создания движка ведущему разработчику - Guerilla.

По сути своей Decima Engine разработан специально для ААА-проектов, которым требуется высокая детализация и поддержка 4К-разрешения. Учитывая возможный громкий успех Death Stranding, а также тот факт, что Guerilla тесно работает с Sony, в будущем Decima Engine будет идти нарасхват. Скорее всего, мы будем часто видеть эту технологию в .

9 место - EGO Engine

Движок, разработанный совместными усилиями компаний и Sony Computer Entertainment. По сути своей является улучшенной версией Neon, который под «нулевым» номером представлял игру Colin McRae: DiRT.

EGO Engine по праву заслужил место в топе хотя бы за невероятно качественные игры в гоночном жанре. Все игры Codemasters, начиная с 2007 года, выходили и выходят именно на EGO, причем в их послужном списке есть и шутеры, что говорит только в пользу разностороннего движка.

Большую часть работы в создании EGO проделала студия Codematers, когда Sony же предоставила графический движок PhyreEngine. На первой версии EGO Engine вышли знаменитые DiRT и DiRT 2, а также дополнение Dragon Rising для шутера Operation Flashpoint. Вторую версию движка представляла DiRT 3, игры в серии GRID и F1.

На третьей же версии Codemasters сейчас делают DiRT 4, которая гарантирует стать великолепной раллийной гонкой. Все проекты компании всегда отлично оптимизированы, несмотря на отличную графику. Взять, к примеру, DiRT 2 - игра вышла в далеком 2009, однако качество её картинки до сих пор может дать фору некоторым современным проектам (и речь идет не об инди).

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

8 место - Game Maker: Studio

Известнейший игровой движок и конструктор, созданный на Delphi. Game Maker был разработан компанией Yo Yo Games, а ведущим разработчиком технологии выступает Марк Овермарс.

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

Game Maker заработал известность только благодаря своей простоте. Изначально Овермарс, являясь профессором в университете города Утрехт, создал базу для Game Maker в виде учебного пособия для своих учеников. Впоследствии же технология появилась в интернете, где и обрела популярность.

Отличительная черта Game Maker заключается в том, что для работы с ним не требуется знать языки программирования.

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

Game Maker появился в 1999 году и практически ежегодно продолжает получать обновления. Последнее вышло в 2011 - это восьмая версия движка, которая получила массу обновлений и дополнений. С того момента движок начал работать на юникоде, его поддержка 3D значительно возросла, был улучшен редактор комнат и т.д.

В 2012 же YoYo Games решила серьезно переработать свою технологию, прежде всего добавив поддержку кроссплатформенности. Движок получил новое название Game Maker: Studio, и лишь после этого его начали воспринимать как профессиональный инструмент для создания видеоигр, а не как обучающую программу.

Плюсы Game Maker Studios кроются в поддержке множества различных платформ от Windows и Mac OS, до iOS, Android, Xbox и PlayStation. Помимо этого, библиотека движка и многие расширения переведены на несколько языков, а не только английский, как обычно принято. У движка присутствует собственный язык программирования - Game Maker Language. Он также имеет интеграцию со Steam и распространяется совершенно бесплатно (только стандартная версия).

Единственным минусом же является 3D, которое в Game Maker появилось ещё в 2011, однако работа с ним до сих пор не приведена в приемлемое состояние.

Самые известные игры на Game Maker: Studios - это две части Hotline Miami. Кроме них, на движке были разработаны десятки различных игр, большая часть из которых затерялась даже в инди-сегменте.

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

7 место - 4A Engine

Движок из Украины, созданный одноименной студией . Судьба 4A Engine переплетается с X-Ray Engine, который, во-первых, был таким же образом разработан в Украине, во-вторых, был создан для игры в жанре постапокалипсис, а в-третьих, написан именно теми же самыми программистами - Олесем Шишковцовым и Александром Максимчуком.

4A Engine является проприетарным ПО, из-за чего 4A Games может использовать его исключительно для собственных нужд без возможности продавать лицензии. На данный момент компания выпустила две игры на этом движке - Metro 2033 и Metro: Last Light.

История 4A Engine имеет несколько темных пятен. Так, по некоторым сведениям движок является измененной копией X-Ray. Данное подозрение основано на том, что программисты движка Шишковцов и Максимчук, добровольно покинув (или будучи уволенными), использовали базу созданного ими X-Ray для 4A Engine. Этот слух впоследствии перерос в скандал, но реальных подтверждений так и не было найдено.

Шишковцов и его товарищи не решились продолжать развивать «Сталкер» и X-Ray потому, что последний, по их мнению, имел плохую сетевую модель и неграмотную оптимизацию, из-за которой распределение ресурсов и памяти компьютера осуществлялось до ужаса грубо. В целом, по словам разработчиков, X-Ray был не способен поддерживать консоли нового поколения и не имел будущего, из-за чего они и решили уйти из студии и заняться собственными разработками.

Созданный же ими 4A Engine только подтвердил ранее высказанные суждения. Так, в сравнении со S.T.A.L.K.E.R. Metro 2033 имела куда как лучшую графику (что можно списать на временные рамки), но при этом требовала значительно меньше ресурсов от компьютера и не вызывала никаких ошибок в системе.

В Metro 2033 прежде всего отлично был реализован объемный туман, а также размытие объектов и их высокая LOD-детализация. А включение в 4A Engine технологии PhysX позволило разработчикам добавить в игру разрушаемое окружение, динамичную водную поверхность и одежду.

В общем и целом 4A Engine можно назвать идейным продолжателем X-Ray, который показал куда как лучшие результаты и избежал многочисленных ошибок предшественника. Так или иначе, оба движка заслуживают мест в нашем топе.

6 место - IW Engine

С движком Infinity Ward сталкивался практически каждый геймер, даже если он вообще не в курсе о его существовании. IW был разработан одноименной компанией из США, которая создала его специально для своих игр, а именно - серии самых популярных шутеров Call of Duty.

История движка Infinity Ward берет начало ещё в 2002 году, когда будущие сотрудники компании IW работали в студии . В то время они выпустили свой дебютный проект Medal of Honor: Allied Assault, на базе которого стоял движок id Software - id Tech 3. Примерно через год большая часть коллектива покидает 2015 Inc, чтобы основать известную нам Infinity Ward и приступить к созданию культовой игры - Call of Duty.

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

С такими преобразованиями id Tech 3 версии IW значительно отдалился от оригинала, так что для компании впору было назвать его собственным движком и сменить ему имя.

Вскоре девелоперы так и сделали, когда выпустили Call of Duty 2, объявив, что сиквел выходит на модификации id Tech 3 - IW Engine 2.0. Движок же первой версии, как нетрудно догадаться, разработчики присвоили Call of Duty 1.

В 2007 году Infinity Ward выпускает третью версию движка, выход которого ознаменовала Modern Warfare. Анимация лиц, текстуры воды, освещение, а также введение нового эффекта - глубины резкости - все говорило о том, что перед нами один из самых качественных движков для шутеров своего времени.

Вплоть до 2012 года компания продолжает использовать данный движок, улучшая лишь графическую составляющую. IW 4.0 и 5.0 появляются вместе с Modern Warfare 2 и 3 соответственно. Несмотря на создание новых версий, та же Black Ops 2 оказалась выпущена лишь на третьей модели движка.

Однако же в 2013 в направлении полноценного развития снова появилось движение, когда IW закончила работу над COD: Ghosts. И хотя часть про «Призраков» получила смешанные отзывы и оказалась плохо принята игроками, многие даже и не заметили, что компания вместе с Ghosts выпустила IW 6.0 версии. Последней же является седьмая, на которой была разработана в конце 2016 года.

5 место - RAGE (Rockstar Advanced Game Engine)

На пятом месте разместился движок от компании Rockstar. Rockstar Advanced Game Engine, или RAGE - это продукт работы двух её филиалов - и San Diego, которые разработали исключительно для игр компании.

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

А что же было до 2006 года? В первой половине 2000-х Rockstar уже выпустила несколько частей GTA и успела прославиться, однако тогда её флагманским движком был RenderWare, который разработала совершенно сторонняя студия - . В 2004 последняя была поглощена EA, что, естественно, сказалось на приобретенной Rockstar лицензии на движок.

Electronic Arts всегда строго относилась к прямым конкурентам, из-за чего руководство Rockstar решила бросить служивший им верой и правдой RenderWare и приступить к созданию собственного движка. Всего лишь за год компании удалось разработать RAGE, так как его основа была создана не с нуля, а на базе AGE - движке студии Angel Studios.

Самым первым крупным проектом Rockstar Advanced Game Engine стала GTA IV. Ещё до её выхода компания объявила, что движок RAGE будет использовать технологию euphoria - средство процедурной анимации, которое позволяет симулировать реалистичную физику тел (используется до сих пор). Вышедшие впоследствии Max Payne 3, GTA V, а также планируемая - все эти игры были созданы и разрабатываются на RAGE.

Под «капотом» Rockstar Advanced Game Engine находятся все составляющие максимально функционального движка: графический, физический, звуковой и анимационный движки, а также полноценный ИИ, поддержка сетевых режимов, скриптовый язык и многое другое. Все компоненты были созданы усилиями исключительно филиалов Rockstar Games.

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

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

Сомневаться в качестве RAGE не приходится, так как именно на нем была разработана GTA V - одна из самых продаваемых и популярных игр за всю историю индустрии.

4 место - CryEngine

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

Оригинальный CryEngine был выпущен в 2002 году специально для шутера Far Cry. Тогда движок оказался номером один в плане технологической продвинутости и фотореалистичности. CryEngine 2 же, запущенный в 2007, впервые показал себя в Crysis.

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

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

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

Параллакс-маппинг, Terrain 2.5D, подповерхностное рассеивание, динамическое освещение, инструмент Polybump 2, параметрическая скелетная анимация - CryEngine вобрал в себе массу передовых технологий для своего времени, которые и сейчас остаются актуальными.

В движок встроен редактор уровней Sandbox2, который позволят в реальном времени создавать уровни, работать с объектами и редактировать анимацию. Безусловно, CryEngine достоин самых громких похвал - великолепнейший образец того, как нужно делать движки.

3 место - id Tech

id Tech - на базе этого движка были созданы такие культовые шутеры, как Wolfenstein, Quake и DOOM. Эти три гиганта, рожденные id Software, гремели в конце 1990-х и начале 2000-х, а в наше время, когда возрождение старых игр и фильмов обрело стихийные масштабы, они вернулись и устроили «местным» шутерам настоящий разнос.

На 2017 год id Tech имеет шесть версий. Первая вышла ещё в 1992 (когда многие молодые читатели не родились или только начали ходить под стол) под руководством легендарной личности - Джона Кармака.

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

Так, на id Tech 1 вышли первые три части «Дума», а на второй версии, которая получила имя Quake Engine, как нетрудно догадаться появились несколько частей в серии Quake.

С id Tech 3 компания id Software начала распространение своего детища. Движок все чаще принялся мелькать среди проектов сторонних девелоперов (Medal of Honor, Star Trek, James Bond 007).

Помимо этого, движок под третьим номером был приобретен Infinity Ward, которая на его базе создала собственный движок (об этом мы говорили в начале списка, так как этот движок тоже в нем оказался).

id Tech 4 - это эпоха значительных преобразований, так как движок впервые был написан на языке С++. Девелоперы переписали все подсистемы движка и представили его в игре DOOM 3. Самозатенение, попиксельное освещение и прочее - четвертая версия обладала самыми современными технологиями.

С id Tech 5 компания практически не работала, выпустив для него только одну игру - RAGE. Та была спорно встречена аудиторией, хотя сам движок пришелся по вкусу другим разработчикам. Так, на этой версии вышли , Wolfenstein: The New Order и The Evil Within.

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

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

С помощью SVO разработчикам удалось улучшить детализацию игрового мира посредством масштабирования: ближайшие к игроку объекты рендерятся в максимальном качестве, когда как далекие - с помощью крупных вокселей, имеющий худшее качество. В остальном же id Tech 6 оборудован по последнему слову техники и, будучи «молодым» ждет своего звездного часа.

2 место - Frostbite и Unity Engine

Почетное серебро в списке «Топ 10 движков в игровой индустрии» занимают сразу два движка, которые одинаково заслуживают второй позиции. Первый, Frostbite Engine, во всей красе проявил себя в Battlefield 3 и продолжает красоваться невероятно кинематографичными эффектами, а со вторым же, Unity Engine, мы знакомы скорее по его распространенности и доступности (подобно CryEngine), хотя и на нем было выпущено много прекрасных игр.

Frostbite Engine был разработан шведской компанией DICE в 2008 году для игры Battlefield: Bad Company. Движок пришел на смену Refractor Engine - уже старой технологии, с которой DICE работали всю предыдущую историю. Сейчас существует три полноценных версии Frostbite Engine (включая 1.5), а в целом движок успел проявить себя и в гонках, и в шутерах, и в ролевых играх, и даже в спортивных.

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

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

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

И хотя DICE ещё до Battlefield 3 успела проявить себя и стать популярной, именно последняя позволила ей называться настоящим разработчиком первой лиги, где разрабатываются лучшие ААА-проекты.

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

Не считая многих шутеров, Frostbite Engine отлично показал себя в гоночной игре NFS: The Run, а также в RPG Dragon Age: Inquisition. Сегодня актуальна третья версия движка, на которой уже успело выйти несколько интересных проектов вроде FIFA 17 и .

А теперь мы расскажем о втором движке, который потеснил Frostbite Engine и разместился с ним на одном пьедестале - Unity Engine. Движок был разработан компанией Unity Technologies в 2005 году - тогда ещё не особо известной студией, которая на сегодня имеет штат из тысячи сотрудников.

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

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

Сам по себе Unity Engine является одновременно и игровым движком, и интегрированной средой разработки, и конструктором для создания игр. Он поддерживает мобильные ОС, Windows, Linux и OS X, работает на всех консолях как нового, так и предыдущего поколения.

Если вы думаете, что никогда не сталкивались с Unity Engine, то, скорее всего, ошибаетесь, так как с ним часто работают , Blizzard, EA и многие другие компании. Последние игры от Obsidian, серия , Kerbal Space Program и сотни иных проектов - все были выпущены на Unity Engine.

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

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

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

1 место - Source и Unreal Engine

Позиция победителя повторила судьбу предыдущей строчки, так что речь вновь пойдет сразу о двух движках, которые в равной степени достойны назваться самым лучшим движком в игровой индустрии. Человек, хотя бы раз прикоснувшийся в компьютеру, вероятно, слышал о Half-Life - известнейшем шутере, который в свое время задвинул планку по примеру Quake или DOOM.

Именно игра о приключениях знаменитого ученого Гордона Фримена была сделана на движке Source. Второй же - Unreal Engine 3 - крепко связан с серией шутеров , которая по типу выше указанных экшенов таким же образом «задвинула планку» и стала одним из лучших представителей своего жанра.

Движок Source был разработан компанией Valve Corporation в далеком 2004 году. И хотя выше мы упомянули первую часть Half-Life, этот движок создавали уже для сиквела, но первой игрой на движке стала Counter-Strike: Source.

Первые упоминания о движке появились в 1998, когда работа над Half-Life уже подходила к концу. Множество наработок и фишек, которые изначально должны были появиться в экшене, разработчикам пришлось отбросить из-за несовершенства GoldSrc - первого движка компании. Именно поэтому сотрудники Valve решили создать такой движок, который позволил бы реализовать все их мечты и желания.

Говорить о совершенстве Source не приходится, учитывая популярность Half-Life 2. В игре было много великолепных решений и особенностей, однако главным аспектом являлся и является до сих пор именно физический движок - Havok, который Valve улучшили и адаптировали под Source.

Именно благодаря этой, похожей на Ragdoll, физике в Half-Life 2 девелоперам удалось создать интереснейшие головоломки и геймплей в целом. Помимо этого, лицевая анимация игры таким же образом оказалась передовой для 2004 года.

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

Как и с Unity, с Source любой желающий может поработать бесплатно, загрузив специальную утилиту (Source SDK) из Steam. Сегодня же существует вторая версия Source, которая была анонсирована в 2015 году.

На Source 2 уже успела выйти игра Dota 2, а также несколько других инди-проектов от Valve. Общедоступная же версия движка пока находится в процессе разработки.

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

Серия Unreal, , Postal, Tom Clancy’s, BioShock, , , , Borderlands, Dishonored, XCOM, , Life is Strange, Mortal Kombat X и десятки других не менее известных, а также совсем инди-проектов были сделаны на Unreal Engine. Недурно, не правда ли?

Работающий на языке C++, Unreal Engine способен работать практически со всеми ОС для ПК, а также на множестве как топовых, так и менее распространенных консолей. На данный момент существует четыре полноценных версии движка, которые вышли в 1998, 2002, 2006 и 2014 соответственно.

Однако имеются и ответвления, являющиеся дополнениями и модернизациями «основных» версий. Unreal Engine 4 - самый молодой движок в серии, а первой игрой, вышедшей на нем, посчастливилось стать хоррору Daylight 2014 года.

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

Видео: возможности Unreal Engine в 2017 году


Лайк, если понравилось

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
Ваш мастер по ремонту. Отделочные работы, наружные, подготовительные