Открыть сервис

GML

GML (сокр. от англ. Game Maker Language) — это скриптовый язык программирования, разработанный специально для использования в среде разработки компьютерных игр GameMaker (ранее — GameMaker Studio). GML является основным средством написания логики, управления игровыми объектами, обработки событий и взаимодействия с графическим, звуковым и физическим движками в рамках данной среды. Язык ориентирован на разработку двумерных (2D) игр и предоставляет как высокоуровневые конструкции для быстрого прототипирования, так и возможности для более тонкого контроля над игровым процессом.

История

GML был создан Марком Овермарсом (Mark Overmars) в конце 1990-х годов как часть программы GameMaker, изначально называвшейся Animo (1999 год), а затем Game Maker (2000 год). Первоначально язык представлял собой набор простых команд, встроенных в систему визуального программирования (drag-and-drop). Однако по мере развития среды разработки и усложнения запросов пользователей GML эволюционировал в полноценный скриптовый язык с поддержкой переменных, функций, массивов, циклов, условных операторов и собственной системы типов данных.

В 2012 году с выходом GameMaker Studio (версия 1.0) язык получил значительные обновления, включая поддержку структур данных (списки, карты, стеки, очереди), более мощные математические функции и улучшенную работу с графикой. В 2017 году была выпущена GameMaker Studio 2, в которой GML был расширен за счёт введения макросов, перечислений, анонимных функций (лямбд) и более строгой системы типов (опционально). В 2022 году с выходом GameMaker (переименованная версия без номера) язык продолжил развиваться, в частности, получил поддержку модулей и улучшенную интеграцию с внешними библиотеками.

Синтаксис и особенности

GML имеет синтаксис, близкий к языкам C-подобной группы (C, C++, Java, JavaScript), но с рядом упрощений и специфических конструкций, адаптированных для разработки игр. Основные особенности:

Типы данных

GML поддерживает следующие основные типы данных:

Управляющие конструкции

GML включает стандартные управляющие конструкции, характерные для императивных языков:

Функции

Пользователь может определять собственные функции (скрипты) с помощью ключевого слова function (в современных версиях) или через создание скриптовых ресурсов в редакторе. Функции могут принимать аргументы и возвращать значения. Пример:

``gml function add(a, b) { return a + b; } ``

Применение

GML используется исключительно в среде разработки GameMaker для создания компьютерных игр, преимущественно двумерных. Язык позволяет реализовать:

Примеры

Простейшая программа

Следующий код выводит сообщение в окно игры:

``gml show_message("Hello, GameMaker!"); ``

Управление движением объекта

Код, помещённый в событие Step (выполняется каждый кадр) объекта-игрока, реализует движение по нажатию клавиш:

``gml var speed = 5; if (keyboard_check(vk_left)) { x -= speed; } if (keyboard_check(vk_right)) { x += speed; } if (keyboard_check(vk_up)) { y -= speed; } if (keyboard_check(vk_down)) { y += speed; } ``

Функция для проверки столкновения

Пользовательская функция, возвращающая true, если два объекта пересекаются:

``gml function check_collision(obj1, obj2) { return place_meeting(obj1.x, obj1.y, obj2); } ``

Критика

GML, как и среда GameMaker в целом, подвергается критике за ряд недостатков:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →