Создай свою текстовую игру онлайн за 5 минут!
Не надо обладать навыками программирования, чтобы написать свою первую простенькую игрушку уже через 5 минут!
Не будем тянуть кота за хвост, приступим к созданию своей новой текстовой игры!
Комментарий разработчика.
Структура языка очень похожа на URQL, а значит тем, кто знаком с «уркой», разобраться будет проще некуда. Но синтаксис языка построен таким образом, что все символы базовых конструкций можно набирать не меняя раскладки клавиатуры на русском языке. Это очень удобно, когда, что называется, нашло вдохновение, и нет времени спотыкаться об англоязычные операторы.
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 — это легкий, динамичный язык, который является быстрым и очень мощным.
Проект
- Удобные пульты с надежными кнопками и светодиодной индикацией (подтверждение игроку, что он первый нажал на кнопку);
- Разъемное соединение пультов и устройства. Решено было сделать разъемы как на пультах, так и на самой системе. Был выбран разъем 4P4C (RJ11, обычно применяется в телефонных аппаратах). Такой выбор был сделан из-за небольших размеров и простоты ремонта кабеля — при наличии обжимного инструмента и коннекторов проблема решается в считанные минуты;
- Два возможных источника питания — внешний и внутренний. Забегая вперед — именно в реализации схемы питания я совершил наибольшее число ошибок;
- Система должна иметь разъем внутрисхемного программирования (ISP), чтобы можно было без лишних хлопот менять прошивку микроконтроллера;
- Не должно быть привязки к любым другим устройствам (компьютер и т.п.);
- Небольшие габариты.
Затем я на скорую руку набросал приблизительную принципиальную схему:
В качестве внешнего источника питания был выбран валявшийся без дела блок питания от старого модема — на выходе он имеет 12 В переменного напряжения. В роли внутреннего источника я выбрал батарейку типа «Крона» — ошибка №1. Для выработки необходимых для микроконтроллера 5 В я поставил линейный стабилизатор LM7805 — ошибка №2. О том, что это ошибки, я на практике узнал уже после сборки и тестирования устройства. Оказалось, что у «Кроны» весьма низкая емкость, да еще и почти половина ее уходила в никуда — на подогрев линейного стабилизатора. Однако, об этом позже.
Кнопки и разъемы, которые я выбрал для устройства, пришлось покупать на ebay — уж слишком высокие цены запрашивали местные торговцы. Правда, 10-миллиметровые светодиоды таки пришлось приобрести на радиорынке — ни на ebay, ни на aliexpress я не нашел индикаторных разноцветных светодиодов нужного диаметра.
Одним из важнейших и определяющих дальнейшее действие шагов был выбор корпуса. В своем городе ничего подходящего мне по качеству найти не удалось — пришлось воспользоваться торговыми площадками в Интернете. Устраивающий меня вариант нашелся в Киеве, там и были заказаны 5 корпусов — для основного блока и для пультов.
И вот, имея на руках все необходимые элементы, я стал продумывать дизайн устройства.
GDEVELOP
2D-движок с открытым исходным кодом, разработанный для удобства использования.
Фото: gdevelop-app.com
Для разработки: 2D-игр.
Платформы: Windows, macOS, Linux или браузерная версия.
Языки программирования: Нет, использует интерфейс Drag-and-drop.
Стоимость: Бесплатно.
Обучение: В вики GDevelop доступно множество руководств и учебных пособий, а также более 80 тестовых файлов о том, как создавать игры определенных жанров и вводить особые игровые функции.
Программы для создания игр
Что такое игровой движок
Программное обеспечение, с помощью которого гейм-студии создают свои продукты, принято называть «игровым движком». Самые известные из них — это Unreal Engine, Unity и CryEngine. В них заложены базовые механики, физика и поддержка графики, реализованные посредством одного или нескольких языков программирования. Чем сложнее движок, тем разнообразнее и интереснее можно построить геймплей на его базе.
В теории сделать игру на основе приведенных в пример игровых движков можно в одиночку, но для этого потребуются знания нескольких языков программирования и навыки графического дизайна. Гораздо рациональнее использовать готовые решения, речь о которых пойдет дальше.
Kodu Game Lab
Kodu Game Lab – бесплатная программа для создания 3D-игр. Изначально она была выпущена на платформе Xbox 360 для обучения детей основам геймдизайна. Закономерно, что процесс работы в ней максимально упрощен.
Программа представляет собой редактор карт с набором готовых трехмерных моделей, все действия задаются через интерфейс. Она не поддерживает пользовательские скрипты и загрузку дополнительных моделей, поэтому больше подойдет для создания несложной бродилки в открытом мире или интерактивного игро-фильма на карте.
Интерфейс Kodu Game Lab русифицирован, но качество перевода некоторых элементов управления оставляет желать лучшего. Поэтому придется потратить пару часов, чтобы разобраться в возможностях программы.
Construct 2
Construct 2 – приложение для создания двухмерных игр на базе HTML5 с возможностью задавать команды через интерфейс без программирования. Управление здесь осуществляется простым перетаскиванием элементов и отметкой триггерных зон (мест срабатывания скриптов).
Программа содержит внушительную коллекцию графических элементов, а также поддерживает загрузку сторонних изображений и моделей. Во время создания игры формируется скрипт в текстовом виде, который при необходимости можно отредактировать и расширить вручную. Для начинающих есть примеры готовых игр.
Construct подойдет для создания 2D игры любого жанра, кроме стратегий, поскольку не поддерживает курсор. В его бесплатной версии можно экспортировать игры только для браузера. Платная версия позволяет создавать мультиплатформенные приложения для ПК, iOS и Android. Лицензия стоит 50$ (примерно 3600 рублей).
Интерфейс программы переведен на русский, но элементы управления, которые задают скрипты, остаются на английском.
Torque 3D
Torque 3D – игровой движок, с помощью которого можно создавать полноценные 3D видеоигры. Для работы с ним также необязательно знать языки программирования, весь процесс разработки ведется посредством интерфейса. Он заметно уступает по функционалу Unreal Engine и CryEngine, но создать свой «3D экшон» с «набигающими эльфами» уровня начала двухтысячных реально.
Базовый набор инструментов Torque 3D рассчитан на создание шутеров от первого лица, тактических стратегий или гонок. Чтобы разрабатывать игры других жанров, нужны хотя бы минимальные знания языка программирования С++.
Программа полностью бесплатна и имеет поддержку русского языка.
RPGMaker
Название этого приложения говорит само за себя. RPGMaker VX Ace – средство разработки классических 2D ролевых игр. Создавать на ее основе продукты других жанров не получится. Для работы с этой платформой также не требуется специальных знаний, все управление ведется через интерфейс.
Несмотря на кажущуюся простоту, с помощью RPGMaker можно создавать большие игровые миры, наполненные персонажами и событиями.
К базовой версии приложения можно загрузить дополнительный модуль Game Character Hub: Portfolio Edition, который дает возможность разрабатывать новые персонажи и наборы сценариев.
Движок поддерживает воспроизведение трехмерной анимации небольшого размера. При необходимости скрипт игры можно изменить в любом текстовом редакторе.
Сейчас RPGMaker VX Ace можно купить в Steam со скидкой 85% за 179 рублей. Русского языка в стоковой версии нет, но при желании можно установить русификатор.
Ren’Py
Ren’Py – программа для создания визуальных новелл с использованием 2Д и 3Д моделей. Ее движок базируется на собственном языке программирования, который достаточно просто освоить. Вся необходимая документация представлена на сайте разработчика. Кроме того, Ren’Py содержит интерактивный обучающий модуль для начинающих. Чтобы его открыть, зайдите в раздел «Обучение» и нажмите «Запустить проект».
После недолгой загрузки появится окно игры, проходя которую вы освоите функционал.
С помощью Ren’Py можно создавать дистрибутивы игр для запуска не только на компьютере с Windows, но и на других платформах:
- iOS;
- Android;
- Web (запуск в браузере).
Также здесь есть возможность быстро извлечь текстовое содержимое сценария для перевода.
Приложение не содержит инструментов для разработки моделей. Фон, предметы, персонажи и анимацию нужно загружать со сторонних ресурсов или рисовать самостоятельно. Распространяется оно бесплатно, при желании можно поддержать разработчика донатом.
Как сделать интересную игру
Идея. Первым и самым главным шагом на пути создания собственной игры, является формирование идеи. К этому шагу относится определение жанра, игровой механики и оформления. Дайте своей аудитории то, чего она хочет.
Концепция игры. Когда идея будет сформирована в вашей голове, её надо перенести на бумагу. Задайте себе вопросы: “Что должно получиться?” и “Как это сделать?”. Записывайте все мелочи и достоинства, которыми будет обладать ваша игра.
Благодаря концепции, вы сможете четко представить будущую игру и сэкономите себе кучу времени.
Сценарий. Увлекательная история всегда будет подливать масло в огонь азарта геймеров. Потребитель должен понимать, на что он тратит свое время. Составив простенький сценарий, вы разожжете в игроке интерес, а если у вас есть талант писателя, то и вовсе соберете клуб фанатов. Главное не мудрить, иначе многие просто не поймут вашего замысла.
Как создать игру, ничего не умея. Часть первая: модели и анимации
Привет, меня зовут Павел, и я разработчик игр. На идею рассказать о разработке игр людьми, которые ничего не умеют, но горят желанием, меня натолкнул мой брат.
— Я придумал игру, создай мне её.
— А почему ты сам её не создашь?
— Я не умею.
И я задумался, а так ли сложно что-то создать с нынешним количеством уроков и тем по созданию игр в интернете?
С чего начать?
Для начала нам нужна идея, что за игру мы будем создавать, благо у меня была идея брата. Рассмотрим её поближе.
- Это РПГ в средневековом стиле (банально, не правда ли? =) )
- Она должна быть 3D, а не 2D (тут, кстати, довольно интересно, потому как в основном весь интернет пестрит роликами с 2D играми)
- Вид камеры от третьго лица
- Характеристики изменяются сами с повышением уровня, с упором на используемое оружие.
- Лимит уровней — 30
- Предметы привязаны к уровню персонажа (персонаж четвертого уровня не сможет использовать предмет пятого уровня)
- Движок, на котором всё будет работать (в моём случае это Unity: по работе с ним самое большое количество уроков на мой взгляд)
Думаю, что данный план вполне подойдёт для создания шедевра ААА класса =).
Начнём создавать шедевр
В первую очередь регистрируемся на сайте Unity, скачиваем и устанавливаем движок последней версии. Далее перевоплощаемся в человека, который совершенно ничего не знает о движке и о создании игр.
Идём в интернет и спрашиваем «как нам начать использовать Unity?».
Запускаем Unity Hub.
Выбираем NEW и далее 3D проект, пишем название и местоположение проекта.
И открывается сама программа.
И тут, наверное, знатоки начнут кидаться картошкой со словами «Зачем столько воды? Все и так это знают» НО! Материал предназначен в первую очередь для тех, кто ничего не умеет, а не для гуру геймдева =).
Дальше снова идём в интернет либо проходим туториал в самой программе, чтобы научиться основам работы с движком. Для того, чтобы воспользоваться туториалом в программе, нужно в окне Unity Hub нажать на строчку Learn и выбрать любой из проектов. Я советую пройти все уроки и посмотреть несколько роликов по созданию игр.
Как создать модели для игры?
- Научиться моделированию (сложно, долго, но интересно)
- Купить готовый пак моделей (быстро и просто, но за деньги)
Я выбрал второй вариант. Отправляемся в AssetStore. Если у вас не активировалась ваша учетная запись, повторно входим в личный кабинет. И начинаем искать подходящие паки. Я нашел то, что нужно, примерно за 3 минуты по поиску knight. В паке, помимо моделей самих персонажей, были модели окружения. Купил за 10 долларов, нажал Import, поставил все галочки, и пропала проблема, неумения моделировать. 1/4 игры готово.
Сцена
Дальше начинается самое нудное. Нужно собрать рабочую зону (scene, сцену, кому как привычнее называть).
Я привык сначала прописывать персонажей, анимацию, и прочую ненужную (очень нужную) ерунду в начале работы, а уже после того как основные механики готовы, я собираю уровень (локацию, игровую зону). Для начала давайте в сцену поставим кусок земли, на которой будет стоять наш персонаж, и начнём работать с анимацией.
Поскольку мы с вами в этом деле новички, снова лезем в интернет и смотрим, как нам поставить поверхность в игровую зону. Выбираем GameObject -> 3D Object -> Cube, после масштабируем его до простой площадки.
Далее добавляем персонажа (рыцаря, демона, ниндзю, тяночку, или кто вам больше по душе). Персонажа берем из папки Prefabs: мы уже знаем (вспоминаем, чему нас научили во вкладке Learn), что туда сохраняют полностью готовые объекты, персонажей и так далее.
И вот он, наш герой, который будет покорять всех и вся.
Анимация
Помните в рейде «Цитадель Ночи» в World of Warcraft был босс Алуриэль? Когда она произносила заклинания, то кричала «Аннигиляция, репликация, детонация, АНИМАЦИЯ. ». Нам необходимо с криком «Анимация!» наброситься на интернет и понять, как её сделать.
Изучаю кучу материала по созданию анимации, и…, либо я дурак, либо лыжи забыл. Реально перелопатил полтора часа материала, но так ничего более-менее подходящего не нашел. Поэтому я решил объединить несколько уроков в один и собрать простой способ анимации.
- Идём на сайт www.mixamo.com
- Регистрируемся
- Получаем огромное количество анимации на все случаи жизни
Что нужно в первую очередь? По мне — так научиться ходить и бегать. Возьмём анимацию ходьбы и бега.
- В поисковике анимации набираем walking, выбираем понравившуюся анимацию, и ставим галочку In Place
- Далее нам нужно подгрузить FBX модель от купленного пака для того, чтобы анимация не баговала (иногда такой модели может не быть в паке, но сейчас 99% разработчиков дают модель при покупке любого пака бесплатно либо она может лежать на официальном сайте). Тыкаем на upload character и загружаем модель FBX со смешным названием Mixamo_Guy_Naked.fbx.
- Видим, что наш FBX заменил стандартную модель миксамо, и при желании можно кастомизировать анимацию, но этого делать мы, конечно же, не будем. Меня всё устраивает. Я жмякаю кнопку Download, выбираю Frames per Second 60 — анимация ходьбы готова.
- Проделываем туже процедуру с анимацией бега (и другими, в зависимости от того, сколько вы их хотите добавить в данный момент)
Теперь создаём папку Animation в Unity и добавляем туда нашу анимацию. Начинаем настройку.
Вот мы и победили нашу анимацию! УРА! Теперь нам нужно подключить её к нашему персонажу. Вперед, к финишной прямой!
Выбираем персонажа, inspector, окно Animator, и в строке Controller нажимаем на кругляшок. Появится выбор, где мы и увидим нашу Animation, выбираем её и нажимаем на кнопку Play в Unity. Если вы всё сделали правильно, то сейчас должны наблюдать как ваш персонаж стоит, и у него проигрывается анимация Idle. То есть, он стоит и немного покачивается.
С анимацией разобрались, пора включать снова человека, который ничего не умеет =)
Скрипт W A S D
Анимация у нас есть, теперь нужно заставить нашего персонажа двигаться. Покопавшись в интернете, я узнал, что можно просто добавить компонент Character Controller. Так и сделаем — тыкнем Add Component, в поиск вбиваем Character Controller и добавляем его, в строке Center выставляем Y=1 (нужно, чтобы «яйцо» покрывало всего персонажа. Если у вас получилось меньше или больше, то просто настройте его вручную).
И снова прочесав гигантской расческой интернет, я всё же нашел скрипт, который у меня заработал. Значит, пора его добавить в Unity. Жмякаем правой кнопкой, Create -> C# Script. Назовём его Move. Добавим туда такой код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Move: MonoBehaviour
public float speed = 3.0F;
public float rotateSpeed = 3.0F;
void Update()
float horizontal = Input.GetAxis(«Horizontal»);
float vertical = Input.GetAxis(«Vertical»);
CharacterController controller = GetComponent();
transform.Rotate(0, horizontal * rotateSpeed, 0);
Vector3 forward = transform.TransformDirection(Vector3.forward);
float curSpeed = speed * vertical;
controller.SimpleMove(forward * curSpeed);
if (controller.velocity == Vector3.zero)
GetComponent().SetBool(«Idle», true);
>
if (controller.velocity != Vector3.zero)
GetComponent().SetBool(«Idle», false);
>
>
>
Тут я немного поясню скрипт.
Верхние четыре строчки — это подключение библиотек, public class — название скрипта. Если у Вас скрипт называется Moving или что-то в этом роде, то поменяйте название. Учтите, к регистру скрипт тоже придирчив.
public float speed = 3.0F; public float rotateSpeed = 3.0F; — это скорость персонажа, настраивается по желанию. Далее идёт подключение управления Character Controller и, соответственно, анимации.
Перетаскиваем скрипт в Inspector персонажа и проверяем. It’s ALIVE.
Но есть нюанс: поворачивается наш персонаж слишком быстро и не подключена анимация бега. Скорость поворота лечится просто — выставляем в строке Rotate Speed 0.5, и наш персонаж больше не использует чит-крутилку из CS GO. Теперь сделаем, чтобы наш персонаж все-таки побежал. Снова интернет, хотя, по мне, тут можно и логически додумать, как всё провернуть, но всё же я нашел строчку кода, чтобы всё заработало. Добавляем в наш код такую строчку
if (Input.GetButtonDown(«Fire3»))
GetComponent().SetBool(«Running», true);
else if (Input.GetButtonUp(«Fire3»))
GetComponent().SetBool(«Running», false);
Если у Вас возникли вопросы, что такое Fire3, то ответ прост: это LShift, а проверить это можно, зайдя File->Build Setting->Player Setting->Input Manager. Эту информацию также не составило труда найти в интернете.
После проверки наш персонаж при нажатии клавиши LShift сменил свою анимацию на бег, но при этом его скорость никак не изменилась. Снова уже по протоптанной дорожке идём сами знаете куда, и я снова нашел строчку кода, которая мне подошла и оказалась полностью рабочей.
В итоге весь скрипт у нас получился такого вида
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Move: MonoBehaviour
public float speed = 3.0F;
public float rotateSpeed = 3.0F;
void Update()
float horizontal = Input.GetAxis(«Horizontal»);
float vertical = Input.GetAxis(«Vertical»);
CharacterController controller = GetComponent();
transform.Rotate(0, horizontal * rotateSpeed, 0);
Vector3 forward = transform.TransformDirection(Vector3.forward);
float curSpeed = speed * vertical;
controller.SimpleMove(forward * curSpeed);
if (Input.GetKey(KeyCode.LeftShift))
speed = 6.0f;
>
else
speed = 3.0f;
>
if (controller.velocity == Vector3.zero)
GetComponent().SetBool(«Idle», true);
>
if (controller.velocity != Vector3.zero)
GetComponent().SetBool(«Idle», false);
>
if (Input.GetButtonDown(«Fire3»))
GetComponent().SetBool(«Running», true);
else if (Input.GetButtonUp(«Fire3»))
GetComponent().SetBool(«Running», false);
>
Всё проверили, всё работает, осталось только прикрепить камеру к персонажу. Без заморочек просто перетаскиваем Main Camera в нашего персонажа, далее её настраиваем как нам удобно, проверяем и празднуем ПОБЕДУ!
Заключение
Думаю, что на этом можно этот пост закончить, но впереди еще много работы: создание локации, проработка боя, квесты, предметы, музыка, и еще бесконечное количество вещей, которые можно сделать. Я пока не решил, буду ли в следующей статье строить город или же займусь боевой системой — всё будет зависеть от настроения.
Я считаю, что не имея никаких знаний и денег, а только немного терпения, можно самому создать свою игру. Если вас смущает покупка пака из Asset Store, то всегда можно найти бесплатные паки. Я порылся в интернете и нашел как минимум 6 ресурсов, которые их предоставляют. Советую помимо интернета начать изучение какого-либо направления гейм дева.
Все описанное в этой статье было собрано без специальных знаний с помощью интернета.