GameMaker: советы для новичков
Рекомендации, которые покажут, как надо или не надо делать.
17 976 просмотров
Попробуйте прочитать документацию
Прежде чем гуглить или спрашивать кого-то о проблеме, обязательно проверьте соответствующую секцию в документации — она может содержать информацию, которая может помочь решить вашу проблему.
Не копируйте код, если вы его не понимаете
Иногда, чтобы просто заставить что-то работать, вы копируете код и какого-то руководства, даже не понимая, что он делает. Кажется что всё в порядке, но на самом деле это только усугубляет проблему. Вы не сможете полностью контролировать свой проект, если вы не понимаете, как в нём работает какая-либо часть кода.
Прежде чем копировать код в своей проект, попробуйте хотя бы понять, как он устроен. Прочитайте. Погуглите. Спросите кого-то. Поймите.
Различные значения для различных экземпляров
Предположим, вам нужно сделать пару врагов: первый с 4 HP и второй с 10 HP. Как новичок, вы подумаете, что нужно создать ещё один объект и изменять HP внутри него. Но этот вопрос можно решить проще.
Как понять Game Maker Studio 2? Логика программирования
Когда вы размещаете экземпляр внутри комнаты через редактор комнат, вы можете открыть окно «Код создания» (в GMS2 нужно кликнуть дважды) и писать код в нём. Таким образом вы можете задавать HP экземпляров внутри их кода создания.
Через тоже самое окно можно изменить размер и поворот экземпляра, и установить уникальный ID, для того чтобы получить доступ к экземпляру через код.
Используйте place_meeting()
Функция place_meeting() может использоваться для проверки столкновений между объектами. Лучше использовать эту функцию в условии, чем использовать событие столкновения, так как вы сможете больше контролировать работу столкновений.
Первый и второй аргументы — это X и Y координаты, в которых будет проверятся столкновение. Третий аргумент — это объект, с которым будет проверятся столкновение.
Первый и второй аргументы функции обычно устанавливается X и Y соответственно. Предположим, что игрок находится в комнате, когда выполняется проверка на столкновение. Это полезно, потому что вы можете проверить, будет ли игрок сталкиваться с объектом, проверив его такими аргументами.
Лучший способ получения ввода (input)
Многие новички используют условия для установки переменных ввода. Например
Но есть более простой способ. Вот этот.
Вы знаете что keyboard_check() возвращает true если нажата определённая клавиша, или возвращает false если она не нажата. Но в GameMaker’е true становится — 1, а false — 0, это просто числа. Поэтому их можно использовать в таком уравнении.
Если нажата правая клавиша, то hsp будет равен 1.
Если нажата левая клавиша, то hsp будет равен -1.
И если ни одна клавиша не нажата, то hsp будет равен 0.
Тоже самое можно применить к вертикальному положению.
Событие Draw GUI для элементов HUD
Для отрисовки HUD некоторые люди используют объекты или отрисовывают их через событие Draw — добавляют их относительные позиции в координаты камеры/вьюпорта.
Game Maker Studio 2 Обзор — Программа для создания игр. Что нового в GMS 2 by Artalasky
Внутри события Draw GUI вам не требуется добавлять позиции камеры для того, чтобы HUD следовал за ней. Это событие использует координаты окна игры, вместо координат комнаты. Поэтому, если вы рисуете что-то в (0, 0), то это будет рисоваться в верхнем левом углу игрового окна, а не комнаты. Так что, всё что вы рисуете там, остаётся там: на его позицию не влияет камера в игре. Это как ещё один слой над вашей игрой.
Как работают функции создания
В этом совете я обращусь к тому, что создает путаницу среди начинающих разработчиков.
Я говорю о функциях _create. Это функции, которые для создания чего-либо (поверхности, буфферов, структур данных и так далее) и сохраняет результат в переменную.
arg — аргумент
Давайте возьмём список структуры данных, как пример. Эта функция создаёт список и хранит его в переменной, верно?
Если я создам список в локальной переменной, он исчезнет в конце события, потому что переменная является локальной. Ведь так?
На самом деле, это работает не так. Всякий раз, когда вы создаёте список, он создаёт его внутри памяти. Именно там он и существует. Функция просто возвращает указатель, на список внутри памяти. Таким образом, переменная, которую вы используете как «список», представляет собой просто указатель, который позволяет вам получить доступ к фактическому списку в памяти.
Даже если переменная является локальной — список не существует. Помните, что переменная — это просто указатель. Чтобы уничтожить список, вам надо использовать.
Эта функция удалит список из памяти
Кроме того, когда вы делаете так.
Вы не создаете другой список, называемый «list_2», который совпадает с « list_1». Вы просто копируете значение указателя в эту переменную, поэтому обе переменные указывают на тот же список в памяти.
Это работает так же по отношению к другим вещам, таким как поверхности, системы частиц и буферы. Переменная — это только указатель на то, что существует внутри памяти, пока оно не будет уничтожено.
Очистите поверхность, когда вы её создаёте
Когда вы создаете поверхность, она должна быть пустой, ведь так?
Ну, это не всегда так. Смотрите: когда вы уничтожаете поверхность, она освобождает память, но не очищает её. Если вы создаёте поверхность и она создаётся в том же блоке памяти, где когда-то существовала поверхность, которая была уничтожена, то содержимое уничтоженной поверхности может перенестись в новую.
Поэтому, когда вы создаете поверхность, убедитесь, что вы ее очистили.
В раздел Gamedev попадают не только редакционные материалы, но и читательские тексты с пометкой «Блог». Вы можете нажать кнопку «Написать» и рассказать о своём опыте разработки. Подробнее о читательском контенте в разделе вы можете почитать тут.
Показать ещё
72 комментария
Написать комментарий.
Развернуть ветку
«А когда инстансов станет несколько — начнутся проблемы. Потому что GMS в такой ситуации под капотом перебирает все инстансы, и выполняет с ними указанную операцию.»
Если вы храните id инстансов в переменной, и обращаетесь по нему, нет никаких проблем.
«Есть other, но нет this. Нормально? Нормально»
Есть self, который this
«Переменные можно объявлять в любом месте, но нет способа проверить, объявлена уже переменная, или нет. Нормально? Почему нет? This is GML!»
Зависит от того, как давно вы обновлялись. Если вы с ГМ давно знакомы, то в версии 8, например, эта функция была. Если недавно, то в ГМС2.1 эта функция есть =)
Развернуть ветку
Звучит только как минусы. Или у GML есть свои плюсы? Вообще, велосипеды всегда не хорошо, как по мне.
Развернуть ветку
12 комментариев
Всякий спрей
Кагбе, «объект->экземпляр» ещё дедушка Вирт использовал. Один из популяризаторов ООП.
А то понапривыкали «класс->объект» и всё. ИМХО, вкусовщина.
Вот с переменными, похоже, действительно засада.
Развернуть ветку
3 комментария
«. и игра даже будет работать»
Там много таких медвежьих услуг, которые зато делают вхождение в язык и его использование очень дружелюбным 🙂
Развернуть ветку
Ручной звук
Не копируйте код, если вы его не понимаете
Развернуть ветку
Действительно, как будто что-то плохое.
Развернуть ветку
. потому что это прерогатива разработчиков на C++.
Развернуть ветку
1 комментарий
Развернуть ветку
Не оставляет, а не переводит в тот же месяц. Переводит, когда накопится больше. Не вводите людей в заблуждение.
Развернуть ветку
4 комментария
У меня нулевое знание программирования. Да и желания учить его особо нет. Поэтому для первого простого проекта я искал движок, в котором оно не нужно. Узнал, что в GameMaker2 есть система Drag’n’Drop. Скачал программу, ну, думаю, отлично. Но не тут то было) Туториалов по этой системе — раз, два и обчёлся.
Даже на сайте разработчика ничего особо нет об этой системе. Покопался в движке, попробовал методом научного тыка — не заработало. Тогда я начал искать другой движок. И наткнулся на Construct 2 (https://www.scirra.com/). Оказалось, он интуитивно простой.
Туториалов по нему навалом, плюс, форум довольно живой (т.е. можно задать там интересующие вас вопросы и вам ответят местные энтузиасты или сами разработчики). Потестил бесплатную версию, а потом приобрёл и полную лицензию (можно купить через стим http://store.steampowered.com/app/227240/Construct_2/). Вот уже с июля сижу, пилю платформер в C2. Если вы хотите сделать относительно простой 2D проект, но по какой-то причине не хотите учить языки программирования — советую попробовать Construct 2.
Развернуть ветку
В GM дохрена встроенных туториалов по всем темам.
Источник: dtf.ru
Game Maker
Game Maker — бесплатное приложение для создания 2D и 3D игр любого жанра. Освоить софт смогут абсолютно все пользователи, в том числе и без знаний языков программирования.
Возможности Game Maker
- Встроенный графический редактор;
- Добавление изображений и звуков;
- Настраиваемый внешний вид персонажей;
- Доступна ручная регулировка рабочей зоны;
- Встроенная коллекция спрайтов, объектов и комнат;
- Интеграция с магазинами Steam, Google Play;
- Создание презентаций к продукту;
- Можно создавать игры 2D и 3D для Виндовс, Android и iOS;
- Регулярные обновления софта от официального сайта разработчика.
Преимущества
- Высокая скорость работы;
- Использует собственный язык GML;
- Позволяет изменять поведение объектов;
- Разнообразные звуковые эффекты и анимации;
- Возможно создание компьютерных игр в конструкторе;
- Интуитивно понятный интерфейс;
- Совместима с Windows, Linux и Mac OS X.
Недостатки
- Высокое потребление оперативной памяти;
- Полная версия программы Game Maker получила больше функций — помощью Game Maker Pro можно создать игру намного лучшего качества. В то время как бесплатная версия походит только для создание двухмерных простеньких развлекалок, а не разработки мобильных игр. Кроме того, free версия оставляет логотип на экране;
Общие данные Основные функции Дополнительные возможности Общий рейтинг
10/8 Game Maker
Общие данные
Основные функции
Дополнительные возможности
Общий рейтинг
Borland Delphi 7
Java Development Kit (JDK)
Microsoft Visual C++
Visual Studio
Game Maker скачать бесплатно
Последняя версия:
2.3.3.570 от 09.07 2021
Разработчик: YoYo Games (ранее GameMaker Studio Games ltd.)
Операционные системы:
Windows 7, 8, 10 Интерфейс: Русский Размер файла: 12 Mb
Скачать Game Maker
Game_Maker_Studio_Setup.exe
Полное описание
Главное преимущество программного обеспечения Game Maker Studio — это легкость в освоении. Процесс создания игр осуществляется в режиме Drag https://softcatalog.io/ru/programmy/game-maker» target=»_blank»]softcatalog.io[/mask_link]
Game Maker 8.1
Game Maker является одной из последних новинок, лучших и популярных конструкторов для создания 2D и 3D игр любого жанра, с различными миссиями, уровнями и сценариями.
В программе есть уже встроенный редактор текстур, объектов, спрайтов, с помощью которого также можно задавать различные задания для игроков, время на выполнения миссий и маршрут передвижения.
Без особого труда, за короткое время можно создавать любую игру, устанавливать в ней свои собственные правила, по которым в дальнейшем будут играть другие игроки.
Благодаря программе Game Maker у пользователей появляется полноценная возможность создавать игры без особых знаний языка программирования, а владея такими знаниями можно запросто использовать для своих игр дополнительные скрипты. Начинающие программисты активно используют данную программу в качестве обучающего материала и начальной базы для развития своих профессиональных навыков в сфере создания игр.
Благодаря качественному русификатору есть возможность пользоваться абсолютно всеми привилегиями и функциями утилиты без ограничений. Простота пользовательского интерфейса позволяет за короткие сроки обучиться даже новичкам.
Преимущества программы Game Maker:
- высокая скорость работы;
- поддержка скриптов;
- широкий функционал;
- русский язык (имеется руссификатор );
С помощью Game Maker можно создавать прекрасные игры, пользоваться бесплатной коллекцией встроенных звуков и изображениями для игры. Программа имеет свой программный язык GML, работа с которым позволяет создавать красочные и функциональные игры.
Источник: apps24.org
Game Maker 8.1
Game Maker – конструктор видеоигр от компании YoYo Games. Написан на языке Delphi. Позволяет создать с нуля игру без глубоких познаний в программировании, а также красочную презентацию. Версии программы от 6-й м выше работают с 3D графикой.
Особенности Game Maker
- простота в освоении;
- знакомый по Java и C синтаксис;
- возможность портировать готовый проект на любую платформу с помощью нескольких кликов;
- активное комьюнити, которое подскажет непонятные моменты в коде или предложит готовые решения;
- возможность установки дополнительных модулей;
- выполнение программных скриптов с внешних файлов.
Характеристики программы
Функционал программы позволяет создать видеоигру с минимальным применение кодов программирования. Приложение содержит в себе редакторы разных типов объектов, таких как комнаты, скрипты или спрайты. Предусмотрена возможность задать последовательность действий объектов с привязкой ко времени, траекторий для передвижения и констант.
Игра в проекте строится как взаимодействие типовых объектов, за вид которых ответственны спрайты. Поведение задается описанием реакции на игровое событие. Алгоритмы кода при этом можно задать в виде графических блок-схем, а программировать действия с помощью технологии drag’n’drop.
Для более опытных в программировании пользователей интегрирован скриптовый язык GML, с помощью которого можно создать собственные библиотеки действий. В Game Maker есть графический растровый редактор, поддерживающий прозрачный альфа-канал. Звуковая система программы работает со всеми популярными аудиоформатами.
Источник: biblsoft.ru