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

Программирование

Совет

Примечание переводчика: на самом деле в Unity используется C#, который похож на C++

  1. Типы данных и переменные. В основе кода лежат данные, которые хранятся в переменных. Можно объявить переменную так:
    int — тип данных, i — имя переменной, = 0 — значение переменной.
    Часто используемые типы данных: int и long — для целых чисел, float и double — для чисел с плавающей точкой, string — строчные данные.
  2. Условия. С помощью оператора if можно создать условия для выполнения кода:

    Используя оператор else, можно расширить условие и отобразить что делать, если условие не соответствует истине:

  3. Циклы for/while. While-циклы повторяют части кода, пока условие остаётся истинным. Как только условие перестаёт быть истинным, цикл обрывается.

    For-циклы похожи на while-циклы. Для while мы пишем так:

    Равнозначный for-цикл будет таким:

  4. Структуры данных. У нас есть данные, с которыми можно взаимодействовать. К тому же их можно хранить в особой структуре — массиве, списке, очереди, стеке или наборе.
    Простой примера массива:
  5. Функции и исключения. Функция — это короткая строчка кода, заменяющая огромное количество строчек кода. Например, выведем функцию EatBread(), которая содержит следующее:
  1. Язык. На каком языке вы будете программировать? Чаще всего игры пишут на C++, JavaScript или C#. Языки отличаются синтаксисом и областью применения.
  2. API (Application Programming Interface). Как только вы ознакомились с базой, приступайте к изучению программного интерфейса приложения для конкретного игрового движка. Они представляют собой набор полезных инструментов, упакованных в простые классы и функции. API сильно упрощает жизнь программиста.
  3. Посмотрите примеры проектов на выбранном игровом движке. Можно найти много бесплатных примеров игр на движках Unreal и Unity. Это позволит увидеть итог и весь процесс работы целиком, а также почерпнуть идеи для своей будущей игры.

Немного вдохновения.

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

    а не

    или

  • Декомпозиция. Сделайте из повторяющегося кода функцию и вызывайте её вместо копирования повторяющихся строк.
  • Шаблон проектирования Singleton («Одиночка»). Шаблон программирования, который позволяет данным храниться в одном месте.
  • Избегание статических переменных. Помимо использования синглтонов, я избегала статических переменных — они живут только на время игры, медленные и могут вести себя непредсказуемо.
  • Шаблон проектирования Observer («Наблюдатель»). Позволяет объекту узнавать о состоянии других объектов, не теряя компьютерного времени на проверку.
  • Сопрограммы. Позволяют начать выполнять действие, продолжать в течение нужного времени и затем прекратить. Я использую их для визуальных эффектов взрывов, резких движений.
  • Класс ScriptableObject. Он хранит данные с меньшими затратами, чем базовый класс MonoBehaviour.

Инструменты

  • Свой движок на C/C++. Низкий порог входа. (Примечание переводчика: на самом деле, создание своего движка требует больших усилий и глубокого знания принципов программирования).
  • Unity. Поддерживает 2D/3D. Требует знаний JavaScript/C#. Средний порог входа. Разработка для нескольких платформ.
  • Unreal. Поддерживает 2D/3D. Требует знаний C++. Средний порог входа. Разработка для нескольких платформ.
  • pixi.js. Только 2D. Требует знаний JavaScript. Средний порог входа. Разработка для браузера.
  • GameMaker Studio. Поддерживает 2D/3D. Требует знаний специального языка движка GML (Game Maker Language). Для новичков. Разработка для нескольких платформ.
  • Corona. Только 2D. Требует знаний Lua (похож на JavaScript). Для новичков. Разработка для нескольких платформ.
  • Visual Studio Code (для MacOS) — не зависает, имеет встроенную справочную информацию и удобные «горячие» клавиши.
  • Visual Studio (для Windows).
  • MonoDevelop — устанавливается с Unity, иногда подвисает.
  • .
  • .
  • Fungus.
  • Corgi Engine.
  • Dialogue System.
  • Post Processing Stack.
  • Keijiro Takahashi — работает над Unity, доступные проекты визуальных эффектов с открытым исходным кодом.

Программы для разработки игр на андроид

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

Game Maker

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

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

Unity3D

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

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

Unreal Engine 4

Достаточно мощная и бесплатная система, предназначенная для создания как 3Д, так и 2Д приложений. Разрабатывать игры можно как для телефонов, так и для планшетов и персонального компьютера.

Важно! Имеется настройка переделки интерфейса на русский язык

Создание собственной игры через Unreal Engine 4

Construct 2

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

Cocos2d-X

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

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

Разработка игр

  • 05/15/2015
  • Чтение занимает 20 мин

В этой статье

Создание веб-игры за час

Продукты и технологии:

Visual Studio 2013 Pro, Visual Studio 2013 Community, ASP.NET

В статье рассматриваются:

  • базовая философия разработки игр;
  • применение веб-технологий для разработки игр;
  • добавление игровых элементов управления и ИИ (искусственного интеллекта).

Разработка игр не требует совершенно нового набора знаний и навыков. По сути, ваши текущие навыки в веб-разработке с применением HTML, JavaScript, CSS и других средств замечательно подходят к широкому спектру игр. Когда вы создаете игру на основе веб-технологий, она будет работать почти на любом устройстве в браузере.

Чтобы доказать это, я продемонстрирую создание игры с нуля, используя веб-технологии и всего две внешние библиотеки, причем сделаю все это менее чем за час. Я буду рассказывать о самой разнообразной тематике, связанной с разработкой игр, — от базового дизайна и разметки, элементов управления и спрайтов до искусственного интеллекта (ИИ) (artificial intelligence, AI), пригодного для простого оппонента. Я даже собираюсь создать игру такой, чтобы она работала на ПК, планшетах и смартфонах. Если у вас есть некоторый опыт в программировании в качестве веб-разработчика или в другой области разработки, но нет никакого опыта в написании игр, эта статья послужит вам отправной точкой. Если вы дадите мне один час, обещаю ввести вас в курс дела.

Как создать игру на андроид с нуля

Чтобы разработать простую игру с нуля, потребуются только начальные знания. Общий алгоритм действий на примере Construct 2 по созданию самой простой игры по типу бродилки от пункта А до пункта Б выглядит следующим образом:

  1. Создание любого наиболее подходящего фона.
  2. Придумывание главного персонажа. В зависимости от пожеланий это может быть не только человек, но и животное или любой другой вымышленный объект.
  3. Создание и расстановка по всему полю условных предметов для сбора. Это могут быть фрукты, монетки, драгоценные камни и т. д.
  4. Написание алгоритма игры. Другими словами, что должно происходить: если персонаж коснулся воды — проиграл, если взял фрукт — продолжает движение и т. д.

Создание игры с нуля

Графическое оформление

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

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

Игровой процесс

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

Жанр

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

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

*Цены в статье указаны на март 2020 г.

Как зарабатывают на своих играх

Продажа на площадках

Steam — платформа цифровой дистрибуции, которая подходит для известных брендов. Здесь продается больше 10 тысяч игр, количество активных пользователей — 125 миллионов. Сервис обеспечивает соблюдение авторских прав, берет на себя маркетинг, предлагает разные варианты финансового сотрудничества.

App Store и Google Play — самый популярный вариант предложить свою игру сотням миллионов пользователей. Игра может распространяться бесплатно, но подразумевать покупки в процессе использования. Также популярный способ заработка — встроенная реклама, но главное, в чем способствуют данные сети, — именно распространение

Традиционно пользователи техники Apple являются более платежеспособными, поэтому те, кто знает, как зарабатывать на создании игр, в первую очередь предлагают версии для устройств на iOS.
Важно помнить, что обе площадки и App Store и Google play берут платежи за регистрацию аккаунта разработчика:

Apple — $99 в год, также 30% за покупки пользователей внутри приложения;

— $25 единоразово, также 30% за покупки пользователей внутри приложения.

Реклама внутри игры

In-App — размещение рекламных объявлений по ходу игры:

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

Хорошим вариантом является предоставление возможности приобретения платной функции, которая отключает In-App рекламу.

Платные дополнения и покупки в игре

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

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

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

Пожертвования

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

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

Краудфандинг

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

В 2018 году на краудфандинговой площадке Kickstarter разработчики видеоигр собрали 15,8 миллиона долларов. Но в последнее время этот вариант становится менее популярным. Подобные сообщества более ориентированы на создание ресурсов, которые приносят реальную пользу определенным категориям населения, чем на спонсирование развлекательных проектов, которые заведомо являются коммерческими.

Альтернативные движки

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

Софт для 3D-моделирования игр

Maya, Lightwave, 3ds Max, ZBrush — отличные программы трехмерного моделирования и анимации, но для инди они, увы, неподъемны в финансовом плане. Какие решения может предоставить open source для решения задачи моделирования?

Самым популярным редактором для 3D-моделирования с открытым кодом безусловно является Blender. Он появился еще в 1994 году и первые годы своей жизни был коммерческим продуктом. Начиная с 2002-го его код был открыт и опубликован по свободной лицензии. С того времени и ведется его активное развитие.

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

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

Также Blender содержит Blender Game Engine, с помощью которого можно разрабатывать простую игровую логику, обрабатывать столкновения и описывать реакции. Написание кода игровой логики происходит на языке Python. На нем же можно и расширять ассортимент тулз, входящих в Blender.

Программы для разработки игр. Blender с загруженной моделью

Помимо Blender существует еще одно бесплатное (пусть и не открытое) решение — TrueSpace. До 2008 года эту программу разрабатывали в компании Caligari. Затем права были куплены Microsoft, а в 2010 году разработка была прекращена, и последняя версия (7.61) выпущена бесплатно. Корнями это приложение уходит в далекий 1986 год. Тогда оно разрабатывалось для компьютеров Amiga. Только в 1994 году вышла первая версия TrueSpace для Windows.

Технологии, заложенные в TrueSpace использованы Microsoft в приложении 3D Builder (доступно бесплатно в Windows Store).

Blender с загруженной моделью. Windows Store

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

Программы для разработки игр. 3D Builder

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

3D-персонажи

Для быстрого создания трехмерных персонажей гуманоидного типа можно воспользоваться программой MakeHuman с открытым исходным кодом. Создание персонажа начинается с настройки параметров «болванки» (персонажа по умолчанию). Среди параметров: пол, возраст, рост, вес, мускулатура, поза и много другое. Приложение в чем-то напоминает Blender, но отличается простым и понятным интерфейсом.

Программы для разработки игр. MakeHuman

Нынешняя версия 1.1.0 разработана на C и Python. Графика обрабатывается и выводится средствами OpenGL. Изначально в 1999 году, когда автор MakeHuman разработал это приложение, оно представляло собой плагин для Blender и называлось MakeHead. Позднее, упершись в предел возможностей Python API, команда решила начать проект с нуля на C. Еще позже он был перенесен на C. Между тем, из-за того, что программу стало сложно разрабатывать и поддерживать, в 2009 году разработчики приняли решение вернуться к Python с ядром на C++, при этом они начали обособленный от Blender проект. Таким образом, первая стабильная версия MakeHuman вышла в 2014 году.

Подробнее работу с трехмерными персонажами и еще одно полезное приложение (Fuse) я разбираю в статье на моем сайте.

Играем стильно

Если бы вы загрузили эту страницу, то ничего не увидели бы, потому что никакого стиля не применено. Я уже подготовил ссылку на файл main.css в своем HTML, поэтому помещу все CSS в новый файл с тем же именем. Первым делом я позиционирую все элементы на экране

Тело страницы должно занимать весь экран, поэтому сначала я уделяю внимание этому:

Во-вторых, мне нужно, чтобы арена была заполнена фоновым изображением (рис. 3):

Рис. 3. Фоновое изображение для арены

Далее я размещаю табло. Я хочу, чтобы оно находилось вверху по центру — поверх других элементов. Команда «position: absolute» позволяет разместить его где угодно и оставить там: 50% — позиционирует табло посередине верхней части окна, но начиная с самой левой части элемента табло (scoreboard element). Чтобы гарантировать точную центровку, я использую свойство transform, а свойство z-index обеспечивает, что табло будет всегда находиться поверх других элементов:

Я также хочу использовать текст со шрифтом в стиле ретро. Большинство браузеров позволяет включать собственные шрифты. Я счел подходящим шрифт Press Start 2P от codeman38 (zone38.net). Чтобы добавить шрифт к табло, я должен создать новое начертание шрифта (font face):

Теперь результаты (scores) находятся в теге h1, поэтому я могу задать этот шрифт для всех тегов h1. На случай отсутствия этого шрифта я предусмотрю несколько запасных вариантов:

Для других элементов я буду использовать таблицу изображений-спрайтов. Таблица спрайтов (sprite sheet) содержит все необходимые игре изображения в одном файле (рис. 4).

Рис. 4. Таблица спрайтов для Ping

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

Любому элементу, имеющему изображение в этой таблице, будет назначен класс sprite. Тогда для каждого элемента я буду использовать background-position, чтобы определить, какую часть таблицы спрайтов мне нужно показывать:

Затем я добавлю класс sprite ко всем элементам, которые будут использовать таблицу спрайтов. Для этого мне придется ненадолго переключиться на HTML:

Теперь мне нужно указать позиции каждого спрайта в таблице для каждого элемента. И вновь я буду делать это с помощью background-position, как показано на рис. 5.

Рис. 5. Добавление смещений для таблицы спрайтов

Свойство position: absolute в player, opponent и ball позволит мне перемещать их по полю, используя JavaScript. Если вы посмотрите на страницу теперь, то увидите, что к элементам управления и мячу прикреплены ненужные куски. Дело в том, что размеры спрайтов меньше 128 пикселей по умолчанию, поэтому я подстраиваю их под правильный размер. Мяч всего один, и я задаю его размер напрямую:

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

После добавления этого класса элементы управления в игре выглядят гораздо лучше:

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

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

2D анимация

У вас есть два варианта для создания 2D анимации:

  • Кадр за кадром. Здесь вам придется рисовать каждый кадр анимации и затем соединять их воедино. Для этого вам следует использовать спрайт- листы вместе с TexturePacker (или, если вы используете Unity — Sprite Packer).
  • Скелетная анимация. Нарисуйте все нужные конечности объекта и затем анимируйте, меняя их положение относительно предыдущего состояния. Этот способ анимации быстрее, проще и сэкономит место на вашем жестком диске, по сравнению с анимацией «кадр за кадром». Если вы решили создать 2D анимацию и используете движок Unity — попробуйте начать с анимации спрайтов или Anima2D.
Добавить комментарий

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

Adblock
detector