22.09.2019

Создание движка для игры. Игра своими руками. Создание трехмерного игрового движка на базе GLScene


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

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

Почему не стоит писать свой игровой движок

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

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

Помимо бесплатных систем разработки игр, многие коммерческие игровые движки, полностью готовые к немедленному началу использования в игровых проектах, предлагают сразу несколько очень привлекательных схем лицензирования : полностью бесплатную (Unity 3D в бывшей Indie-редакции), смешанную схему с выплатой Royalties (Unreal Development Kit ) - 99 $ взнос за лицензию и выплаты 25 % прибыли после первых заработанных 5000 $, либо же доступную стоимость полновесной коммерческой лицензии (Unity Pro за 1500 $).

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

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

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

Подводим итог : написанием собственного игрового движка могут заниматься те, кто чётко представляет, что именно и зачем ему это нужно, видит адекватные преимущества такого подхода и способен за вменяемые сроки претворить свой план в жизнь. Всем остальным следует поискать готовое решение, благо оных в последнее время появилось достаточно - взять хотя бы те же Unity 3D и UDK.

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

Создавать игры сложно. Чем больше вы знаете об этом процессе, тем сильнее вы будете удивляться тому, что кто-то действительно доводит его до конца. Как говорил один из бывших авторов PC GamerТом Фрэнсис, описывая процесс программирования игры Gunpoint: «За время работы над игрой я пришёл к одному выводу: Моя игра – это настоящее безумие. Это пациент психлечебницы. Она полностью сошла с ума, и нужно быть готовым к тому, что все разумные доводы будут встречены невменяемым кричащим бредом».

Легко впасть в ступор при одной мысли о масштабе работы, которую придётся проделать, разрабатывая дизайн и программируя свою игру, однако мы обратились к нескольким независимым разработчикам, и все они дали один и тот же совет новичкам: просто сделайте это. Погрузитесь в работу с головой, какой бы страшной она ни казалась. Для того, чтобы помочь вам сделать первый (пугающий, но, в конечном счёте, оправдывающий средства) шаг, мы подготовили список 2D-движков для начинающих игровых разработчиков. Надеемся, что он вкупе с рекомендациями опытных геймдизайнеров будет вам полезен.

GameMaker Studio 2

Стоимость лицензии : 100 долларов для ПК-версии; доступен бесплатный пробный период

Подойдёт для : коротких 2D-платформеров и RPG; кроссплатформенных игр

Примеры игр : Nidhogg, Hyper Light Drifter, Undertale, Risk of Rain

Плюсы

Марк Эссен, автор игр Nidhogg и Nidhogg 2, говорит, что GameMaker отлично подходит для новичков, так как система создания скриптов в нём максимально проста и понятна, к тому же на портале Yoyo Games можно найти собрание руководств и гайдов по данной теме. В интернете также немало дополнений для движка, позволяющих кастомизировать его для создания платформера или RPG с видом сверху.

Алекс Престон, создавший Hyper Light Drifter, говорит, что коммьюнити движка GameMaker оказывает неоценимую помощь новичкам. Он отмечает, что начинающим разработчикам следует «…наладить связь с сообществом разработчиков и изучить все инструменты движка, чтобы добиться того, чего нужно – а для этого стоит обращаться за советами к бывалым разработчикам».

Минусы

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

Дункан Драммонд, автор всеми любимой Risk of Rain, тоже подчёркивает, что простота использования GameMaker может стать ночным кошмаром разработчика. «На движке можно быстро создать игру, но если проглядеть на ранних этапах своих ошибки, то позднее это выльется в увеличении затрат на игру», говорит он. Драммонд отмечает, что специфика работы с GameMaker сильно отличается от работы с другими движками, поэтому если в дальнейшем вы планируете перейти на Unity или любой другой движок, то вам, скорее всего, лучше поискать иной вариант.

«Не забывайте удалять свои старые работы! Чем чаще вы начинаете игру с нуля, тем опытнее по части геймдизайна вы становитесь», - Марк Эссен, Nidhogg

«Просто начните! Запустите движок, почитайте руководства и приступайте к работе, даже если у вас толком не получается. Чем больше ошибок совершите, тем больше уроков вы вынесете», - Алекс Престон, Hyper Light Drifter

«Не бойтесь начать! Это интересный и относительно простой способ разработки, и тратит он разве что ваше время», - Дункан Драммонд, Risk of Rain

Unity

Стоимость лицензии : Бесплатный стартовый пакет, 35 долларов в месяц за пакет Unity Plus, 125 долларов в месяц за пакет Unity Pro

Подойдёт для : практически любой инди-игры

Примеры игр : , Galak-Z, West of Loathing, Cuphead

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

На официальном сайте Unity можно найти и специальные дополнения, позволяющие кастомизировать движок для разработки 2D-игр. К примеру, бесплатное расширение 2D Platformer или инструменты вроде Corgi Engine и Rex Engine, предлагающие игровую физику, управление и особенности, заточенные специально под платформеры.

Мы поговорили с Джозефом Хамфри из inkle и Виктором Томпсоном из Asymmetric Publications, которые рассказали о своём опыте работы с Unity.

Плюсы

Томпсон, ранее создававший игры классическим способом, быстро стал поклонником Unity – движка, на котором была создана недавно вышедшая под названием West of Loathing. «После 2-3 лет работы с движком больше всего меня радует то, насколько быстро можно совмещать концепты и прототипы», говорит он. «Я использовал множество различных движков – как небольшие для своих собственных проектов, так и крупные для разработки AAA-игр, однако Unity – это пока что лучший из всех движков, что я видел, так как он позволяет мне быть наиболее продуктивным».

Минусы

Впрочем, если вы собираетесь использовать одну платформу для всех своих разработок, вы столкнётесь с определёнными ограничениями. Если вы найдёте баг в Unity, вам придётся ждать, пока авторы движка его исправят, и это не всегда быстро. «Несмотря на то, что представители движка заявляют, что исправление багов является их важнейшим приоритетом, разработчики компании inkle по-прежнему считают стабильность дебаггинга одной из главных проблем движка», говорит Хамфри.

«Прежде всего, постарайтесь создать в голове конечный образ игры и сфокусируйтесь на нём – вашей конечной целью должен быть не опыт, полученный в процессе, а готовый продукт. Конечно, полезно вынести пару уроков из неудач, но, как мне кажется, намного важнее задаться целью, изучить всё, что необходимо для достижения этой цели, и в итоге реализовать задуманное», - Виктор Томпсон, West of Loathing

Ren’Py

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

Подойдёт для : 2D визуальных новелл, симуляторов

Совместим с : Python

Примеры игр : Long Live the Queen, Analogue: A Hate Story

Ren’Py – это простой в освоении движок с открытым исходным кодом. И хотя он требует начальных навыков программирования, на самых ранних этапах вам понадобится лишь умение работать с текстовым редактором и приложениями по редактированию фотографий. Это удобная стартовая площадка для тех, кто в будущем планирует изучить язык программирования Python.

Плюсы

«Открытый исходный код Ren’Py и его кроссплатформенность дают множество возможностей для всех пользователей движка», говорит Бенсли. «Я также считаю плюсом тот факт, что движок рассчитан на новичков, но при этом требует вносить правки в программный код игры. Это лучше, чем графический drag-and-drop интерфейс, так как это показывает, что в программировании нет ничего страшного».
Ren’Py подойдёт вам в том случае, если вас пугает сама перспектива создания игры с нуля:

«Одно из важнейших препятствий, с которым сталкивается большинство людей, ранее не работавших над созданием игр, заключается в их уверенности в том, что программирование – это нечто “слишком сложное”, а потому это попросту им не по силам. А данный движок позволяет быстро и успешно создать простую игру, что придаёт уверенности начинающим разработчикам, даже если они и не планируют в будущем выпускать одни лишь визуальные новеллы. Как только ты создаёшь нечто, во что могут играть другие, пусть даже простенький проект, ты уже не ставишь под сомнение свои способности».

Минусы

Ren’Py немного ограничен по части графических и геймплейных функций. Если вы намерены создавать игры с 3D, Live2D, системой повреждений и другими особенностями, то вам стоит поискать другие варианты.

ink

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

Подойдёт для : текстовых приключенческих игр

Совестим с : Unity, C#, HTML

Примеры игр : 80 Days, Sorcery!

Ink – это хорошее бесплатное дополнение для Unity, если вы хотите разбавить свою игру диалоговыми ветками и расширенным повествованием. Его легко освоить, в нём не используется продвинутый код, и он бесшовно интегрируется с Unity. Как говорит создатель ink Джозеф Хамфри, данный движок является «промежуточным» - после создания скрипта в ink его можно перенести в более крупную игру на движке Unity. Тем не менее редактор Inky Editor позволяет также создавать веб-игры.

Плюсы

Создание масштабного сценария со множеством диалоговых веток может быстро превратиться в запутанную кашу, поэтому ink поможет вам не потеряться в процессе. «Авторы игр могут использовать инструменты движка для создания диалогов и текста в формате удобного интерактивного сценария с ключевыми метками», говорит Хамфри. «Затем движок ink, запущенный внутри Unity, сможет читать эти сценарии и выводить текст на экраны уже в самой игре».

Открытый исходный код играет важную роль в разработке амбициозных проектов. Хамфри отмечает, что «создаваемый на движке ink текст необязательно должен показываться в виде текста. К примеру, в игре Heaven’s Vault движок ink создаёт динамичный сценарий, который интерпретируется самой игрой в виде интерактивной графической новеллы с приключенческими элементами».

ink также является отличным инструментом для тех, кто больше заинтересован в написании сценариев для игр, а не о чистом программировании. «…Количество сценаристов, использующих ink для написания интерактивных историй, постоянно растёт», добавляет Хамфри. «Where The Water Tastes Like Wine – это один из таких примеров. Её создали авторы игры Gone Home при помощи движка ink. Над игрой работали такие известные сценаристы, как Ли Александр, Эмили Шорт и Кара Эллисон. Поэтому если вам нравится сочинять сценарии и вы интересуетесь разработкой игр, то ink может стать отличной площадкой для начала».

Минусы

ink лучше всего использовать для игр, разрабатываемых на движке Unity. Хамфри говорит, что «ink не является альтернативой Unity - это скорее дополнение. Более того, ink – это единственный инструмент для создания интерактивных сценариев, который был намеренно создан в виде промежуточного звена».

«У меня есть один-единственный совет – просто попытайтесь создать демо-игру. Если же вы хотите заполнить своё портфолио, в котором указаны примеры того, в чём вы хороши, то самое время начать заполнять его. Создавайте эти примеры!»

В начале 2017 года мы писали о внезапном появлении RPG Maker на площадке Steam и о том, как движок стремительно набирает популярность среди начинающих инди-разработчиков. Но есть и другие инструменты, на которые стоит обратить внимание:

HaxeFlixel с открытым исходным кодом и кроссплатформенностью.

Stencyl – инструмент для создания игр без использования программирования.

В последнее время я занят тем, что пишу игровой движок на 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 идеально подходят для сериализации игровых ресурсов, но они всё равно стоят изучения.


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


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

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

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

————————————-

Defold Game Engine

В этой статье я хочу познакомить вас с весьма молодым и бесплатным игровым движком для создания игр ААА класса - Defold Game Engine . Этот движок разработали Рагнар Свенссон и Кристиан Мюррэй в 2014 году и уже существует более 20 тыс. пользователей и больше 30 тыс. проектов на этом движке.

Defold работает на MacOS/OS х, Windows и Linux (32 бит и 64 бит). С его помощью можно создать игру для 6 известных платформ iOS, Android ,HTML5, а также для MacOS/OS х, Windows и Linux.

Defold - представляет собой полноценный 3D — движок, однако набор инструментов сделан для 2D, так что для создания 3D игр придется делать много тяжелой работы самостоятельно. Улучшение инструментов для создания 3D, разработчики планирую в ближайшем будущем. Все приложения и игровая логика в Defold осуществляется с помощью скриптов на языке lua. Lua - это легкий, динамичный язык, который является быстрым и очень мощным.

————————————-

Amazon Lumberyard

На игровом движке lumberyard можно создавать высококачественные игры класса ААА для PC, Xbox One и PlayStation 4, в скором будущем анонсирована поддержка устройств iOS и Android, с глубокой интеграцией в Amazon Web Services и привлечением фанатов в сервисе Twitch, так же движок Lumberyard можно будет использовать и в создании мультиплатформенных игр, так как он теперь имеет собственный сетевой движок.

Lumberyard создан не «с нуля» он основан на коде движка CryEngine, в середине лета 2015 года компания Amazon приобрела широкую лицензию на движок CryEngine, но как утверждают разработчики в систему было заложено множество нововведений и возможностей такие как: инструмент для создания растений, инструмент для создания скелетной анимации, редактор частиц, шейдеры на основе физики, модульные геммы, облегчающие работу с природными эффектами и многое другое.

————————————-

CryEngine 5

CryEngine - игровой движок, созданный немецкой частной компанией Crytek в 2002 году и первоначально используемый в шутере от первого лица Far Cry . В середине марта компания предоставила миру новый, пятый CryEngine . Движок абсолютно бесплатен и воспользоваться им, может любой желающий, с помощью которогоможно создать игру, различного жанра и различной сложности.

  1. CryEngine Sandbox: редактор игры в реальном времени, предлагающий обратную связь «Что Вы видите, то Вы и ИГРАЕТЕ».
  2. Рендерер: интегрированные открытые (англ. outdoor ) и закрытые (англ. indoor ) локации без швов. Также рендерер поддерживает OpenGL и DirectX 8/9, Xbox с использованием последних аппаратных особенностей, PS2 и GameCube, а также Xbox 360.
  3. Физическая система: поддерживает инверсную кинематику персонажей, транспортные средства, твёрдые тела, жидкость, тряпичные куклы (англ. rag doll ), имитацию ткани и эффекты мягкого тела. Система объединена с игрой и инструментами.
  4. Инверсная кинематика персонажей и смешанная анимация: позволяет модели иметь множественные анимации для лучшей реалистичности.
  5. Система игрового искусственного интеллекта: включает командный интеллект и интеллект, определяемый скриптами. Возможность создания особенных врагов и их поведения, не касаясь кода C++.
  6. Интерактивная динамическая система музыки: музыкальные дорожки отвечают действиям игрока и ситуации и предлагают качество CD-диска с полным 5.1 звуковым окружением.

————————————-

Construct Classic

Construct Classic - небольшая программа, основной функцией которой является создание игр, 2d-анимационных роликов и мультфильмов. Данный конструктор создан по принципу WYSIWYG. Это значит, что вам не предстоит для создания собственного анимационного ролика подолгу сидеть за учебниками программирования. Все гораздо проще - добавили какой-то объект, включили для него анимацию и он начинает двигаться.

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

Основные возможности Construct Classic:

  • Система редактирования событий и реакции на них посредством drag-n-drop.
  • Возможность использования огромного количества плагинов.
  • Программа создана на python, но дорабатывать ее можно на C++.
  • Есть возможность подключать пиксельные шейдеры на HLSL.
  • К программе можно подключать готовые исходные коды игр и приложений в формате САР.

Изменения в последней версии

  • Физика: Исправлен баг версии r1, когда физические объекты созданные после старта, могли улететь за экран на высокой скорости.
  • Поведение: Исправлен баг. когда вы не могли спрыгнуть с платформы. Вызван исправлением бага «приземления в воздухе» в версии r1. Оба исправления теперь работают.
  • Установщик: Исправлена проблема с установкой в версии r1.

————————————-

GameMaker: Studio

GameMaker: Studio - бесплатная версия популярного профессионального набора инструментов для создания небольших мобильных мультиплатформенных игр. Благодаря удобному интуитивно-понятному интерфейсу программы разработчики игр могут разрабатывать свои творения более быстро и эффективно. Все это потому, что им не придется заниматься ручным кодингом, затрачивая на этот процесс уйму времени.

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

Основные возможности GameMaker: Studio:

  • Кроссоплатформенность. Без особых трудностей можно создавать игры для Windows, Android, Linux.
  • Удобное рабочее окно программы, где нет ничего лишнего.
  • Возможность создания небольших двухмерных игр за считанные часы.
  • Готовые приложения можно интегрировать со Steam.
  • К приложению можно подключать готовые шаблоны, пошагово менять пути, объекты, звуки, фоны, скрипты и делать из этого всего интересные и необычные игры.
  • GameMaker классно подойдет для разработки игр и приложений на мобильных платформах.

————————————-

Game Editor

Game Editor - бесплатный конструктор для создания несложных двухмерных игр для операционных систем Windows, Mac, Linux, IOS, Android. Создаваемые игры представляет собой набор игровых объектов, каждому из которых задается реакция на определенное событие, что определяет их поведение в игре.

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

Основные возможности Game Editor:

  • Простой и легкий для восприятия интерфейс.
  • Готовое приложение можно экспортировать на Windows, Linux, Android, IOS.
  • Созданную игру можно сразу протестировать, в любой момент остановить ее и снова начать редактировать.
  • Возможность использования графических файлов в форматах JPEG, GIF, PNG, BMP, PCX, TGA, XPM, XCF и TIF.
  • Возможность использования аудио файлов в форматах Ogg Vordis, MID, MOD, S3M, IT и ХМ.

————————————-

3D Rad

3D Rad - бесплатная программа для простого создания (без использования кода) различных ЗD-игр, интерактивных приложений и физических симуляций. Создание приложений в 3D Rad основывается на сочетании в различных комбинациях компонентов (объектов) и настройки взаимодействия между ними. Физика базируется на учете взаимодействия между объектами.

В 3D Rad есть функция импорта моделей в создаваемый проект, большое количество примеров и образцов трехмерных объектов, а также возможность добавления звуковых эффектов в формате WAV или OGG. Работы сделаны с помощью 3D Rad можно распространять в виде отдельных программ или веб-приложений.

Основные возможности 3D Rad:

  • Создание качественных ЗD-игр.
  • Реалистичная физика взаимодействия объектов.
  • Возможность импорта моделей.
  • Качественная обработка графики.
  • Возможность применения искусственного интеллекта.
  • Возможность использования мультиплеера.
  • Высококачественные аудиоэффекты и музыка
  • Возможность встраивания игр на веб-страницы.

————————————-

Unreal Development Kit

Unreal Development Kit (UDK) - мощный бесплатный движок и среда разработки с огромными возможностями по созданию игр для большого количества платформ и операционных систем. Он содержит все инструменты для создания ЗD-игр, продвинутых визуализаций и детальных симуляций.

В состав Unreal Development Kit входит полностью интегрированная среда редактирования Unreal Editor, а также наборы готовых скриптов, спрайтов, текстур и звуков. Их можно комбинировать между собой, прописывать условия их взаимодействия, создавая при этом новые игры.

Основные возможности Unreal Development Kit:

  • Возможность создания игр для Windows, Mac OS, Xbox, PlayStation 3, Wii, Android.
  • Простой и удобный высокоуровневый язык программирования UnrealScript.
  • Реалистический свет, тени и эффекты.
  • Продвинутая физика поведения и взаимодействия предметов.
  • Поддержка LAN и прямого подключения к IP.
  • Возможность тестирования создаваемого приложения на любом этапе его проектирования.
  • Многопоточный рендеринг создаваемых игр.
  • Готовые шаблоны игр.

————————————-

NeoAxis 3D Engine

NeoAxis 3D Engine Non-Commercial SDK - бесплатная версия мощного качественного приложения для создания трехмерных игр. По сути, оно является готовым движком со своими моделями, физикой, графикой и шаблонами. На основе NeoAxis можно делать как различные трехмерные одиночные модели, так и сложную визуализацию программного обеспечения, или даже создавать полнофункциональные 3D игры. Все зависит от таланта и целей разработчика.

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

Основные возможности NeoAxis 3D Engine:

  • Установленная программа состоит из ряда отдельных приложений - конфигуратора, демонстрационных возможностей программы, редактора карт и редактора основного кода.
  • Приложения, разработанные с помощью среды NeoAxis, могут быть запущены на Windows и Mac OS X
  • Весь спектр возможностей встроенного NVIDIA PhysX. Поддержка регдолл и транспортных средств.
  • Встроенная поддержка синхронизации по LAN и интернет.
  • Приложение поддерживает огромный перечень языков, английский, украинский, русский есть в наличии.
  • Редактор построен очень удобно - все ресурсы программы четко структурированы по отдельным тематическим папкам.
  • Программа состоит из готовых наборов объектов, карт и моделей, поэтому разобраться в ней сможет любой школьник.

————————————-

Game Maker Lite

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

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

Основные возможности Game Maker:

  • Простой и интуитивно понятный интерфейс программы.
  • Встроенные уроки по созданию первых игр.
  • Программирование с помощью drag-n-drop.
  • Бесплатная коллекция бесплатных изображений и звуков для игр.
  • Возможность создания простых ЗD-игр.
  • Встроенный язык программирования Game Maker Language (GML), позволяющий разрабатывать более функциональные и интересные игры.

Внимание:

Бесплатная версия Game Maker ограниченна в функциональности, а при запуске созданных в ней игр показывается логотип программы.

————————————-

Unity 3D

Unity 3D - мощная среда разработки, которая позволяет легко создать игру. Созданные с помощью Unity 3D игры и приложения работают в операционных системах Windows, OS X, Android. iOS, Linux, Blackberry а также на игровых приставках Wii, PlayStation 3 и Xbox 360. Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL.

С помощью Unity 3D можно создавать видеоигры любых жанров. Разработчик может легко импортировать текстуры, модели и звуки. Для текстур поддерживаются все популярные форматы изображений. Создание скриптов осуществляется, в основном, с помощью JavaScript, хотя коды можно писать и на С#.

Основные возможности Unity 3D:

  • Широкие возможности настройки.
  • Доступный и понятный интерфейс.
  • Сценарии на С#. JavaScript и Boo.
  • Полная интеграция игрового движка со средой разработки.
  • Поддержка перетягивания объектов в редакторе.
  • Поддержка импорта большого количества форматов.
  • Встроенная поддержка сети.
  • Поддержка физики ткани (PhysX Cloth).
  • Возможность дополнения функционала.
  • Инструменты для совместной разработки.
  • Blender - бесплатный пакет для создания трехмерной (3D) компьютерной графики, содержащий средства моделирования, анимации, рендеринга, постобработки видео, а также создания игр. Функций Blender вполне достаточно для работы как обычным пользователям, так и профессионалам. В программе есть все основные инструменты, используемые в профессиональных ЗD-редакторах.

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

    Основные возможности Blender:

    • Поддержка разнообразных геометрических примитивов (включая полигональные модели, систему быстрого моделирования в режиме SubSurf, кривые Безье, поверхности NURBS, метасферы, скульптурное моделирование и векторные шрифты).
    • Универсальные встроенные механизмы рендеринга и интеграция с внешним рендерером YafRay.
    • Инструменты анимации, среди которых инверсная кинематика, скелетная анимация и сеточная деформация, анимация по ключевым кадрам, нелинейная анимация, редактирование весовых коэффициентов вершин, ограничители, динамика мягких тел, динамика твердых тел, система волос на основе частиц и система частиц с поддержкой коллизий
    • Python используется как средство создания инструментов и прототипов, системы логики в играх, как средство импорта и экспорта файлов, автоматизации задач.
    • Базовые функции нелинейного редактирования и комбинирования видео.
    • Game Blender - подпроект Blender, предоставляющий интерактивные функции, такие как определение коллизий, движок динамики и программируемая логика.

    ————————————-

    Stencyl

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

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

    ————————————-

    CraftStudio

    Добавляйте и изменяйте объекты в 3D пространстве, прописывайте сценарии и правила, рисуйте анимации и эффекты. Авторы CraftStudio продумали всё, чтобы создание игр на PC с нуля в реальном времени было понятным и увлекательным. При этом все инструменты для моделирования и анимаций встроены в программу и понятно обозначены. То же самое можно сказать и о визуальном редакторе сценариев. Что самое интересное — вы не обнаружите проблем с совместимостью форматов или их конвертацией. Для более продвинутых пользователей предусмотрен текстовый редактор Lua Scripting.

Unity3D

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

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

Unreal Engine

Unreal Engine - один из наиболее популярных движков для разработки ААА-игр. Gears of War, Batman: Arkham Asylum, Mass Effect — все эти хиты были сделаны именно на нем.

  • поскольку множество разработчиков его использует, то у Unreal Engine, пожалуй, лучшее комьюнити среди конкурентов. Несколько часов видео-туториалов тому подтверждение;
  • отличная техподдержка и механизм апдейта;
  • новые инструменты выходят с каждым обновлением
  • широкий ассортимент инструментов для различных целей (некоторые настолько просты в использовании, что ими может управлять даже школьник)
  • совместим с различными платформами (iOS, Android, Linux, Mac, Windows и большинство других)
  • новая лицензионная политика включает подписку стоимостью $19 в месяц и 5% роялти, если игра заработает более $5,000, что делает движок куда более привлекательным для разработчиков, чем раньше.
  • субъективны. Некоторые разработчики жалуются, что к определенным инструментам сложно привыкнуть

CryEngine 3

Если внешняя составляющая игры - ваш пунктик, то вам нужен именно CryEngine 3.

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

HeroEngine

Этот движок хорошо зарекомендовал себя в создании мультиплеерных игр - взять хотя бы Star Wars: The Old Republic. Лицензия довольно дорогая и вряд ли подойдет начинающим разработчикам, но если ваш проект амбициозен, то я бы советовал рассмотреть этот вариант.

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

Rage Engine

Немногие могут конкурировать с широким спектром возможностей, которые предоставляет Rage Engine. Grand Theft Auto V, Red Dead Redemption и многие другие прославленные проекты сделаны при помощи этого движка.

  • широкие возможности для создания больших миров и погодных эффектов;
  • мощный AI;
  • множество стилей геймплея на выбор;
  • быстрый сетевой код.
  • интерфейс движка сравнительно неудобный;
  • управление плохо оптимизировано под клавиатуру и мышку.

Project Anarchy

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

  • если вы планируете разрабатывать игры на платформах iOS, Android и Tizen, то лицензия — бесплатная;
  • мощные инструменты для поиска и устранения багов;
  • сильное комьюнити;
  • издатель предоставляет четкую, понятную документацию и образцы;
  • Fmod для аудио-сопровождения;
  • мощный Havok AI .
  • отсутствует возможность разрабатывать игру на Mac и Linux;
  • нет вводного руководства для начинающих разработчиков;
  • если игра для ПК, то лицензия влетит вам в копеечку.

GameSalad

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

  • бесплатная лицензия (деньги с вас потребуют только за PRO-версию);
  • активное комьюнити;
  • отличный движок для быстрого создания прототипа;
  • совместимость с популярными мобильными платформами такими, как Cocona и Moai.
  • ограниченный набор инструментов разработки;
  • нет доступа к большинству возможностей платформы iOS.

GameMaker: Studio

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

  • простое и интуитивно понятное управление;
  • собственный язык программирования Game Maker Language (GML);
  • интеграция со Steam;
  • кроссплатформенность.
  • относительно сложно устранять неполадки в игре;
  • чтобы экспортировать свою игру на популярные платформы, придется доплатить круглую сумму.

App Game Kit

App Game Kit - кроссплатформенный софт для разработчиков. Ценится за универсальность и легкость в управлении.

  • позволяет писать коды для основных платформ: Android iOS, Windows, Mac и Linux;
  • поставляется в комплекте с IDE , что позволяет тестить игры на любом устройстве;
  • без дополнительной установки уже включает в себя IAP, AdMob и Push;
  • есть мощные скрипты для 2D графики, физики и сетевого взаимодействия.
  • поскольку мало кто работает с этим движком, то недостатки программы долго не устраняются (относительно слабая техподдержка);
  • множество багов (что органично следует из предыдущего пункта).

Cocos2D

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

  • отлично интегрирован в платформу iOS;
  • бесплатный и с открытым исходным кодом;
  • широкий выбор инструментов разработки;
  • сильная поддержка комьюнити.
  • более сложный в применении, чем большинство аналогов;
  • высокий порог вхождения;
  • «заточен» конкретно под Mac или iOS. Отсутствует кроссплатформенность.

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


© 2024
artistexpo.ru - Про дарение имущества и имущественных прав