1. Знакомство с GameMaker: Интерфейс, ресурсы и создание первого проекта
Знакомство с GameMaker: Интерфейс, ресурсы и создание первого проекта
Добро пожаловать в курс «Программирование игр в GameMaker». Это первая статья, и наша цель сегодня — не просто открыть программу, а понять философию этого движка, разобраться в его интерфейсе и создать свой первый, пусть и маленький, но работающий проект.
GameMaker — это один из самых популярных движков для создания 2D-игр. На нем были созданы такие хиты, как Undertale, Hyper Light Drifter и Katana ZERO. Его главная сила заключается в низком пороге входа и огромных возможностях для профессионалов.
Что такое GameMaker?
GameMaker (ранее GameMaker Studio 2) — это интегрированная среда разработки (IDE). Это означает, что всё необходимое для создания игры — редактор кода, редактор изображений, редактор уровней и звука — находится в одной программе.
В основе движка лежит событийно-ориентированное программирование. Это значит, что логика игры строится по принципу: «Если произошло событие А (нажата клавиша, столкновение, таймер), то выполнить действие Б».
Для написания логики используется язык GML (GameMaker Language). Он похож на C++ и JavaScript, но адаптирован специально для игр. В этом курсе мы будем изучать именно GML Code, так как он дает максимальный контроль над игрой.
Первый запуск и Стартовая страница
При запуске GameMaker вас встречает стартовое окно. Здесь вы можете увидеть последние новости, туториалы и список ваших проектов. Чтобы начать, нам нужно нажать кнопку New (Новый), выбрать тип проекта Game и шаблон Blank Game (Пустой проект). Назовем его MyFirstGame.
Обзор интерфейса: Ваше рабочее место
Когда проект загрузится, вы увидите рабочее пространство. Поначалу оно может показаться перегруженным, но на самом деле оно состоит из трех главных зон.
1. Asset Browser (Браузер ресурсов)
Обычно он находится справа. Это «шкаф», где лежат все файлы вашей игры. Всё, что есть в игре — картинки, звуки, скрипты, уровни — живет здесь. Если ресурса нет в Asset Browser, его нет в игре.
2. Workspace (Рабочее пространство)
Это центральная и самая большая часть экрана. Здесь вы будете проводить 90% времени. Это бесконечный «стол», на котором вы раскладываете открытые окна редакторов: код объекта, настройки спрайта или карту уровня. Вы можете перемещаться по этому столу, зажимая колесико мыши.
3. Room Editor (Редактор комнат)
В GameMaker любой уровень, меню или экран называется Room (Комната). При создании проекта автоматически создается Room1. Это ваш холст, куда вы будете помещать объекты.
Ключевые понятия: Спрайты, Объекты и Комнаты
Чтобы создать игру, нужно понять «Святую Троицу» GameMaker. Без понимания разницы между этими элементами двигаться дальше невозможно.
Спрайт (Sprite)
Спрайт — это просто картинка. Это визуальная оболочка. Спрайт не умеет думать, двигаться или сталкиваться. Это просто «костюм», который можно надеть. В Asset Browser спрайты обычно имеют префикс spr_ (например, spr_player).
Объект (Object)
Объект — это «мозг» и сущность игры. Именно объект содержит программный код. Объект может не иметь картинки (быть невидимым контроллером) или использовать спрайт для отображения. В Asset Browser объекты именуют с префиксом obj_ (например, obj_player).
> Важное правило: Вы не можете поместить Спрайт прямо в Комнату как игрового персонажа. Вы должны создать Объект, назначить ему Спрайт, и только потом поместить Объект в Комнату.
Экземпляр (Instance)
Это понятие часто путает новичков. Объект — это чертеж (класс). Экземпляр — это конкретная копия этого чертежа, помещенная в комнату.
Представьте, что obj_enemy — это чертеж робота на бумаге. А 10 роботов, стоящих на уровне — это 10 экземпляров (instances) этого объекта. Изменяя код в Объекте, вы меняете поведение всех его Экземпляров.
Координатная система
Прежде чем мы заставим что-то двигаться, нужно понять, как GameMaker видит пространство. Это чистая математика, но очень простая.
!Иллюстрация координатной системы, где начало отсчета находится в левом верхнем углу экрана.
В школе нас учили, что ось направлена вверх. В программировании 2D-игр (и в обработке изображений вообще) ось почти всегда направлена вниз.
* Точка (0, 0) — левый верхний угол комнаты. * X увеличивается вправо. * Y увеличивается вниз.
Если мы хотим переместить персонажа вправо, мы должны прибавить число к его координате . Если хотим опустить вниз — прибавить к .
Формула перемещения выглядит так:
где — новая координата по горизонтали, — текущая координата, а — скорость (количество пикселей за кадр).
Создание первого проекта: «Движущийся квадрат»
Давайте создадим простейшую интеракцию. Наша цель: создать квадрат, который будет двигаться вправо.
Шаг 1: Создание Спрайта
spr_box.Шаг 2: Создание Объекта
obj_box.spr_box.Теперь у нашего «мозга» есть «тело».
Шаг 3: Программирование (События)
Теперь самое интересное. Окно объекта имеет панель Events (События). Это список ситуаций, на которые объект должен реагировать.
Нам нужны два основных события:
Добавим событие Create:
Здесь мы создали переменную move_speed и присвоили ей значение 4.
Добавим событие Step:
Что здесь происходит? Каждый кадр (60 раз в секунду) мы берем текущую координату нашего объекта и прибавляем к ней значение переменной move_speed.
Математически это выражается так:
где — координата в следующем кадре, — координата в текущем кадре, а — наше смещение (скорость).
Шаг 4: Размещение в Комнате
Room1.obj_box из Asset Browser прямо на поле комнаты.Шаг 5: Запуск
Нажмите клавишу F5 или кнопку Play (зеленый треугольник) в верхней панели. Игра скомпилируется и запустится. Вы должны увидеть, как ваш квадрат уплывает вправо.
Резюме
Поздравляю! Вы только что прошли полный цикл разработки: от создания ресурсов до написания кода и тестирования. Мы узнали, что: * Asset Browser — это библиотека файлов. * Спрайт — это картинка, а Объект — это код. * Координата Y растет вниз. * Код выполняется внутри Событий (Events).
В следующей статье мы научимся управлять персонажем с клавиатуры и разберем понятие условных операторов.