Как создавать свои игры и зарабатывать на этом
Содержание:
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).
- Возможность дополнения функционала.
- Инструменты для совместной разработки.
- Возможность использования систем контроля версий.
Разработка игр
- 05/15/2015
- Чтение занимает 20 мин
В этой статье
Создание веб-игры за час
Продукты и технологии:
Visual Studio 2013 Pro, Visual Studio 2013 Community, ASP.NET
В статье рассматриваются:
- базовая философия разработки игр;
- применение веб-технологий для разработки игр;
- добавление игровых элементов управления и ИИ (искусственного интеллекта).
Разработка игр не требует совершенно нового набора знаний и навыков. По сути, ваши текущие навыки в веб-разработке с применением HTML, JavaScript, CSS и других средств замечательно подходят к широкому спектру игр. Когда вы создаете игру на основе веб-технологий, она будет работать почти на любом устройстве в браузере.
Чтобы доказать это, я продемонстрирую создание игры с нуля, используя веб-технологии и всего две внешние библиотеки, причем сделаю все это менее чем за час. Я буду рассказывать о самой разнообразной тематике, связанной с разработкой игр, — от базового дизайна и разметки, элементов управления и спрайтов до искусственного интеллекта (ИИ) (artificial intelligence, AI), пригодного для простого оппонента. Я даже собираюсь создать игру такой, чтобы она работала на ПК, планшетах и смартфонах. Если у вас есть некоторый опыт в программировании в качестве веб-разработчика или в другой области разработки, но нет никакого опыта в написании игр, эта статья послужит вам отправной точкой. Если вы дадите мне один час, обещаю ввести вас в курс дела.
Распознавание коллизий
game.js
- Все сталкивающиеся объекты являются кругами, а это простейшая для реализации распознавания коллизий фигура.
- У нас уже есть метод , который мы в предыдущем разделе реализовали в классе .
collisions.js
два круга сталкиваются, если расстояние между их центрами меньше суммы их радиусов
- Снаряд не должен попадать в создавшего его игрока. Этого можно достичь, сравнивая с .
- Снаряд должен попадать только один раз в предельном случае одновременного столкновения с несколькими игроками. Эту задачу мы решим с помощью оператора : как только найден игрок, столкнувшийся со снарядом, мы прекращаем поиск и переходим к следующему снаряду.
Насколько сложно создать игру
Каждый пользователь при желании может попробовать разработать свою мини игру даже в том случае, если у него не имеется каких-либо глубоких познаний в программировании. Для создания своего приложения потребуется лишь обладать минимальным знаниями о хотя бы одном языке программирования.
Кроме того, в процессе программирования простейших игр также не требуется полное знание программы Photoshop или же каких-либо творческих навыков. А вот в случае с более сложными играми безусловно необходимо наличие навыков рисования и дизайнерского вкуса. Также, стоит отметить, что большинство игр для мобильных устройств можно создавать в специальных конструкторах, что значительно упрощает весь процесс.
Исходя из этого можно сделать вывод о том, что на самом деле процесс создания мобильных приложений не так уж и сложен. Для этого потребуется лишь следующее:
- Представление о том, как должна выглядеть будущая игра;
- Минимальное владение языком программирования, например, Java;
- Наличие установленной программы-конструктора.
Обучение геймдизайну в России
В России на гейм-дизайнера в вузах не учат — таких образовательных программ нет. Пройти обучение можно только на специализированных курсах.
Геймдизайн можно осваивать самостоятельно, но наступает момент, когда надо выбрать оффлайн- или онлайн-курсы
В сети разработчики охотно делятся своими знаниями с новичками, есть профильные ресурсы (например, Gamasutra), бесплатные вебинары и книги (Джесси Шелл «Искусство геймдизайна»).
Новичкам желательно изучить:
- программы Sketch, Photoshop;
- принципы создания интерфейса Apple’s UI Do’s and Don’ts, Google Material Design;
- создание 2D-объектов в Paint Tool SAI, Gimp, Photoshop;
- создание 3D-объектов: Max (отрисовка), Blender (сложное обучение), Maya (анимация);
- игровые ассеты (элементы игрового контента): Open Game Dev Art (библиотека графики), Behance (шрифты и иконки), KennyNL (готовые к использованию объекты).
Платные онлайн-курсы обучения геймдизайну
Выпускники большинства IT-школ с дистанционным обучением по завершению курса готовы к работе в студии на позиции гейм-дизайнера, инженера по данным, специалиста по контролю качества. Знаний, которые дают на онлайн-курсах достаточно, чтобы выпустить собственный коммерческий продукт.
Вводная часть любого курса — лекции по игровым классификациям, психологии, менеджменту и маркетингу, формированию геймплея, процессу разработки игры, мастер-классы. Обязательно есть практическая часть, презентация и защита концептов. Большинство платных курсов предполагают получение диплома.
Бесплатные курсы геймдизайна
Бесплатные курсы небольшие по продолжительности, но хорошо проработанные по разным аспектам геймдизайна. Такие проекты запускают крупные студии-разработчики и зарубежные университеты. Большинство программ обучения на английском.
Лучшие курсы геймдизайна в Москве
Очные курсы в Москве — это возможность разработать собственную игру под руководством опытного наставника. Прежде чем записываться на курс, желательно посетить пробное занятие, чтобы ознакомиться с методикой подачи материала, преподавателем, программой. Лучше выбирать курсы, которые ведут гейм-дизайнеры действующих студий.
Программы для создания 2D игр
Game Maker
Программа предназначена для создания двухмерных игр без использования языков программирования. Вместо строчек кода подставляются уже готовые действия игровых персонажей. Пользователю остаётся лишь создавать игровые объекты, снабжать их двухмерными спрайтами или анимацией, создавать правила взаимодействия между объектами, расставлять объекты на уровнях. Рисовать графику и анимацию можно прямо в «Game Maker», не используя сторонних программ.
В этой программе отлично получаются игры с видом сверху, и платформеры с видом сбоку.
«Game Maker» будет интересна и продвинутым программистам, возможность добавлять свой программный код здесь так же имеется.
Бесплатный вариант программы ничем не ограничивает обычных пользователей, по сравнению с платной версией «Game Maker Pro». Платная версия открывает доступ к сложным программным модулям, интересным лишь настоящим профессиональным программистам.
Game Makerver. 8.1.140(21.12.2011 г.) | Интерфейс: Рус/Англ Платформа: 2000/XP/Vista/7 32-bit |
Construct 2
Очень простой конструктор 2D игр. Знание языков программирования не обязательно.
В отличие от «Game Maker», в «Construct 2» можно создавать игры для iOS, Android, Facebook, Chrome Web Store, Desktop Windows, Windows 8 Apps, Web (HTML5), Kongregate и для множества других платформ.
Это более качественная программа, но и более жадная до денег. Бесплатна программа до того момента, пока вы не захотите продавать свою игру. В этом случае нужно будет купить лицензионную версию. Так же на сайте разработчиков есть специальный магазин, где вы можете покупать строительные ресурсы для своей игры: наборы звуков, музыку, подробные инструкции.
Construct 2Release r126(17.04.2013 г.) | Интерфейс: Англ Платформа: 7/Vista/XP |
Фаза тестирования
Получив предварительную версию игры (не путайте с прототипом), переходите к поиску багов и ошибок. Будет лучше, если их найдёте вы, а не потенциальные игроки в первый же день после релиза.
Делайте акцент на моменты, которые несвойственны вашему стилю игры. К примеру, заходите в части карты, которые не задействованы во время основного геймплея. Тестирование иногда занимает больше времени, чем сама разработка, а его скорость зависит от количества и профессионализма тестеров.
Если же багов невероятное множество, сперва исправляйте наиболее масштабные. Поэтому начинайте их поиск как можно раньше – так будет больше времени на внесение правок. Кроме того, предложите поиграть друзьями и знакомым. Взгляд со стороны позволит заметить множество нюансов, о которых вы сами бы никогда не догадались. К тому же – это абсолютно бесплатно.
CryEngine 5
CryEngine — игровой движок, созданный немецкой частной компанией Crytek в 2002 году и первоначально используемый в шутере от первого лица Far Cry. В середине марта компания предоставила миру новый, пятый CryEngine. Движок абсолютно бесплатен и воспользоваться им, может любой желающий, с помощью которогоможно создать игру, различного жанра и различной сложности.
- CryEngine Sandbox: редактор игры в реальном времени, предлагающий обратную связь «Что Вы видите, то Вы и ИГРАЕТЕ».
- Рендерер: интегрированные открытые (англ. outdoor) и закрытые (англ. indoor) локации без швов. Также рендерер поддерживает OpenGL и DirectX 8/9, Xbox с использованием последних аппаратных особенностей, PS2 и GameCube, а также Xbox 360.
- Физическая система: поддерживает инверсную кинематику персонажей, транспортные средства, твёрдые тела, жидкость, тряпичные куклы (англ. rag doll), имитацию ткани и эффекты мягкого тела. Система объединена с игрой и инструментами.
- Инверсная кинематика персонажей и смешанная анимация: позволяет модели иметь множественные анимации для лучшей реалистичности.
- Система игрового искусственного интеллекта: включает командный интеллект и интеллект, определяемый скриптами. Возможность создания особенных врагов и их поведения, не касаясь кода C++.
- Интерактивная динамическая система музыки: музыкальные дорожки отвечают действиям игрока и ситуации и предлагают качество CD-диска с полным 5.1 звуковым окружением.
Скачать CryEngine
Какие Шаги Требует Создание Игр?
На первый взгляд, обучение тому, как создать игру может быть сложным. Вы даже можете потерять мотивацию и оставить разработку игр экспертам. Однако я бы посоветовал вам не сдаваться так просто! Вместо этого, вам нужно лишь немного углубиться в процесс того, как делают игры. На самом деле это не настолько сложно как вы думаете.
Давайте рассмотрим пошаговое руководство, которое поможет вам узнать, как создать игру
Однако сразу хотим обратить внимание, что данный процесс может отличаться в зависимости от типа создаваемой игры. Хотя общая идея будет сохраняться
Шаг 1: Проведите Исследование и Составьте Концепт Игры
Первый шаг для создания вашей собственной игры будет включать определение типа игры, которую вы пытаетесь создать. Проведите некоторые исследования и узнайте, какие навыки вам будут необходимы для её создания, а также какие у неё будут особенности.
Если вас всерьёз заинтересовала тема, как создать свою игру, то вы должны пройти несколько вводных курсов. Например, если вас интересует создание ролевой 2D-игры, то я бы порекомендовал взглянуть на курс про создание 2D-игры на Unity.
Есть даже более специализированные курсы. Например, создание паззл игры для iOS, поможет вам разобраться в создании игр без программирования. Однако это не всегда является хорошей идеей – честно говоря, я думаю лучше всего узнать, как создать игру с нуля, нежели очередной клон. Хотя эту тему обсудим немного позднее.
В качестве альтернативы, если вы всегда были поклонником «The Legend of Zelda», я бы порекомендовал Полное руководство о том, как сделать видеоигру наподобие «The Legend of Zelda». Этот курс научит вас создавать простую ролевую игру с Unity и Blender. Пройдя этот курс, вы получите навыки Unity, C # и Blender одновременно!
Шаг 2: Поработайте Над Проектным Документом
Как только у вашей игры появится базовый концепт, и вы начнёте обдумывать как она должна выглядеть, вам нужно будет создать проектный документ. Для большинства людей этот документ представляет собой краткий набросок игры: как она должна выглядеть и что вам нужно сделать для её создания.
При создании своего проектного документа рассмотрите следующие аспекты:
- Доступные вам навыки. Создание игр может стать дорогим удовольствием, если вам нужно будет нанимать кого-то за неимением у вас нужных навыков.
- Какой язык/языки вы собираетесь использовать. Это поможет вам определить способ создания некоторых вещей в вашей будущей игре.
- Как она должна выглядеть/вести себя.
- Хотите ли вы проводить обновления или выпускать новые релизы в будущем. Если да, то вам нужно будет обдумать способ проведения данного процесса.
Как только ваш проектный документ обзаведётся парой десятков страниц, для вас настанет время начать программирование!
Вы знали?
Программирование
Совет
Примечание переводчика: на самом деле в Unity используется C#, который похож на C++
-
Типы данных и переменные. В основе кода лежат данные, которые хранятся в переменных. Можно объявить переменную так:
int — тип данных, i — имя переменной, = 0 — значение переменной.
Часто используемые типы данных: int и long — для целых чисел, float и double — для чисел с плавающей точкой, string — строчные данные. -
Условия. С помощью оператора if можно создать условия для выполнения кода:
Используя оператор else, можно расширить условие и отобразить что делать, если условие не соответствует истине:
-
Циклы for/while. While-циклы повторяют части кода, пока условие остаётся истинным. Как только условие перестаёт быть истинным, цикл обрывается.
For-циклы похожи на while-циклы. Для while мы пишем так:
Равнозначный for-цикл будет таким:
-
Структуры данных. У нас есть данные, с которыми можно взаимодействовать. К тому же их можно хранить в особой структуре — массиве, списке, очереди, стеке или наборе.
Простой примера массива: - Функции и исключения. Функция — это короткая строчка кода, заменяющая огромное количество строчек кода. Например, выведем функцию EatBread(), которая содержит следующее:
- Язык. На каком языке вы будете программировать? Чаще всего игры пишут на C++, JavaScript или C#. Языки отличаются синтаксисом и областью применения.
- API (Application Programming Interface). Как только вы ознакомились с базой, приступайте к изучению программного интерфейса приложения для конкретного игрового движка. Они представляют собой набор полезных инструментов, упакованных в простые классы и функции. API сильно упрощает жизнь программиста.
- Посмотрите примеры проектов на выбранном игровом движке. Можно найти много бесплатных примеров игр на движках 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, доступные проекты визуальных эффектов с открытым исходным кодом.
Construct 2
Проекты на этом движке: Insanity’s Blade, Mortal Melon, DinoSystem.
Construct 2
Как создаются видеоигры от идеи до продажи
Разбор всех этапов разработки видеоигр начиная от цели будущего проекта и заканчивая старатом продаж….
Плюсы Construct 2:
- Не нужно писать код, идеально подойдет новичку;
- Множество инструментов для простой разработки 2D игр;
- Интуитивно понятный интерфейс, легко разобраться с тем, как создавать игры.
- Неудобно использовать для 3D игр;
- Чтобы сделать игру более проработанной, придется платить;
- Редко появляются обновления движка с новыми возможностями. Как правило, просто шлифуется готовое.
Urho3D
Бесплатный кроссплатформенный движок для работы с 2D и 3D, основанный на языке C++ и выпущенный по свободной лицензии Массачусетского технологического института (MIT). Название в переводе с финского означает «герой». Движок частично вдохновлён OGRE и Horde3D. Свободно распространяется на портале GitHub.
Преимущества:
- регулярные обновления;
- внушительный список технических возможностей;
- гибкость технологии, дающая разработчику больше свободы;
- возможность собрать простую игру в короткие сроки при знании кода.
Недостатки:
- высокий порог вхождения для тех, кто не знает основы С++;
- сложная установка: нужно скачать архив, скомпилировать движок с помощью CMake, включить необходимые параметры (при этом убедиться, что все необходимые папки есть в наличии);
- перегруженный интерфейс.
Игры на движке: Clinically Dead, Borderline, HellBreaker.
«<…> Я выбрал движок Urho3D, чтобы менять исходный код под свои нужды. На своём опыте я убедился, что это потрясающий инструмент, который поддерживается небольшим, но очень отзывчивым сообществом. Если вы разработчик и находитесь в поиске мультиплатформенного (Windows, Mac, Linux) бесплатного игрового движка — Urho3D обязателен для ознакомления».
Павел Могила (Pawel Mogila), инди-разработчик (Clinically Dead).
Блог разработчика, сентябрь 2015 года
Clinically Dead
Godot
Движок разработан двумя программистами из Аргентины — Хуаном Линетски (Juan Linietsky) и Ариэлем Манзур (Ariel Manzur) в 2007 году. Несколько лет Godot был основой для внутреннего ПО некоторых латиноамериканских компаний. До того как исходный код движка выложили в открытый доступ, его итерации выходили под разными названиями: Larvotor, Legacy, NG3D и Larvita. Godot до сих пор активно поддерживается благодаря пожертвованиям на Patreon от сообщества, заинтересованного в развитии технологии.
Kingdoms of the Dump — игра, созданная на Godot
Достижения:
- согласно данным портала itch.io, Godot занимает пятое место среди самых популярных игровых движков, оставив позади себя RPG Maker и Unreal Engine 4;
- на Godot сделано более 5 000 проектов;
- в начале 2021 года разработчики получили грант на 120 тысяч долларов от волгоградской студии «KEFIR!».
Преимущества:
- подходит для 2D-игр;
- в отличие от Unity, поддерживает систему измерения в пикселях и облегчает создание пиксель-арта;
- мультиплатформенный редактор (Windows, macOS, Linux) работает в двух режимах — 32 и 64 бита;
- скрипты реализованы проще, чем в других движках: помимо собственного GDScript, есть полная поддержка C# 8.0, C++, а также визуальное программирование;
- гибкая система анимации объектов, встроенная в движок;
- наличие подробной документации в сообществе, а также много полезной информации на reddit.
Недостатки:
- 2D-физика и тени реализованы хуже, чем в других бесплатных движках;
- могут возникнуть трудности с перемещением и изменением объектов на уровне;
- 3D-движок не может конкурировать с более мощными альтернативами;
- не поддерживает консоли;
- ограниченная интеграция со сторонним API;
- отсутствие знаковых хитов.
Игры на движке: Kingdoms of the Dump, The Garden Path, Until Then, Ex Zodiac, GDQuest.
Я заинтересовался Godot, когда искал альтернативу Unity/UE4 c открытым исходным кодом, и начал с ним работать в октябре 2019 года. До этого я делал игры на GameMaker, потом перешёл на Unity, чтобы сделать первую 3D-игру, и продолжал на нём работать, пока не попробовал Godot. Теперь я работаю только на нём. В процессе разработки нередко возникают проблемы с исправлением багов. Некоторые ошибки появляются в самых неожиданных местах, и сложно найти корень проблемы. Ситуацию усложняет скудное и запутанное описание к ним
Я 3D-художник, для меня важно, чтобы 3D-сцены отлично выглядели. Поэтому хотелось бы, чтобы в следующих версиях улучшили возможности графики: физически корректный рендеринг, связанный с динамическим и статическим глобальным освещением, эффекты окружающей среды и постобработки
При этом должны быть хорошая производительность и оптимизация. Об этом стоит задуматься, ведь наличие 4K-дисплея у игрока скоро станет нормой».
Леонардо «Leocesar3D» Велозу (Leonardo «Leocesar3D» Veloso), инди-разработчик (Human Diaspora).
Интервью в марте 2021 года
Human Diaspora
«Каждый день я сталкиваюсь с молодыми людьми, убеждёнными в том, что Unity и UE4 — это единственные движки, которые стоит изучать. Они игнорируют тот факт, что экосистема геймдева разнообразна: игры создаются как на популярных, так и на собственных движках. <…> Godot не конкурирует с другими инструментами, ведь он создан не для прибыли. Мы заинтересованы в том, чтобы мотивировать разработчиков поработать на нём. Это поможет не только развеять мифы о разработке игр, но и увеличит количество людей, активно работающих над улучшением технологии, которая навсегда останется бесплатной для всех».
Райан Хьювер (Ryan Hewer), CEO Little Red Dog Games (Precipice).
«What is the best game engine: is Godot right for you?», апрель 2020 года
Precipice
Третий этап — графика
Графика обычно делается параллельно с процессом разработки и написания кода, и обычно ей занимается отдельный человек. Очень трудно совмещать работу не только программиста, но и дизайнера, однако иногда это удаётся сделать в одиночку, к тому-же некоторые проекты не требует очень качественной графики, либо-же берутся уже готовые картинки и спрайты.
Читайте: Где брать спрайты для игр?
Графика и рисование это очень затратный процесс.По моему опыту, если вы делайте игру в одиночку, на графику может уходить 40-60% общих затрат времени. По сути дела для инди разработчика одиночки хорошая графика может удвоить общее время на создание игры. И если удвоение с 1 месяца до 2 это не страшно, то удвоение с 2 до 4 лет, это очень много.Поэтому крайне рекомендуется для начинающих разработчиков использовать все возможные способы получить бесплатную графику (может быть взять художника/дизайнера в долю) или же в качестве первых игр сделать графическое оформление минимальным.В крайнем случае, можно заказать графику отдельно на стороне, с помощью аутсорса.
Однако, если вы хотите сделать всё сами, то есть множество способов научиться рисовать. Я тоже учусь (недавно купил планшет) и для обучения рисованию могу посоветовать вам некоторые хорошие ютуб каналы:
Хорошие YouTube каналы про Геймдев и Графику