Содержание
Разработка игр сложный процесс. Для создания одного проекта требуется финансирование и штат сотрудников. Чтобы дать возможность одиночкам попасть в игровую индустрию, компании сделали движки. В этой статье разберём, какие программы для создания игр без программирования есть, а также приведем пример, как создать игру самому на компьютере.
Делать будем шутер для одного игрока. Летающий корабль атакует космический мусор. Сначала перечислим список лучших, на наш взгляд, программ для создания игр.
Unity Creator Kit
Изначально предполагалось, что прежде чем работать с Unity, нужны знания C# или другого языка.
Но начинающие могут попробовать Creator Kit.
Что это такое? Это готовый набор ассетов и полезных уроков.
Пользователь переносит файлы в редактор и пишет сюжет, диалоги и многое другое. Весь процесс проходит быстро. В кратчайшие сроки можно выпустить свою игру. Для каждого жанра есть свой набор ассетов.
- FPS – для шутеров.
- RPG – для ролевых игр.
- Puzzle – для головоломок.
Gdevelop
Программа для создания игр без программирования. Доступна в двух версиях – на ПК и онлайн. Чтобы открыть новый проект – зарегистрируйтесь. При старте пользователь получит ряд инструментов для разработки. Здесь есть панель для создания спрайтовой анимации.
Чтобы добавить tile, воспользуйтесь командой Tiled Sprite.
При добавлении спрайтов их можно масштабировать. Особенность тайла, дублирование, а не растягивание. При увеличении масштаба вы получите плиточный мир.
Популярным жанром всегда был платформер. Чтобы перемещаться по уровням и перепрыгивать блоки, нужна гравитация. Здесь для этого выделен специальный раздел.
На стартовой странице есть обучение и примеры других пользователей.
В настройках можно включить русский язык.
Бесплатный аккаунт даёт создать одну игру и опубликовать на Android и ПК. Остальные тарифы можно узнать в разделе Price(Цена).
Clickteam Fusion 2.5
Популярным приложением в своё время была Multimedia Fusion 2 (MMF).
Следом выпустили Clickteam, который пришёл на замену MMF.
Интерфейс простой. Загружаем декорации, героя, добавляем различные действия и готово.
За несколько минут можно собрать игру платформер, откомпилировать и запустить в браузере при этом не написав и строчки кода.
В качестве языка программирования используется JavaScript. Все задачи переводятся в JS автоматически.
Команды задаются с помощью панели настроек. Если нужно сообщить, что проект платформер, выбираем героя, переходим в Movement и там указываем жанр. После этого автоматически добавиться гравитация и можно перемещаться по локации перепрыгивая пропасти (кнопка Shift по умолчанию).
Construct
Чтобы создать персонажа, достаточно щелкнуть по области и во всплывающем окне выбрать sprite. Физика и задачи формируются с помощью команд.
Как создать свою игру? В Construct это делается в несколько кликов. Можно создать платформу. Выбираем персонажа Behaviors и добавляем Platform. Проделываем то же самое для блоков, только выбираем Solid. После этого герой сможет бегать по блокам и делать прыжки.
Пример показан на скриншоте.
Редактор подойдет для новичков. Construct разработан специально для мобильных приложений.
Game Maker Studio
Программа для создания игр без программирования. Простой интерфейс. Разработка сводиться к добавлению событий (Event) и привязка к ним действия (Action). Для создания первой игры можно обойтись без написания кода.
Составление скриптов требуется для более крутых проектов с элементами искусственного интеллекта. На начальном этапе хватит и стандартного набора. Перечислим, что входит в интерфейс.
- Древовидная структура – сюда добавляются картинки и элементы, которые будут использоваться в проекте.
- Properties – свойства.
- Events – события, нажатие клавиши и другие.
- Action – что будет происходить при запуске события? Формируется списком в отдельном окне.
- Библиотека действий – перетаскиваем триггеры в область. Когда персонаж окажется на сцене, привязываем к нему задачи для запуска. Более подробно ниже.
Как создать свою игру – выбор движка?
Решили использовать Game Maker Studio.
Проект – стрелялка.
Задача: Летать по космосу и стрелять в движущуюся цель. Условия победы: все метеориты уничтожены.
Ассеты (assets) – это картинки формата png с прозрачным фоном, которые будем использовать.
В проект добавим следующие ассеты: космический корабль, метеориты, задний фон космоса, эффект взрыва (большой и маленький).
Как создать свою игру без программирования – Астероиды?
Прежде чем приступим к созданию игры, подготовим картинки. Они будут добавляться в проект по мере надобности. Список ассетов показан ниже, там указаны размеры в пикселях, спрайтовая анимация и сколько кадров участвует в одной анимации.
Кроме того, обозначили ширину и высоту одного спрайта.
Всего в программе будет задействовано 8 текстур, включая и background.
При составлении листа с графикой были исключены сообщения о победе и поражении. Этот текст пользователь сможет написать в Фотошопе за несколько минут.
Задний фон (background) – 640 на 480. Он будет полностью покрывать пространство. Соответственно сама игра тоже будет 640×480.
Игровой мир получился небольшим, но для нашего примера этого достаточно.
При разработке будем использовать библиотеку с инструментами.
Действия персонажей активируются путем перетаскивания компонентов в рабочую область, это избавляет разработчика напрямую обращаться к коду. Все инструмент разбиты по категориям.
Технология Drag And Drop – захватываете мышкой и перетаскиваете компонент в Actions. Пример ниже.
Запомните инструкцию – это основа для разработки игр без программирования.
Перечислим разделы.
- Move – перемещение персонажа в пространстве, здесь собраны функции, которые запускают действия героя. Это могут быть бег, ходьба, прыжок, отскок и т.д.
- Main1 – раздел отвечает за создание, изменения и уничтожение экземпляра. Так же есть компоненты, которые делают переход в следующую комнату или перезагружают сцену.
- Main2 – действия часть 2. Настраиваются дополнительные триггеры. Например, можно установить таймер и показать сообщение. Сделать некоторые манипуляции с игрой: сохранить, загрузить, завершить или перезапустить.
- Contol – здесь составляются алгоритмы для сложных решений. Например, путь открывается через пропуск, если его нет, то срабатывает триггер: тревога, появление стражников и т.д. В GameMaker можно составить целые блоки действия.
- Score – счёт игры. Подсчитывает очки и выводит статистику.
Идея: по достижению определённого результата (1000 очков), увеличить жизнь (life) на единицу. Score будем использовать в Asteroids для подсчёта очков. - Extra – частицы. Для добавления эффектов, которые придадут игре реалистичность. Например, дым, огонь и другое.
- Draw – функции для работы с GUI интерфейсом. Поддерживает спрайты, шрифты, задний фон.
Перемещение и стрельба
Теперь рассмотрим пример, как создать свою игру. Для начала сделаем движение крейсера. Перемещение в космосе через кнопки клавиатуры. Загружаем графику. Для старта нам понадобиться крейсер и задний фон космоса.
Разработка игры начинается с загрузки спрайта. Обычно это PNG картинка с прозрачным фоном. Чтобы загрузить изображение, нажмите правой кнопкой мыши на раздел Sprites и вызовете контекстное меню.
Выбираем Create Sprite, откроется всплывающее окно. Через команду Load Sprite загружаем изображение. У каждого объекта есть точка регистрации. Вокруг этой точки будет вращаться корабль при повороте, поэтому лучше «Origin» переназначить и сделать в центре? Достаточно нажать на кнопку «Center». Последовательность действий на картинке.
Изначально спрайт никак не влияет на игровой процесс. Чтобы придать кораблю материальный вид, нужно создать object. Для этого вызываем контекстное меню на папке Objects и Create Object. Во всплывающем окне выбираем спрайт, который хотим привязать к объекту. После всех настроек нажимаем «Ok».
Окна Events и Action, нужны для создания событий и действий. К ним вернемся позже.
Ранее показывали спрайты в инфографике.
Среди них был «Снаряд звёздного крейсера 32 на 32 пикселя». Его тоже следует добавить. Сначала sprite, потом Object.
Следующий на очереди – загрузка Background. Внимание на картинку.
Создаём комнату, где будут происходить основные действия. Назначаем background, пример ниже.
Переходим к программной части, а именно заставим объект двигаться и стрелять, для этого в разделе Objects выберем корабль и создадим первое действие Create.
Потом добавим переменные раздел Control -> Var. Установим радиокнопку Self и заполним параметры, как на картинке.
Вторую переменную также создаём только с параметрами.
Variable = is_firing
Value = false.
Продолжаем вносить параметры в настройки корабля, следующая функция, которая нужна – это Alarm. Из списка выбираем Alarm 0.
В область Actions у Alarm также добавляем переменную Var с параметрами:
is_firing = false.
Следующее событие это Step. Используется, когда нужно, что-то зациклить и запустить бесконечное количество раз. Структура у блока Step сложнее, чем в предыдущих примерах, так как там используется проверка переменой и Else.
Установите параметры, как указаны на следующем скриншоте.
После проверки нужно добавить переменную со скоростью -.1 и Relative = true. Следом идет Else и условие, где скорость 0. Пример.
Назначим события, при которых пользователь будет нажимать кнопки, и поворачивать корабль для этого добавим клавиатуру в раздел Events: Left, Right.
Повесим переменную. Назначим следующие параметры.
Left (image_angle 10), Right (image_angle -10), таким образом, при нажатии кнопок, корабль будет вращаться по часовой стрелки или против часовой. Не забываем установить галочку Relative. Она означает применить к текущему объекту. После этого движение станет плавным.
Создаём в Events клавишу UP и используем Test Variable из раздела Control и Move Free. Посмотрите пример ниже, там показано, какие данные вписали в поля. Обратите внимание, где находится Move Free.
В компоненте Move Free добавим следующие данные.
image_angle = .5. Точка перед пятеркой значит дробное значение.
Корабль в полете может затеряться за пределами экрана, поэтому его нужно вернуть с другой стороны, как только будет пересечена граница. Сделать это просто. Создадим событие.
Add Event -> Other -> Outside Room.
Добавим компонент Wrap Screen и установим опцию in both directions.
Как протестировать? Нужно добавить object. Для этого перейдем в room0. Выберем obj_ship. Добавим его на рабочую область и нажмём Run The Game (номер 4). После этого отправляемся в полёт.
Сделаем, чтобы наш корабль умел стрелять. Добавим три события Create, Alarm 0 и Outside Room. Последнее на случай если снаряд улетит за пределы комнаты.
В Create будет три действия создания переменной, Move Free и Set Alarm.
Move Free – поле direction = image_angle, поле speed = 12. Set Alarm находиться в разделе Control блок Timing.
Переменная value использует значение с корабля. Хотите использовать свойства другого объекта? Тогда просто напишите название и через точку переменную:
obj_ship.image_angle.
Второе событие – это Alarm 0. На него повесим уничтожение снаряда Destroy the instance.
Последнее, это возвращение снаряда с другой стороны области, если вдруг он улетит за границу. Это уже проходили с кораблём. Чтобы снаряд создавался и совершал полёт по траектории, нужно повесить действия на кнопку клавиатуры. Пускай это будет Space.
Создадим кнопку.
AddEvent->Keyboard->Space. Повесим на неё 7 компонентов.
Дальше для удобства будем публиковать картинки с цифрами, чтобы ссылаться на свойства каждого компонента.
Разберём стрельбу.
С некоторыми действиями уже знакомы. Перечислим пункт: 2, 3 и 5.
2. Сколько снарядов будет выпущено за короткий промежуток времени: number = 3, object = obj_player_blust.
Выбрали снаряд, а цифра 3 – это залп после следующей атаки. Пример можно видеть на картинке ниже.
3. Блоки – когда нужно создать одно условие и несколько действий, то добавляют Start и End Block.
5. Создаём снаряд. В параметрах указываем obj_player_blust и (x, y) = 0. Вместо координат нужно установить Relative, что создаст привязку к кораблю. Если не поставить флажок, то стрельба будет начинаться от левого нижнего угла.
Для следующего примера нужна анимация взрыва.
Как сделать анимацию в Game Maker Studio?
Сначала загрузим спрайт. Потом перейдём в Edit Sprite.
Разобьем на спрайты. Для этого в меню выбираем Create From Strip. Загружаем повторно sprite и делаем настройки. Пример на скриншоте ниже. После нажимаем «OK» и программа автоматически преобразует спрайтлист в кадры.
Способ разбивки на спрайты может отличаться. Всё зависит от версии GameMaker. В некоторых случаях разбивка делается через Image->Convert To Frames.
В примере создавали анимацию, когда взрывается большой метеорит. Для маленького делаем также. Не забываем спрайт разместить по центру, чтобы он не находился где-то сбоку.
Метеориты
Добавим два метеорита, назовём их obj_asteroid_lg и obj_asteroid_sm. Для этого сначала загрузим sprite, а потом создадим object. В объекте также нужно добавить событие и действия. Вот obj_asteroid_lg – Events (Create).
В свойствах random(360) означает, в каком направлении будет двигаться астероид. Указываем значение random в градусах. Таким образом, траектория высчитывается случайна. Протестируем игру, но вначале разместим камни в room0 – GameMaker.
После запуска объекты начнут движение. Чтобы они не улетали за границу, создадим Outside Room и привяжем к нему Wrap Screen.
Следующее obj_asteroid_sm – назначаем переменную.
Стрельба и уничтожение
Прежде чем создать механику атаки, убедитесь, что для этого загружены все необходимые ассеты, а также созданы объекты к ним.
Внимание: корабль переименовали в obj_player.
Изменим obj_player_blust. Добавим два collision, для obj_asteroid_lg и obj_asteroid_sm.
Разместим новые действия. В одном событии будет 7 триггеров. Они будут срабатывать при столкновении. Вот список.
1. Variables – переменная раздел в библиотеки control.
2. Change Instance – раздел Main1.
3-6. Create Moving
7. Destroy Instance
Подробно на скриншоте ниже.
Внимание: цифры из списка Actions равны номерам свойств.
Обратите внимание – здесь радиокнопка поставлена Other, что означает применить к другому объекту. Разберём некоторые пункты, отмеченные цифрами на картинке.
2. Change Instance меняет один объект на другой. В этом случае астероид смениться на анимацию взрыва.
3-6. Create Moving – отправляет осколки от разрушенного метеорита в полёт. Здесь стоит obj_asteroid_sm. Именно на нём и будут применяться свойства. Координаты (x, y) отвечают за смещение осколков. Обязательно нужно установить Relative, для того чтобы объекты создавались относительно основного метеорита. Случайным образом (random) устанавливаем speed и direction.
Редактируем collision -> obj_explosion_sm.
Заметьте, что в обоих столкновениях (collision) мы добавили Destroy the instance с радиокнопкой self.
Последнее – удаление анимации взрыва, здесь в Destroy the instance у радиокнопки нужно установить Other.
Запускаем и тестируем анимацию.
Статистика и жизни
Во многих играх ведут подсчёт очков. За уничтожения метеоритов тоже нужно начислять очки. Для начала создадим шрифт и назовем fnt_score.
Создадим obj_scorekeeper.
У этого объекта будут сразу четыре события.
Пример свойств Create.
1. Устанавливает жизнь звездолёта.
2. Количество очков.
3-4. Глобальные переменные поле variable.
Примечание: Если перед переменной поставить global, то её можно вызывать с любого объекта.
Следующее Alam 0.
Проверяем и выводим сообщение о победе. Если все метеориты сбиты – Win.
1-2 это проверка. Есть ли в космосе ещё астероиды.
5. Чтобы добавить компонент Change Sprite, нужно создать obj_reset и spr_win. Первый – это Game Over, второй Victory.
Этап Alam 1.
1. Проверяет количество жизней, если «0» то создаёт и выводит сообщения.
Рисуем GUI интерфейс – на экране будет появляться жизни spr_lifecounter (их ещё предстоит добавить в спрайты) и текст.
- Устанавливаем life корабля по (x, y) координат.
- Шрифт fnt_score создали ранее. Его размещаем по левому краю.
- Цвет (Белый)
- Надпись (Score) – x = 10, y = 5.
Дальше obj_scorekeepe размещаем на холсте.
Тестируем. Результат.
Подсчёт очков
Чтобы при попадании по камням прибавлялись очки нужно изменить код Collision.
Для большого метеорита:
Для маленького метеорита.
Запускаем. Если стрельнуть по объекту прибавятся очки. В переменных на двух предыдущих скриншотах, указано сколько очков.
1 screenshot – свойство № 1 (new score – 50)
2 screenshot – свойство № 2 (new score – 100).
Каждую 1000 очков дают бонусную жизнь.
Уничтожение крейсера при столкновении с камнем
Что будет при попадании космического тела в корабль? Для этого откроем obj_player и создадим collision.
Для большого камня свойства будут выглядеть так:
Список в разделе Action уже пронумерован (отмечен стрелкой), для каждого свойства мы поставили номер, чтобы легче было ориентироваться. Подробно описывать каждое действие не будем, так как по структуре они похожи с предыдущим примером, где снаряд врезается в космическое тело.
Для маленького камня свойства:
Итог работы. При столкновении астероида с кораблём вычитывается одна жизнь и оба объекта уничтожаются.
Статус
Независимо от того, чем закончится игра, удастся ли игроку уничтожить весь мусор или по неосторожности он потеряет все жизни, нужно вывести gameover или victory.
Эти спрайты нужно загрузить и придумать название: spr_gameover и spr_win.
Пример свойств obj_reset.
3,4,5 – продублированы поэтому повтор просто выделили стрелкой.
Под номером 2 используем глобальную переменную win1.
В obj_scorekeepе, который разбирали выше Alam 0, win1 присваиваем true.
Когда весь космический мусор уничтожен, появляется сообщение о победе.
Игра готова, после прохождения мы увидим такую надпись.
Внимание: при разработке этого примера могут быть ошибки. Например, пользователь забыл установить Relative или переключить radiobutton с self на order, в итоге программа будет работать неправильно. Чтобы избежать этого, проверяйте свойства по подсказкам из картинок.
Реализация проекта – долгий процесс. Но в интернете часто попадаются проекты, сделанные одним человеком. Весь секрет кроется в правильно подобранном движке.
Все программы для создания игр без программирования имеют базы знаний и обширные сообщества, где пользователи готовы помочь советом. Если есть идея крутого проекта, попробуйте реализовать его с помощью движка.