Собственные игровые движки: небольшое исследование
Содержание:
- Unity
- Движок – определение
- Пишем класс Engine
- Unity
- IW Engine
- 2D анимация
- Альтернативные движки
- Corona
- UNITY
- 4A Engine
- libGDX
- Где обучаться созданию игр
- Python – определение
- Чтобы сделать игру, вы должны пройти 6 этапов разработки: Разработка идеи. Арт. Программирование. Звук. Шлифовка. Публикация.
- Этап №1: Разработка идеи
- UNITY
- Amazon Lumberyard
Unity
Unity используется повсеместно и являясь мультиплатформенным подходит под широкий спектр задач, хотя графически несколько уступает Unreal. Позволяет работать над 2D и 3D играми, создавая проекты под Windows, OS X, Playstation 4, XBox, Windows Phone, Android, Apple iOS и Linux, в том числе и под Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One, Nintendo Switch. Есть возможность создавать приложения для запуска в браузерах с помощью специального подключаемого модуля Unity (Unity Web Player), а также с помощью реализации технологии WebGL.
Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL. Движок используется как разработчиками ААА-игр, так и Indie-студиями. Есть собственный
, сильное и активное
и впечатляющее количество документации и видеоуроков.
В наличии движка простой легко настраиваемый Drag&Drop интерфейс, состоящий из различных окон и позволяющий производить отладку игры прямо в редакторе. Движок поддерживает скриптовые языки C# и JavaScript. Все расчёты физики производятся с помощью NVIDIA PhysX.
Лицензия
является бесплатной, однако, если доход вашей компании составляет больше 100 000 $ в год или же если вам удалось привлечь на разработку более 100 000 $, вы не имеете права использовать Unity Personal. Можно будет воспользоваться версией
для компаний, зарабатывающих до 200 000 $ в год, или
— она не накладывает никаких ограничений по доходу.
Движок – определение
Self контент игрового характера создается посредством специальных сред программирования. Обычно для этого используется игровой движок. Так называют пакет программ и утилит, которые необходимы для создания различных видеоигр и интерактивных приложений.
При помощи соответствующих компонентов удается получить:
- 3D и 2D-графику;
- скриптинг;
- звук;
- кат-сцены;
- рендеринг;
- сетевые коды;
- реализацию физического движка;
- внедрить искусственный интеллект.
Это – настоящий подарок для тех, кто планирует заниматься разработкой self made контента. Говоря простыми словами, рассматриваемый платформер – это база для игр.
О языках
Игровые объекты и другие составляющие как клиентской, так и браузерной self игрушки лучше внедряются через движки. Они бывают готовыми («чужими») и собственными. Первый вариант применяется в большинстве случаев. Лишь изредка крупные разработчики софта пишут для тех или иных проектов собственные движки (пример – REEngine от Capcom).
В основе платформеров лежит программирование на различных языках. Браузерные self games пишутся преимущественно на:
- JavaScript;
- PHP;
- Python.
Это – основные языки разработки веб-контента. Отдельное все они схожи между собой, но имеют собственные нюансы и особенности. Можно обучиться как одной «лексике» для успешной разработки self контента, так и нескольким. Второй вариант больше подойдет тем, кто планирует активное программирование «с нуля».
Лучшие платформеры
Игрушки, сделанные при помощи готовых платформеров-движков – это практически совершенный контент. Но многое зависит от того, какую именно «базу» выберет программер.
Вот несколько самых популярных на сегодняшний день вариантов:
- CryEngine;
- Unity 3D;
- Unreal Engine 4;
- GameMaker Studio 2;
- Cocos;
- Corona (он же Solar2D);
- Godot;
- libGDX.
Лучший контент для создания игр выбрать трудно. Но на практике в ходу софт и приложения, сделанные при помощи Unity 3D и Unreal Engine.
Что лучше для браузера
Self Made Games браузерного типа – это преимущественно 2D-софт. Для его воспроизведения используем разнообразные проигрыватели (пример – Flash Player) и расширения.
Браузерные утилиты должны быть:
- «легкими» по объему, иначе возможна долгая загрузка;
- с тщательно проработанной графикой;
- обладающими высокой частотой кадров;
- удобными;
- быстрыми.
Поэтому для соответствующего self контента нужно выбирать веб-языки. В идеале – Python. Это – отличный вариант как для новичков, так и для тех, кто долгое время занимается разработкой софта.
Пишем класс Engine
Класс Engine будет контролировать все остальное.
Engine.h
Добавим заголовок. Откройте окно Add New Item (так же, как для класса Bob), выберите Header File (.h) и в поле Name введите Engine.h. Добавьте в файл следующий код:
Класс библиотеки SFML, RenderWIndow, используется для рендера всего, что есть на экране. Переменные Sprite и Texture нужны для создания фона. Также в заголовке мы создали экземпляр класса Bob.
Engine.cpp
В Engine.cpp мы опишем конструктор и функцию start. Создайте файл класса так же, как для Bob.cpp, и добавьте в него код:
Функция конструктора получает разрешение экрана и разворачивает игру на весь экран с помощью m_Window.create. В конструкторе же загружается Texture и связывается с объектом Sprite.
Пример фонового изображения
Скачайте пример изображения или используйте любое другое на свое усмотрение. Переименуйте файл в background.jpg и поместите в каталог Simple Game Engine/Simple Game Engine.
Unity
Проекты на этом движке: Pokemon Go, West of Loathing, , Ori and the Blind Forest.
Программирование и киберкультура для школьников: Minecraft, Dota 2 и Unity
Учить детей играть в Minecraft и Dota 2 еще со школы? А почему нет? В какое прекрасное время мы живем!…
Unity
Плюсы Unity:
- Есть инструменты для быстрого создания прототипа будущей игры;
- Можно достичь высокого уровня производительности в проекте;
- Универсальное решение, которое используется как для маленьких проектов, так и для ААА-тайтлов.
- Проект имеет закрытый исходный код, если вы столкнетесь с каким-то багом, то придется ждать обновления Unity;
- Редактор кода и отладчик часто работают плохо и отнимают кучу времени у создателя;
- Не такой низкий порог вхождения, как в других движках. Чтобы сделать на нем игру, придется многое выучить.
IW Engine
Разработка Infinity Ward, ставшая платформой для серии шутеров Call of Duty.
Существует несколько модификаций технологии различными студиями, основой же является id Tech 3-й версии, адаптированный под нужды Infinity Ward.
OpenCL, например, заменён на поддержку DirectX 11.
Для разных серий CoD существуют собственные модификации.
Возможности технологии не сильно отличаются от функционала оригинала:
- отличное распараллеливание;
- отдельные технологии для обработки закрытых и открытых пространств;
- визуализация поверхности благодаря нескольким текстурным слоям;
- множество применяемых к изображению пост-эффектов;
- имитация контузии и реакции персонажа на попадания в него пуль и нанесения увечий иными способами;
- наличие атмосферной дымки и яркого солнечного сияния в жаркий день;
- поддержка перегрева ствола с учётом температуры окружающей среды;
- обработка теней с задействованием карт теней высокого разрешения;
- огромное количество полигонов в одном кадре;
- изменение качества текстур в зависимости от расстояния между ними и игроком;
- разные спецэффекты в различных игровых ситуациях.
Рис. 13 – Красота и зрелищность от части к части
Плюсы:
- большое разнообразие спецэффектов;
- моделирование отсутствия гравитации;
- очень высокая производительность;
- разнообразие поведения врагов, учитывающих особенности местности.
Минусы:
- хорошая графика только при высоких системных требованиях;
- развитие сосредоточено в основном на разнообразии визуальных эффектов.
2D анимация
У вас есть два варианта для создания 2D анимации:
- Кадр за кадром. Здесь вам придется рисовать каждый кадр анимации и затем соединять их воедино. Для этого вам следует использовать спрайт- листы вместе с TexturePacker (или, если вы используете Unity — Sprite Packer).
- Скелетная анимация. Нарисуйте все нужные конечности объекта и затем анимируйте, меняя их положение относительно предыдущего состояния. Этот способ анимации быстрее, проще и сэкономит место на вашем жестком диске, по сравнению с анимацией «кадр за кадром». Если вы решили создать 2D анимацию и используете движок Unity — попробуйте начать с анимации спрайтов или Anima2D.
Альтернативные движки
Я понимаю, что в настоящее время существуют инди-игры всех жанров на любой вкус (и это на самом деле хорошо), но мы под инди-играми в данном контексте подразумеваем маленькие, двумерные, ориентированные на мобильные устройства, созданные соло-разработчиком творения (которых преобладающее большинство), поэтому использовать Unity, UE4 для создания прототипов будет неоправданно сложно. Существует широкий выбор альтернативных движков, они проще в использовании и позволяют достигать впечатляющих результатов за меньший срок, минус спецэффекты, которые инди бы все равно не стал помещать в свою игру. Порой для создания полноценной игры под все платформы эти движки не требуют написания кода. Особенно меня продвинуло на тему альтернативных движков после участия в московской конференции разработчиков видеоигр White Nights 2017, прошедшей в октябре. Я подходил к инди-разработчикам, демонстрирующим свои проекты, и расспрашивал об используемом инструментарии. Во многих случаях они называли вовсе не Unity, а Construct 2 или GameMaker Studio.
Оба продукта представляют собой конструкторы двумерных игр, не требующие умения программировать (!). В Construct 2 игру создаешь, определяя игровые события и реакцию на них. Итоговые игры портируются под все распространенные платформы. Прога идет с подробной документацией, большим количеством примеров и теймплейтов, так что освоить ее несложно. Покупать советую в Steam, там ее стоимость за персональную версию составляет 6399 рублей.
Как самому создать игру. Construct 2 с открытым проектом
GameMaker Studio представляет собой популярный конструктор игр с двумя возможностями построения игры (подобно UE4): первая — методом drag and drop, вторая — писать код на собственном языке системы. В зависимости от целевой платформы игры, созданные с помощью GameMaker Studio, визуализируются с помощью OpenGL или DirectX с использованием соответствующих шейдерных технологий. Для обработки физики есть поддержка движка Box2D. Поддерживается широкий ряд устройств ввода. Десктопная версия в Steam стоит 1599 рублей, экспортеры для других платформ надо докупать: так, экспортер для web стоит 2579 рублей, для UWP — 6396 и столько же для мобильных систем.
Как создать игру самому. GameMaker Studio
Третий заслуживающий внимания альтернативный движок — AppGameKit. В отличие от двух предыдущих, разрабатывая с его помощью игры, надо писать код на скриптовом языке. Во многом благодаря этому он меня заинтересовал больше остальных. Стоимость этого движка в Steam составляет 2059 рублей, включая экспортеры под все поддерживаемые платформы. Хорошее вложение. За более подробным описанием архитектурной составляющей движка отсылаю тебя к упомянутой статье.
Раньше я надменно смотрел на эти тулзы, но теперь вижу в них силу, которая может сравниться с топовыми движками
Настало время обратить на них внимание и взять в комплект игродела
Где взять арт и прочий стафф?
В случае если ты программист и плоховато рисуешь/моделишь самостоятельно, весь необходимый для прототипа стафф можно купить в сторах топовых и альтернативных движков (например). Арт, звуки, шейдеры и другой стафф также можно найти в Steam. Они стоят не так дорого. Изображений в одном комплекте может быть несколько тысяч, но все они для разных игр, поэтому на прототип тебе их, может быть, и хватит, а вот для полноценного релиза — вряд ли. И тогда, возможно, ты найдешь свободных художников, на которых произведет впечатление твоя игра. И это правильно, ведь, работая с покупным артом, ты вынужден подгонять свой сюжет под имеющийся арт, а не наоборот.
Corona
Corona – игровой движок для двухмерных игр, позиционируемый его авторами как «самая продвинутая платформа для создания 2D-программ в мире». Это бесплатный фреймворк, заточенный под написание приложений для мобильных и стационарных платформ. Он использует широко известный язык Lua, отличающийся простотой освоения и универсализмом. Модульная конфигурация поддерживает подключение внешних API и расширений. В магазине доступно более двух сотен плагинов, отвечающих за эффекты, аналитику, мультимедиа, интеграцию рекламы и другие функции во время разработки ПО.
Встроенный симулятор поддерживает просмотр результатов труда разработчика и может тестировать примененные решения в режиме реального времени. Система Live Build обеспечивает тесты разрабатываемой программы без ручной установки, так как обновление выполняется автоматически.
Плюсы Corona
Преимущества игрового движка:
- бесплатная модель распространения;
- легкость для новичка;
- кроссплатформенность;
- удобство отладки и тестирования проектов;
- масштабируемость и поддержка внешних расширений.
UNITY
Unity – движок для инди игр с ограниченным бюджетом, но технологии потребовалось некоторое время, чтобы добиться успеха и повлиять на индустрию.
GooBall дебютировал с Unity в 2005 году, но только в начале 2010-х годов, когда такие игры, как Thomas Was Alone и множество мобильных хитов, распространились по всему миру, движок начали замечать. К середине этого десятилетия Unity уже была одной из самых популярных технологий в игровом мире, предлагая все больше и больше амбициозных проектов, включая такие независимые хиты, как Firewatch и Superhot.
Unity, который часто хвалят за простоту в использовании, универсальность и доступность, вряд ли куда-то денется в ближайшее время.
4A Engine
Движок, созданный украинскими программистами из 4A Games специально для их потрясающей тетралогии игр по постапокалиптической вселенной Дмитрия Глуховского. Ядро использует наборы API, использует программный интерфейс OpenGL, а также современные технологии Nvidia, вроде трассировки лучей в реальном времени, HairWorks и PhysX.
Прототип был разработан выходцами из студии GSC Game World за год до появления «Теней Чернобыля», но впервые увидел свет лишь в 2010 году с выходом Metro 2033. Отличительными особенностями 4A Engine можно считать продвинутое динамическое освещение с сотнями источников света в кадре, мягкие, отлично симулированные ткани, высокую разрушаемость окружения и подвижную дымку с переменной плотностью.
libGDX
libGDX – популярный в среде разработчиков мобильных программ кроссплатформенный фреймворк, использующий C++ и Java. Он полностью бесплатен и поддерживает популярные современные ОС. Это инструмент для продвинутых девелоперов, так как без развитых навыков программирования в нем никак. Зато он поддерживает работу с 2D и 3D, умеет работать с подключаемыми модулями и библиотеками.
SDK предлагает встроенную библиотеку элементов UI, которые можно использовать в составе своей программы. Проекты, созданные в libGDX, имеют модульную архитектуру, благодаря чему можно собирать игры на основе основного модуля ядра с подключением специфичных отдельных модулей для каждой платформы (Windows, Android, Linux и т.д.).
Плюсы libGDX
Плюсы фреймворка – это:
- бесплатность;
- кроссплатформенность;
- виджеты и библиотеки для разработки UI;
- подключаемые внешние расширения и модули;
- производительность.
Где обучаться созданию игр
- SkillBox — онлайн-университет, который предлагает сразу несколько курсов для желающих внедриться в сферу разработки игр. «Профессия геймдизайнер» это — обучение созданию игр от концепции до релиза. Используется движок Unity. Длительность обучения 8 месяцев, компания оказывает помощь в трудоустройстве, обеспечивает участие в реальных проектах.
- Нетология приглашает на курс «Геймдизайнер», в процессе которого кроме изучения базовых технологий обучающиеся создадут реальные проекты, необходимые для трудоустройства. Разработка прототипа собственной игры — на популярном движке Unreal Engine, программа обучения включает не только планирование и написание кода, но и ознакомление с маркетингом.
- Факультет разработки игр Онлайн-университета Mail.Ru приглашает на обучение и предлагает отправиться на собеседование с рекомендациями со своей полностью готовой игрой. Акцент — на практику, освоение актуальных технологий. Эти курсы по созданию игр хороши тем, что они проходят на реальном факультете реального университета. Обучением занимаются опытные разработчики с высшим образованием, имеющие ученые степени, практикующие программисты.
- Udemy — видеохостинг, где можно ознакомиться с большим количество разных курсов на любой вкус. Одни из самых популярных — Разработка игр на Unity 3D, Разработка HTML5 игр на Phaser 3. Можно также изучать геймдев на практике в процессе создания игры. Хороший пример — курс «Шахматы на C# и Unity», с помощью которого можно научиться программированию на C# и созданию игр на телефоне.
Python – определение
Приложения, написанные на Питоне – это быстрые и удобные, практически совершенные self утилиты. Браузерный софт основывается на скриптах. Python состоит из соответствующих «составляющих».
Это – стремительно развивающийся скриптовый язык. Применяется при решении разноплановых задач и достижения целей. На нем пишут self утилиты для:
- мобильных платформ;
- компьютеров;
- приставок.
Относится к высокоуровневым. Обладает хорошей читаемостью кодов, а также понятным синтаксисом, поэтому пользуется спросом. Используется повсеместно.
Софт, написанный на Питоне, считают кроссплатформенным. Его легко перенести из одной операционной системы в другую. Разрабы часто используют соответствующую «лексику» для создания браузерных игрушек.
PyGame – это
Тем, кто хочет заниматься созданием игр на Python, рекомендуется обратить внимание на такой объект, как PyGame. Без него self made контент будет трудно сделать
PyGame – элемент, который пригодится уже тем, кто имеет общее представление о Питоне. Пользователь должен быть знаком с такими понятиями как:
- классы;
- методы;
- функции;
- циклы.
Pygame – это некая библиотека, используется при создании self «мейд» софта 2D-типа. Сборник необходимых для реализации поставленной задачи инструментов.
Pygame – своеобразная оболочка мультимедийной библиотеке SDL. Используется для обработки опросов событий, вставки изображений в окна, а также «прикручивания» звуков и других важных для игрового процесса составляющих.
Pygame впервые появился в 2000 году, в ноябре. Обладает отличным комьюнити, а также сопутствующей документацией и всевозможными справками. Некоторые программеры называют Pygame фреймворком. Это не совсем правильно, но иногда такое «приравнивание» уместно. А еще Pygame часто считают игровым движком. При классификации соответствующего объекта можно сделать вывод: для ПО это – API Python к API библиотеке SDL.
Чтобы сделать игру, вы должны пройти 6 этапов разработки: Разработка идеи. Арт. Программирование. Звук. Шлифовка. Публикация.
Каждый из этапов я структурировала следующим образом:
- Совет. Здесь, я буду давать вам советы, основываясь на своем и чужом опыте.
- Ресурсы. Также, я буду прикреплять ссылки на те или иные ресурсы, которые будут вам наиболее полезны.
Этап №1: Разработка идеи
Совет
У вас есть отличная идея! Как вы ее запишите?
Каждый рано или поздно найдет для себя наиболее подходящий способ записи: кто-то будет писать 60-страничные проекты и документы, а кто-то, как я — писать кучу заметок на одной странице, понятные мне одной. Я не знаю, какой способ вы выберете, но я могу дать вам несколько советов о том, что нужно прописывать:
Изюминка. Почему вы считаете идею своей игры превосходной? Для меня это наиболее важный пункт в проекте. Как только вы определитесь с «изюминкой» вашей игры — прописать оставшиеся пункты проекта не составит вам большого труда! Ваша игра заставляет над чем-то задуматься? Может быть она скандальна? Или же это ремейк классики прошлого? Или это нечто новое, что никто и никогда не разрабатывал?
Механика. Что, как и с какой целью делает ваш игрок — это и есть геймплей вашей игры. Например: клавиши QWOP могут использоваться для простого перемещения или общения в «мистическом чате» игры, но также они могут быть использованы для составления множества боевых комбинаций, как в игре «Dwarf Fortress».
Сюжет. Какую историю вы хотите рассказать всем тем, кто будет играть в вашу игру? Какие эмоции они будут испытывать? У каждой игры есть своя история. Если сюжет вашей игры не так очевиден — придумать ее сможет и сам игрок. История может быть придумана в игре про числа «2048». Игрок, играя в популярную стратегию «Civilization», может сам придумать историю становления своего государства. Даже в игре «Monument Valley», с ее безмолвием, каждый додумывает свою историю. Подумайте, какую историю расскажет ваша игра?
Настроение
Какое впечатление окажет ваша игра на игроков? Каково будет ее графическое оформление? Какой звук? Первое впечатление об игре очень важно — игра может «зацепить» пользователя с первых минут и в итоге он будет играть в нее и дальше. Возможно вы сделаете вашу игру в стиле ретро: с пиксельной графикой и музыкой в стиле ретро-вейв
А возможно, вы выберете ультра-современный дизайн, с плоской геометрией объектов, «чистыми» текстурами и инструментальной музыкой.
*Сложно придумать хорошую идею для игры? На этом этапе всем нам бывает очень сложно что-то придумать. Что же делать?
- Присоединяйтесь к игре hackathon/jam. Вам и другим участникам будет поручено сделать игру за короткий промежуток времени. Во время участия в хакатоне вы встретите единомышленников, которые будут поддерживать и помогать вам. А что насчет творческого волнения и конкуренции во время работы? Все это благоприятно скажется на вас и на ваших навыках! Не знаете с какой площадки начать? Рекомендую попробовать Ludum Dare — одну из самых больших площадок для разработчиков!
- Записывайте все свои идеи! Я и многие другие разработчики, которых я знаю, записываем все свои идеи. Таким образом, когда вы не сможете ничего придумать, вы сможете вернуться к своим старым идеям и мыслям и что-то из них почерпнуть!
Когда вас неожиданно посещает муза или появляется вдохновение — отложите свои дела и запишите все мысли и идеи! И когда вы впадете в творческий ступор, вам не придется высасывать идеи из пальца.
UNITY
Кроссплатформенный коммерческий игровой движок, разработанный Unity Technologies. Он использовался для таких игр, как Untitled Goose Game, Ori and Will of the Wisps и Hollow Knight.
Фото: epicgames.com
Для разработки: 2D- и 3D-игр.
Платформы: Windows, macOS и Linux.
Языки программирования: C#.
Стоимость: Бесплатно для личного пользования предоставляется студентам и любителям, а также небольшим компаниям, которые зарабатывают менее 100 000 долларов в год. Помимо этого, существуют годовые планы, начинающиеся с 399 долларов в год или 40 долларов в месяц.
Обучение: Unity предоставляет некоторые бесплатные ресурсы, чтобы помочь новичкам начать работу с движком. Но в рамках программы Unity Learn Premium она предоставляет гораздо больше возможностей, включая курсы, учебные пособия и даже сертификаты. Unity Learn Premium в настоящее время бесплатна до 10 июня 2020 года, но обычно стоит 15 долларов в месяц.
Начало работы: https://learn.unity.com/tutorial/create-your-first-unity-project
Amazon Lumberyard
Бесплатное кроссплатформенное программное ядро ААА-уровня созданное стараниями Amazon на базе архитектуры CryEngine. Движок отличается очень высокой производительностью и интегрирован с принадлежащими Amazon сервисами, благодаря чему разработчикам открыт доступ к серверам компании и всевозможным преимуществам платформы Twitch.
Lumberyard стал сердцем долгостроя Star Citizen и ее сюжетного ответвления Squadron 42, демонстрируя невероятно красивый космос, объемные ландшафты планет и насыщенные деталями города. Кроме того, Lumberyard лег в основу многообещающего MMO-проекта New World и уже сейчас, на этапах закрытого теста, ощущается в игре превосходно.