GameMaker: как создать игру без опыта программирования

Пройдите тест, узнайте какой профессии подходите
Сколько вам лет
0%
До 18
От 18 до 24
От 25 до 34
От 35 до 44
От 45 до 49
От 50 до 54
Больше 55

Для кого эта статья:

  • Новички в разработке игр
  • Инди-разработчики, желающие создать свою первую игру
  • Люди, интересующиеся программированием и технологиями в области игрового дизайна

    Разработка игр когда-то была уделом избранных программистов со стопками учебников по C++ на столе. GameMaker изменил правила игры, предоставив новичкам инструмент, где можно создать полноценный проект без десятилетий опыта. Тысячи инди-хитов, включая Undertale и Hotline Miami, начинались именно здесь. Готовы присоединиться к сообществу разработчиков? Ваша первая игра может оказаться ближе, чем кажется — всего в нескольких кликах мыши. 🎮

Хотите расширить перспективы в IT за пределы разработки игр? Курс тестировщика ПО от Skypro откроет двери в мир, где ваша внимательность к деталям станет суперспособностью. Разработчики создают миры, а тестировщики гарантируют, что они работают безупречно — от игровых проектов до банковских систем. Первая работа в IT через 6 месяцев с поддержкой менторов и гарантией трудоустройства! Перейти на курс тестировщика ПО

GameMaker Studio: первые шаги разработчика игр

GameMaker Studio 2 — это среда разработки, созданная для людей, которые хотят быстро увидеть результаты своей работы. В отличие от монстров вроде Unity или Unreal Engine, здесь не нужно несколько месяцев изучать интерфейс перед созданием первой сцены. Буквально за час можно собрать прототип с работающими механиками. 🚀

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

Для начала работы достаточно создать новый проект, выбрав опцию "New Project" и определившись с папкой для хранения файлов игры. GameMaker предлагает несколько шаблонов проектов, но для первого знакомства выберите "Empty Project" — чистый лист, на котором будет проще понять базовые принципы.

Алексей Петров, преподаватель курса по разработке игр Помню своего студента Михаила, который пришёл с нулевыми знаниями программирования, но с горящими глазами. "Я 15 лет играю, теперь хочу создавать!" — заявил он на первом занятии. Через две недели работы с GameMaker он показал нам свой платформер с прыгающим котом, собирающим рыбу. Игра была простой, но это была ЕГО игра! Михаил создал все спрайты в Paint, запрограммировал движение и коллизии, добавил счётчик очков. "Никогда не думал, что смогу сделать игру так быстро," — признался он. Сегодня Михаил — инди-разработчик с тремя проектами в Steam, и всё началось с того прыгающего кота.

Игровые проекты в GameMaker структурированы вокруг комнат (rooms) и объектов (objects). Комнаты — это уровни вашей игры, а объекты — все элементы, с которыми взаимодействует игрок: персонажи, платформы, препятствия, бонусы. Структура проекта организована в виде дерева ресурсов, где все элементы логически сгруппированы.

Тип ресурса Назначение Пример использования
Sprites Визуальное представление объектов Персонаж, платформа, монета
Objects Программируемые элементы с поведением Игрок, враг, триггер
Rooms Игровые уровни и экраны Уровень 1, меню, экран поражения
Scripts Многоразовый код на GML Функция проверки столкновений
Sounds Аудиоэффекты и музыка Прыжок, сбор монеты, фоновая мелодия
Пошаговый план для смены профессии

Интерфейс и возможности GameMaker для начинающих

Интерфейс GameMaker Studio 2 организован вокруг концепции рабочих областей: основное рабочее пространство, панели инструментов, окно свойств и дерево ресурсов. Для новичков особенно полезна система "перетащи и брось" (drag-and-drop), позволяющая создавать логику без написания кода. 🖱️

Ключевые элементы интерфейса GameMaker:

  • Resource Tree (Дерево ресурсов) — здесь хранятся все элементы вашего проекта: спрайты, объекты, комнаты.
  • Workspace (Рабочее пространство) — центральная область, где происходит редактирование выбранного ресурса.
  • Properties Panel (Панель свойств) — отображает и позволяет изменять параметры выбранного элемента.
  • Toolbox (Панель инструментов) — содержит инструменты для работы с текущим ресурсом.
  • Output Panel (Панель вывода) — показывает результаты компиляции, ошибки и отладочную информацию.

GameMaker Studio 2 предлагает два основных подхода к созданию игровой логики: визуальное программирование (Drag and Drop или DnD) и текстовое программирование с использованием Game Maker Language (GML). Начинающим рекомендуется освоить сначала DnD, а затем постепенно переходить к GML по мере роста уверенности.

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

Марина Соколова, гейм-дизайнер Когда я впервые открыла GameMaker, я была уверена, что разработка игр — это не для меня. С художественным образованием, но без опыта программирования, я ожидала увидеть бесконечные строки кода. Вместо этого я обнаружила интуитивный интерфейс, где можно было буквально "нарисовать" игровую логику. За первый вечер я создала мини-игру, где персонаж собирал звёзды и уворачивался от падающих камней. Сегодня мой четвёртый инди-проект готовится к выпуску, и всё благодаря тому, что GameMaker не отпугнул меня в самом начале пути. Я до сих пор использую DnD для прототипирования, прежде чем перейти к коду на GML.

Для тестирования создаваемой игры GameMaker предлагает кнопку "Play" (или F5), которая мгновенно запускает проект. Это позволяет быстро проверять внесённые изменения и отлаживать игровую механику без длительных циклов компиляции.

Ещё одна особенность, делающая GameMaker привлекательным для новичков — мультиплатформенная публикация. Ваша игра может быть скомпилирована для Windows, macOS, iOS, Android, консолей и веб-платформ без существенного переписывания кода.

Базовые принципы создания объектов и спрайтов

В GameMaker спрайты (sprites) представляют визуальную часть игровых элементов, а объекты (objects) определяют их поведение. Такое разделение позволяет, например, создать один спрайт монеты и использовать его в различных объектах: обычной монете, бонусной монете, фальшивой монете-ловушке. 🪙

Создание спрайта начинается с нажатия правой кнопкой мыши на папку Sprites в дереве ресурсов и выбора "Create Sprite". GameMaker предлагает несколько способов добавления изображения:

  • Загрузить готовый графический файл с компьютера
  • Создать новое изображение во встроенном редакторе
  • Импортировать последовательность изображений для анимации

После создания спрайта настраиваются его параметры: точка привязки (origin), маска столкновения (collision mask), скорость анимации (animation speed). Точка привязки определяет центр спрайта при вращении и позиционировании, а правильно настроенная маска столкновения критична для корректной работы физики в игре.

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

Основные типы событий в GameMaker:

  • Create — срабатывает при создании экземпляра объекта
  • Step — выполняется каждый кадр игры (идеально для обновления состояния)
  • Draw — позволяет настроить отображение объекта
  • Collision — активируется при столкновении с другими объектами
  • Keyboard — реагирует на нажатия клавиш
  • Mouse — обрабатывает взаимодействие с мышью
  • Alarm — таймеры для отложенных действий

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

Например, можно создать родительский объект "Enemy" с базовым поведением врагов, а затем создать дочерние объекты "FastEnemy", "StrongEnemy", "FlyingEnemy", которые унаследуют базовое поведение и добавят свои специфичные свойства.

Событие Частота использования Типичное применение
Create Очень высокая Инициализация переменных, настройка стартового состояния
Step Очень высокая Обновление позиции, проверка условий, логика перемещения
Collision Высокая Реакция на столкновения, урон, сбор предметов
Keyboard Средняя Управление игроком, интерфейсные действия
Alarm Средняя Отложенные действия, временные эффекты, спаун врагов
Draw Низкая (для новичков) Специальные визуальные эффекты, UI элементы

После создания объектов, их нужно разместить в комнате (room) — игровом уровне. В редакторе комнат можно установить размер уровня, добавить объекты, настроить фон, создать слои для организации элементов по глубине отображения.

Программирование на GML: что нужно знать новичку

Game Maker Language (GML) — это встроенный язык программирования GameMaker, который позволяет создавать более сложную и гибкую игровую логику по сравнению с системой перетаскивания (DnD). Хорошая новость в том, что GML относительно прост для освоения, особенно если у вас есть минимальный опыт программирования. 💻

Основные элементы синтаксиса GML:

  • Переменные объявляются просто их использованием: score = 0;
  • Каждая инструкция завершается точкой с запятой: x = x + 5;
  • Условные операторы: if (health <= 0) { game_end(); }
  • Циклы: for (i = 0; i < 10; i++) { instance_create(x, y, obj_Bullet); }
  • Комментарии: // Это комментарий или /* Многострочный комментарий */

GML предлагает два типа переменных: встроенные и пользовательские. Встроенные переменные, такие как x, y, speed, direction, уже определены системой и контролируют базовые свойства объектов. Пользовательские переменные создаются разработчиком для хранения игровых данных, например, health, ammo, score.

Для новичков особенно важно понимать область видимости переменных в GML:

  • Локальные переменные — объявленные с ключевым словом var, существуют только внутри текущего события или скрипта
  • Переменные экземпляра — принадлежат конкретному экземпляру объекта
  • Глобальные переменные — начинаются с global., доступны во всём проекте

Пример простого кода на GML для управления персонажем:

gml
Скопировать код
// В событии Step объекта игрока
// Горизонтальное движение
var move_right = keyboard_check(vk_right);
var move_left = keyboard_check(vk_left);
var move_h = move_right – move_left;

hspeed = move_h * 4; // Скорость 4 пикселя в кадр

// Прыжок
if (keyboard_check_pressed(vk_space) && place_meeting(x, y+1, obj_Wall)) {
vspeed = -10; // Отрицательное значение для движения вверх
}

// Гравитация
if (!place_meeting(x, y+1, obj_Wall)) {
vspeed += 0.5; // Постоянное ускорение вниз
}

Важно понимать концепцию столкновений (collisions) в GameMaker. Функция place_meeting() проверяет, пересекается ли объект с другим объектом в указанной позиции. Это основа для реализации физики, платформенных механик и взаимодействия с игровым миром.

GML предлагает богатую библиотеку встроенных функций, которые значительно упрощают разработку:

  • instance_create(x, y, obj) — создаёт экземпляр объекта
  • instance_destroy() — уничтожает экземпляр объекта
  • random(n) — возвращает случайное число от 0 до n
  • point_distance(x1, y1, x2, y2) — вычисляет расстояние между точками
  • draw_sprite(sprite, subimg, x, y) — отрисовывает спрайт
  • audioplaysound(sound, priority, loop) — воспроизводит звук

По мере роста сложности проекта стоит использовать скрипты (scripts) — отдельные фрагменты кода, которые можно вызывать из разных мест программы. Это улучшает структуру кода и предотвращает дублирование.

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

Практикум: создаём простую аркадную игру с нуля

Давайте применим полученные знания и создадим простую, но полнофункциональную аркадную игру под названием "Space Dodger". Игрок будет управлять космическим кораблём, увoraчиваться от падающих метеоритов и собирать звёзды для получения очков. 🚀

Шаг 1: Создаем спрайты

  1. Создайте спрайт spr_player для корабля игрока (32x32 пикселя)
  2. Создайте спрайт spr_meteor для метеорита (24x24 пикселя)
  3. Создайте спрайт spr_star для звезды (16x16 пикселей)
  4. Создайте спрайт spr_explosion с несколькими кадрами для анимации взрыва

Можно нарисовать спрайты во встроенном редакторе или использовать готовые ассеты. Для новичков существуют бесплатные наборы спрайтов на itch.io и OpenGameArt.

Шаг 2: Создаем объекты

  1. obj_player — корабль игрока

    • В событии Create: score = 0; lives = 3;
    • В событии Step: x = mouse_x; // Корабль следует за курсором по горизонтали
    • В событии Collision с objmeteor: `lives -= 1; instancedestroy(other); if (lives <= 0) { game_restart(); }`
    • В событии Collision с objstar: `score += 10; instancedestroy(other);`
  2. obj_meteor — падающий метеорит

    • В событии Create: vspeed = random_range(2, 5); // Случайная скорость падения
    • В событии Step: if (y > room_height) { instance_destroy(); }
  3. obj_star — собираемая звезда

    • В событии Create: vspeed = random_range(1, 3); // Звёзды падают медленнее метеоритов
    • В событии Step: if (y > room_height) { instance_destroy(); }
  4. objgamecontroller — контроллер игрового процесса

    • В событии Create: alarm[0] = 60; // Таймер для создания метеоритов
    • В событии Alarm 0: instance_create(random(room_width), 0, obj_meteor); alarm[0] = random_range(30, 90);
    • В событии Step: if (random(100) < 2) { instance_create(random(room_width), 0, obj_star); }
    • В событии Draw GUI: draw_text(10, 10, "Score: " + string(obj_player.score)); draw_text(10, 30, "Lives: " + string(obj_player.lives));

Шаг 3: Создаем комнату

  1. Создайте новую комнату размером 640x480
  2. Поместите objgamecontroller в комнату
  3. Поместите obj_player в нижнюю часть комнаты

Шаг 4: Добавляем звуки и улучшения

Для завершения игры стоит добавить несколько звуковых эффектов: сбор звезды, столкновение с метеоритом, фоновую музыку. Также можно улучшить игру, добавив:

  • Анимацию взрыва при столкновении
  • Систему уровней с увеличивающейся сложностью
  • Экраны начала игры и завершения
  • Систему сохранения рекордов

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

Для улучшения навыков программирования в GML рекомендую постепенно усложнять проект, добавляя новые функции:

  • Разные типы метеоритов с различным поведением
  • Возможность стрельбы для уничтожения метеоритов
  • Улучшения для корабля, которые можно подбирать
  • Боссы, появляющиеся через определённые промежутки времени

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

Создание игр на GameMaker — это как построение моста между идеей и реальностью, где каждый кирпичик понятен и доступен новичку. Путь от первого прототипа до полноценного проекта короче, чем кажется, особенно если двигаться маленькими, осмысленными шагами. Помните: Notch создал Minecraft в одиночку, Эрик Барроне сделал Stardew Valley без команды, Тоби Фокс разработал Undertale самостоятельно. GameMaker может стать вашим первым шагом к игре, которая изменит мир — или просто принесёт радость вам и вашим друзьям. А это уже немало.

Читайте также

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Что такое GameMaker?
1 / 5

Загрузка...