Gamemaker studio 2 как поменять язык

Обновлено: 06.07.2024

Game maker studio является хорошим кроссплатформенным движком-конструктором для создания 2D игр. Движок имеет очень простой и понимаемый интерфейс, но, если у вас возникнут сложности с его освоением, тогда вам поможет большое количество документации на русском языке, видео уроков и форумов по работе и созданию игр на данном движке.

Редактор Game maker Studio дает возможность создавать игры не только 2D игры, но и применять 3D графику. Стоит заметить, что возможность создания 3D игр не будет вас радовать крутой современной графикой или высокой степенью оптимизации, поэтому всё-таки данный движок стоит использовать как платформу для создания качественных 2D игр.

Движок позволяет создавать 2D игры с применением собственных спрайтов (графические объекты в компьютерной графике), звуков и анимации, которые так же можно создать и редактировать в Game maker studio.

Неотъемлемым плюсом редактора Game maker studio является кроссплатформенность – это способность создавать собственные игры для разных платформ для ПК (Windows, Mac OS, Ubuntu), мобильных (Android, Amazon Fire, iOS, Windows 10 Mobile), Web (HTML5) и Игровых консолей (Xbox One, PlayStation 4).

Нельзя не заметить встроенный магазин спрайтов, звуков, карт, анимации и т.д. Это дает возможность быстро и просто создавать игры, не отвлекаясь на создания отдельных частей, таких как вид персонажа или его анимация.

Для начинающих

Game maker studio подойдет для амбициозных людей с интересными идеями по созданию прототипа игры. Сейчас большая проблема хорошей идеи для создания игры является в её реализации, так как для этого необходимо знания языков программирования. Этот движок даёт возможность создания игры без прибегания к программированию, написанию скриптов.

Очень хорошо подойдет для первого тестового создания механики задуманной игры, так как главное для начала понять интересен ли будет сам gameplay, и только после тестирования можно будет приступать к подробному созданию и улучшению графической части игры. Вот для таких целей и подойдет Game maker studio, она даёт возможность быстро и легко реализовать такого рода задачу.

Drag and Drop (DnD ™) это графическая среда разработки, которая идеально подходит для начинающих или тех, кто более визуально или художественно ориентированы. С помощью DnD возможно создать игры без написания скриптов, используя только интерфейс программы.

Так же для начинающих в работе Game maker studio поможет русифицированный интерфейс, который можно найти на форумах этого движка. На официальном так же присутствует большое количество документации и инструкций по работе с движком.

Для профессионалов

Но не стоит говорить, что движок Game maker studio не будет интересен для профессиональных Game разработчиков. В Game maker studio есть свой собственный язык программирования GML, который написан на Delphi и имеет синтаксис он Java Script и Pascal. При создании игры с помощью GML языка программирования открывается на много больше возможностей нежели через графический редактор программы.

Обзор интерфейса

Последней версией Game maker studio №1 была 8.1.140, на сегодняшний день она перестала поддерживаться, так была выпущена новая версия Game maker studio 2.

Так же на официальном форуме можно скачать русификатор для движка.

Ссылка на русификатор: Google drive


После того как вы скачали и установили Game maker studio запускаем его и в окне вводим данные, которые зарегистрировали на официальном сайте при скачивании. После ввода данных нам открывается интерфейс движка.

Так как мы используем бесплатную версию программы, категория «Изучение» нам не будет доступна.

Для того, чтобы начать разработку игры, нажимаем на кнопку «Создать» и в следующем окне «Drag and Drop» после чего откроется окно, в котором нужно придумать название проекта и сохранить в удобное для вас место.


После того как откроется рабочее пространство, можно увидеть вкладки с правой стороны окна, где и будут сортироваться наши части игры.


Для того что бы начать работать и создавать объекты нам нужно будет нажать правой кнопкой по пустому пространству, и выбрать пункт «Ресурсы». В выпавшем окне выбираем с создания чего будем начинать разработку.


При создании спрайта нам откроется меню создания, анимированные персонажа нашей игры. Тут можно полностью с нуля, попиксельно, нарисовать персонажа или же импортировать уже готового. Так же анимировать его, создать по кадровую анимацию действий персонажа.


Для создания карты нам нужно выбрать «Ресурсы», а затем в выпавшем окне «Создать комнату». В редакторе комнаты предоставляются возможности задать размер, фон, установить элементы взаимодействия, разместить персонажей, нарисовать пути и т.д. В редакторе комнаты так же можно импортировать уже готовый фон или создать его саму с помощью этого редактора.


Создание событий можно произвести без обращения к программированию и созданию скриптов, все делается с помощью довольно интуитивно понятных меню и окон. Можно продумать и создать довольно сложные сценарии действий для объекта с помощью визуального редактора Game maker studio.


С помощью параметров можно выбрать платформу для которой создается игра и провести тонкие настройки игры, такие как размер окна для воспроизведения игры, версии, ярлыки, заставки при загрузке и т.п.

Стоит заметить часть программы, в которой нам дается возможность работать с кодом на языке GML. Очень радует та легкость, с которой простые командные функции могут быть сделаны. Поэтому если вы начинающий Game creator и готовы посвятить этому большую часть времени, тогда вам просто необходимо заняться изучением языка GML.

Установка русификатора

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

После того как скачали файл русского языка, копируем его и вставляем в директорию с Платформой в папку «Languages» которая лежит по следующему пути C:\Program Files\GameMaker Studio 2\Languages Открываем вставленный файл в блокноте, для этого нажимаем на него правой кнопкой и выбираем пункт «Изменить».

Откроется блокнот с конфигурацией этого файла. Нам необходимо 7-й строкой вставить следующую конфигурацию.


_LanguageCode,ru,ru,,standard windows os language code this pack represents (can be primary code only ie. en or primary-secondary ie. ru-RU)

Сохраняем файл и делаем бэкап стандартного файла «english», для этого просто скопируйте его в другую папку. Это необходимо для того, если что-то пойдет не так, просто скопировать его обратно и вернуть исходный язык движка. После сохранения русскоязычного файла удаляем старый англоязычный (предварительно сохраненный в другую папку) и запускаем Game maker studio.

Итоги обзора Game maker studio

Плюсы:

  • Поддержка работы и создания проектов в графическом интерфейсе.
  • Кроссплатформенность.
  • Гибкая ценовая категория.
  • Собственный язык программирования.
  • Интеграция со Steam.
  • Поддержка множества интернет-площадок.
  • Поддержка шейдеров.
  • Поддержка работы с сетью.
  • Интеграция с Facebook.
  • Возможность установки русификатора.
  • Большое количество документации.
  • Поддержка и официальный форум.
  • Собственный магазин инструментов.
  • Совместимость с проектами, сделанными на более поздних версиях Game maker studio.

Минусы:

  • Плохо оптимизирован для некоторых платформ.
  • Плохо реализован инструмент создания 3D игр.
  • Нет встроенного русскоязычного интерфейса.
  • Большие ограничения при использовании бесплатной версии (на то она и бесплатная).

Заключение

Game Maker Studio — кроссплатформенный движок игр с легким освоением и подробной документацией. Программа предлагает интуитивно понятный и простой в использовании Drag-и-Drop (называется «DnD» теперь) Интерфейс «значки действий», которые позволят вам начать создавать свои собственные игры очень быстро. Вы можете импортировать и создавать образы и звуки для использования их в игре, а затем мгновенно увидеть результаты ваших действий при нажатии на кнопку. Следует отметить, что GameMaker: Studio заточен на двумерные игры, (но имеется так же базовая поддержка работы с 3d). С помощью D&D любой человек без знаний программирования может создать простенькую игру, на подобии Марио или Тетриса.


Программа Game Maker Studio 2.1.4.285 – это новая версия всем известного инструмента, в котором разрабатываются несложные игры на различный мотив. Отличительной особенностью данного приложения является то, что абсолютно все средства данной студии визуализированы, то есть пользователь не должен знать языки программирования для работы с конструктором. Это делает утилиту одинаково доступной как для опытных юзеров, так и для начинающих. Большое количество обучающих материалов в виде пошаговых инструкций, статей и даже видеоуроков, позволяет за короткий срок ознакомиться со всеми возможностями данной программы.

С выходом новой версии приложение претерпело множество полезных изменений и стало еще более функциональным, нежели прежде. Во второй версии Game Maker Studio вы с лёгкостью освоите все механизмы современных компьютерных игр. В визуальном конструкторе вам не потребуется прописывать программный код, приложение всё произведет за пользователя. Разработчики позаботились, чтобы работать в редакторе виртуальных игр было максимально просто. Именно поэтому пользователь только задает события и соответствующие реакции героя или окружающего мира на них, остальную работу делает Game Maker.

В конструкторе пользователей ждут максимально гибкие настройки, позволяющие воплотить практически любую затею в виртуальном мире. Тонкая подстройка может быть осуществлена с помощью соответствующих фильтров и параметров, без необходимости прописывания дополнительных скриптов. Если же уровень пользователя позволяет внедрить определенные особенности в создаваемую игру, тогда можно воспользоваться инструментом под названием Game Maker Language, позволяющем добавить часть собственного кода. Несмотря на все старания разработчиков избежать необходимости использования языка программирования, в реальных ситуациях всё же встречаются неординарные случаи, когда это требуется сделать.

Инструментарий новой версии программы Game Maker Studio 2.1.4.285 поражает своим разнообразием и ассортиментом. Разработчики хорошо потрудились, создавая конструктор. Огромное число вкладок, всплывающие панели, большая рабочая зона, удобно расположенное меню, вынесенные ярлыки для наиболее часто используемых функций на главную панель, полностью настраиваемая область с инструментами – всё это позволяет продуктивно трудиться во время создания двухмерной компьютерной игры. Разработчики решили глобально переработать весь интерфейс редактора, при этом, по умолчанию в программе нет поддержки русского языка. Внедрить перевод можно с помощью специального файла-русификатора, который также присутствует в архиве с программой. В новой версии также появился собственный движок под названием BOX2D и новая физика. Еще одним новшеством является возможность выбора операционной системы, под управлением которой будет работать создаваемая игра.

Пробуем создать свой Арканоид

Я всегда всем советую начать изучение движка с создания простой игры. Да я и сам в свое время учился так. Создав 5-6 отличных друг от друга игр вы получите очень хорошую базу знаний по движку.

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

А теперь к делу.

Запускаем наш Game Maker Studio 2.

Для начало вам нужно будет зарегестрировать свой аккаунт на официальном сейте YoYoGames , чтобы войти в данный движок. Я об этом вроде говорил ранее.

Нажимаем "New" , что значит "Новый" , для создания нового проекта. У вас далее появится следующий выбор:

Тут следует немного остановиться подробнее. Движок GMS2 позволяет создавать игры на своем языке программирования GameMaker Language (GML) либо вообще без написания кода, то есть собирать игру как бы из логических блоков (Drag and Drop). Я бы рекомендовал учиться сразу писать код. Но вы можете конечно попробовать поиграть с блочной системой. Конкретно в этом уроке я буду объяснять работу именно проектов на основе кода, т.е. выбираем второй вариант. Ну а далее вы выбираете место, где будете сохранять своей проект и дадите ему имя.

Готовим ресурсы для игры

Сейчас нам необходимо будет подготовить ресурсы для игры. Как их создавать, я подробно описывал в предыдущих статьях и тут останавливаться на этом не буду.

Для игры нам будут нужны: бита, мяч, стены и блоки.

Создаем для начала спрайты для них. Я рисовал все сам прямо во встроенном графическом редакторе GMS2, по этому все очень схематично. Красным выделил на что стоит обратить внимание. В основном это размеры спрайта, его имя и где расположен его центр.

Вы конечно можете все нарисовать более красиво или вообще взять графику из сети. Так же можете использовать другие размеры спрайтов. Но размеры я бы рекомендовал для обучения использовать именно те, что использую я.

Далее создаем объекты и прикрепляем к ним спрайты. Опять же я все это подробно объяснял в прошлых статьях, останавливаться не будем особо.

Назовите объекты так как я их назвал. Это пригодится далее в уроках. Итого у вас должно быть 4 спрайта и 4 объекта в дереве ресурсов.

Далее подготовим комнату и расставим все объекты в ней для первого уровня. Кроме мяча. Мяч мы будем создавать кодом.

Задайте ей размеры 960 пикселей в ширину и 540 пикселей в высоту. Создайте несколько слоев именно того типа, что я пометил стрелочкой (т.е. слои для объектов). Поменяйте им названия. Расположите их в том же порядке что у меня на скриншоте. И далее на каждый слой перетащите и расставьте соответствующие объекты, как они у меня расставлены в комнате. Т.е. на слой "Walls" , например, расставляем объекты "Wall" и т.д.

Так же можете поменять цвет фона. Для этого просто щелкаете на слой Background и чуть ниже выбираете нужный нам цвет. Но это не обязательно. Можно оставить и изначальный черный.

Обратите внимание, что мы создали еще и слой "Ball" , но на него ничего не ставим. Мы подготвили этот слой заранее, чтобы потом создать кодом на нем наш мяч (объект Ball).

Если вы все сделали правильно, то теперь, если нажать на кнопку запуска игры в виде треуголника, то у вас уже запустится что-то похожее на эту самую игру. Только пока в ней нельзя ни управлять битой, ни мяча в ней нет, который бы летал и разбивал блоки и т.д.

Т.е. при запуске у вас откроется подобное окно:

Справились? Поехали дальше!

Начинаем писать логику для игры

Давайте начнем с биты, так как игрок будет управлять именно ей. Щелкнем на объект биты и создадим ей событие шага ( Step ), о котором я писал в прошлых статьях. Создаем именно событие Step , не Begin Step и не End Step . Для чего нужны они, объясню когда-нибудь в последующих статьях. Но запомните, в 95% вы будете использовать именно событие Step из этих трех возможных, так что пока не забивайте голову.

И вот наконец-то у нас открылось окно редактора кода. Как долго же мы шли к этому событию! Для начала, давайте сделаем так, чтобы бита двигалась вправо и влево по нажатию кнопок со стрелками вправо/влево на клавиатуре.

Для этого нам в шаге нужно создать условие, которое бы проверяло, что нажата та или иная клавиша (вспоминаем прошлые статьи опять же). За событие нажатия клавишы в GMS2 отвечает функция keyboard_check_pressed () , где в скобках мы напишем необходимую нам клавишу. Чуть ниже мы к этому вернемся. Так вот, а что именно мы будем делать при нажатии этой клавиши? Просто будем менять X-координату самой биты, т.е. будем прибавлять или отнимать эту координату, тем самым перемещая биту вправо или влево. Итоговый код в событии шага биты у нас будет выглядеть так:

Т.е. если нажата клавиша "стрелка вправо" ( vk_right - это как раз обозначение этой самой клавиши), то x биты прибавит 10 пикселей, а так как ось X в GMS направлена слева-направо , то бита как раз сдвинется вправо. Вот этот код как раз отвечает за прибавление 10 к x: x+=10.

Аналогично для левой стороны. Итак, жмем клавишу для запуска игры, чтобы потестировать. Сделаю оговорку: мы очень часто будем запускать игру для проверки текущего кода, чтобы избежать ошибок на первых порах. Напишем небольшой кусочек, проверим, напишем еще - снова проверим и по такой схеме постоянно. Если возникнет какая-то ошибка, то нам проще будет найти тот участок кода, в котором мы ее допустили.

Протестировали? Хм. Код и правда УЖЕ работает не так, как нам хотелось бы, правда? Т.е. зажав стрелочку вправо, например, бита сдвинется чуть вправо и остановится, пока мы не отожмем клавишу и заново ее не нажмем. Т.е. чтобы нам двигать биту, нам нужно постоянно клацать на клавишу стрелки. Согласитесь, это не очень удобно. Что же мы сделали не так?

Все дело в том, что мы выбрали не совсем нужную нам функцию нажатия клавиши. Их существует три. Давайте подробнее на них остановимся.

  1. keyboard_check_pressed()
  2. keyboard_check_released()
  3. keyboard_check()

С первой фкункцией мы уже познакомились, она срабатывает ровно в тот момент, когда клавишу нажали, т.е. когда клавиша только опустилась. Событие при нажатии сработает соответственно только раз.

Вторая функция аналогична первой, но будет срабатывать только тогда, когда клавишу отжали, именно только в момент отжатия, тоже один раз. Т.е. если мы поменяем в нашем коде функции на эту, то мало, что изменится - бита будет передвигаться на раз, при каждом отжатии клавиши. Т.е. зажав стрелку вправо, например, ничего не произойдет. Но вот когда вы отпустите клавишу, бита сдвинется. Можете сами поменять в коде и попробовать.

А вот третья функция будет срабатывать постоянно пока клавиша зажата. Т.е. то, что у нас должно выполниться при нажатии клавиши, по сути будет выполняться каждый шаг.

Меняем код и пробуем:

Теперь не нужно жмякать на стрелочки, чтобы сдвигать биту каждый раз по чуть-чуть, а просто нажимаем клавишу и наслаждаемся "полетом" биты!

Если вам кажется, что бита очень резкая, то можете сдвигать ее каждый шаг не на 10 пикселей, а на 5, к примеру, поменяв предварительно в коде.

Теперь бита кажется более плавной. А давайте вообще заменим скорость переменной, чтобы можно было потом в самой игре менять скорость движения биты, например, когда подбираем какой-нибудь бонус. Согласны?

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

Создаем событие Create (так же как мы создавали Step ) и в нем напишем всего одну строчку кода:

А в самом событии шага (Step) чуть изменим код на такой:

Т.е. мы просто цифры заменили именем переменной, а так как она равна 5, то результат при запуске будет тот же. Но в дальнейшем нам это пригодится.

Не люблю повторяться, об этом я писал в прошлых статьях, но тут все таки сделаю исключение. Напомню, что событие Create выполняется лишь раз, в момент создания объекта. Т.е. весь код, что написан в событии Create выполнится лишь раз, в самом начале, в отличии от Step , где он выполняется циклически, т.е. неприрывно.

Делаем столкновения со стеной

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

Т.е. что нам нужно сделать? Алгоритм такой:

  1. Проверить нажата ли клавиша вправо
  2. Проверить находится ли бита все еще левее самой крайней стены
  3. Если да, то только в этом случае сдвигаем ее на 5 пикселей вправо

Тоже самое потом проделываем и для левой стороны. Чуть дорабатываем наш код:

Ну, давайте разбираться, что мы тут написали.

Сначала как и прежде первой строкой проверяем нажата ли клавиша "стрелка вправо". И если она нажата, то все, что идет далее между скобок <> будет выполняться, если нет, то код в них просто будет игнорироваться.

А в скобочках у нас еще одно условие (if). Им мы проверяем если x-координата биты меньше значения 891, то можем выпонить код следующий далее в скобках <>. А в нем у нас как раз прибавление координаты x на 5 пикселей, т.е. сдвиг вправо. Таким образом, если у нас x биты меньше 891, то она сдвинется вправо, а если больше или равно, то код в скобках не будет выпоняться, т.е. бита не сдвинется и будет стоять, т.е. как бы упрется в стену.

То же самое для левой стороны, только там условие чуть отличается. Если x больше 67, то бита сдвинется влево на 5 пикселей, если меньше или равно 67, то соответственно нет.

Где я взял эти значения: 67 и 891? Это просто координаты в комнате. Как уже сказал, ось X в GMS идет слева направо. Т.е. самая левая координата комнаты будет равна 0, а самая правая - значению ширины комнаты (которое мы задавали при создании комнаты, т.е. 960 пикселей в нашем случае).

Рекомендации, которые покажут, как надо или не надо делать.

Прежде чем гуглить или спрашивать кого-то о проблеме, обязательно проверьте соответствующую секцию в документации — она может содержать информацию, которая может помочь решить вашу проблему.

Иногда, чтобы просто заставить что-то работать, вы копируете код и какого-то руководства, даже не понимая, что он делает. Кажется что всё в порядке, но на самом деле это только усугубляет проблему. Вы не сможете полностью контролировать свой проект, если вы не понимаете, как в нём работает какая-либо часть кода.

Прежде чем копировать код в своей проект, попробуйте хотя бы понять, как он устроен. Прочитайте. Погуглите. Спросите кого-то. Поймите.

Предположим, вам нужно сделать пару врагов: первый с 4 HP и второй с 10 HP. Как новичок, вы подумаете, что нужно создать ещё один объект и изменять HP внутри него. Но этот вопрос можно решить проще.

Когда вы размещаете экземпляр внутри комнаты через редактор комнат, вы можете открыть окно «Код создания» (в GMS2 нужно кликнуть дважды) и писать код в нём. Таким образом вы можете задавать HP экземпляров внутри их кода создания.

Через тоже самое окно можно изменить размер и поворот экземпляра, и установить уникальный ID, для того чтобы получить доступ к экземпляру через код.

Функция place_meeting() может использоваться для проверки столкновений между объектами. Лучше использовать эту функцию в условии, чем использовать событие столкновения, так как вы сможете больше контролировать работу столкновений.

Первый и второй аргументы — это X и Y координаты, в которых будет проверятся столкновение. Третий аргумент — это объект, с которым будет проверятся столкновение.

Первый и второй аргументы функции обычно устанавливается X и Y соответственно. Предположим, что игрок находится в комнате, когда выполняется проверка на столкновение. Это полезно, потому что вы можете проверить, будет ли игрок сталкиваться с объектом, проверив его такими аргументами.

Многие новички используют условия для установки переменных ввода. Например

Но есть более простой способ. Вот этот.

Вы знаете что keyboard_check() возвращает true если нажата определённая клавиша, или возвращает false если она не нажата. Но в GameMaker'е true становится — 1, а false — 0, это просто числа. Поэтому их можно использовать в таком уравнении.

Если нажата правая клавиша, то hsp будет равен 1.

Если нажата левая клавиша, то hsp будет равен -1.

И если ни одна клавиша не нажата, то hsp будет равен 0.

Тоже самое можно применить к вертикальному положению.

Для отрисовки HUD некоторые люди используют объекты или отрисовывают их через событие Draw — добавляют их относительные позиции в координаты камеры/вьюпорта.

Внутри события Draw GUI вам не требуется добавлять позиции камеры для того, чтобы HUD следовал за ней. Это событие использует координаты окна игры, вместо координат комнаты. Поэтому, если вы рисуете что-то в (0, 0), то это будет рисоваться в верхнем левом углу игрового окна, а не комнаты. Так что, всё что вы рисуете там, остаётся там: на его позицию не влияет камера в игре. Это как ещё один слой над вашей игрой.

В этом совете я обращусь к тому, что создает путаницу среди начинающих разработчиков.

Я говорю о функциях _create. Это функции, которые для создания чего-либо (поверхности, буфферов, структур данных и так далее) и сохраняет результат в переменную.

Давайте возьмём список структуры данных, как пример. Эта функция создаёт список и хранит его в переменной, верно?

Если я создам список в локальной переменной, он исчезнет в конце события, потому что переменная является локальной. Ведь так?

На самом деле, это работает не так. Всякий раз, когда вы создаёте список, он создаёт его внутри памяти. Именно там он и существует. Функция просто возвращает указатель, на список внутри памяти. Таким образом, переменная, которую вы используете как «список», представляет собой просто указатель, который позволяет вам получить доступ к фактическому списку в памяти.

Даже если переменная является локальной — список не существует. Помните, что переменная — это просто указатель. Чтобы уничтожить список, вам надо использовать.

Кроме того, когда вы делаете так.

Вы не создаете другой список, называемый «list_2», который совпадает с « list_1». Вы просто копируете значение указателя в эту переменную, поэтому обе переменные указывают на тот же список в памяти.

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

Когда вы создаете поверхность, она должна быть пустой, ведь так?

Ну, это не всегда так. Смотрите: когда вы уничтожаете поверхность, она освобождает память, но не очищает её. Если вы создаёте поверхность и она создаётся в том же блоке памяти, где когда-то существовала поверхность, которая была уничтожена, то содержимое уничтоженной поверхности может перенестись в новую.

Поэтому, когда вы создаете поверхность, убедитесь, что вы ее очистили.

В раздел Gamedev попадают не только редакционные материалы, но и читательские тексты с пометкой «Блог». Вы можете нажать кнопку «Написать» и рассказать о своём опыте разработки. Подробнее о читательском контенте в разделе вы можете почитать тут.

При этом с объектами и инстансами можно работать совершенно одинаково, так что первое время можно обращаться к инстансу по имени породившего его объекта, и игра даже будет работать.
А когда инстансов станет несколько - начнутся проблемы. Потому что GMS в такой ситуации под капотом перебирает все инстансы, и выполняет с ними указанную операцию.

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