Gamemaker studio 2 как сделать игру
GameMaker: Studio - это полноценный инструмент для разработки игр, в котором представлены редактор уровней, менеджер ресурсов, редактор кода и собственный скриптовый язык, известный как GameMaker Language (GML). Ранние версии GameMaker были очень простыми и многие люди помнят их, как в основном для начинающих - сделать с ними коммерческую игру было бы похоже на шутку. Теперь все изменилось, с несколькими коммерческими успехами, включая некоторые очень нашумевшие игры.
Для кого предназначен движок GameMaker: Studio?
В Master коллекции движка GM:S реализована кроссплатформенная совместимость для настольных компьютеров, HTML5 и мобильных устройств (как для Android, так и для iOS). Кроме того, имеется возможность интеграции системы управления версиями и монетизации (например, реклама и покупки в приложении). Общая стоимость master коллекции составляет около $800 долларов на момент написания этой статьи. Поэтому этот движок идеален для:
- Любого желающего кто интересуется кроссплатформенной разработкой
- Инди-команд разработчиков с небольшим бюджетом
Низкий порог вхождения в GM:S возможен благодаря интеграции drag-and-drop интерфейса. Таким образом, это фантастический инструмент для людей с небольшими знаниями программирования в качестве первого опыта; этот интерфейс является отличным способом изучить процесс выполнения программы и некоторую базовую логику.
Благодаря своим возможностям управления, GM:S позволяет разработчикам быстро создавать и запускать очень простые игры, что отлично подходит для игровых джемов и создания игровых прототипов.
Что в нем хорошего
GM:S очень хорош в управлении ресурсами, включением ресурсов в код, обеспечивает легкий способ изменения логики игровых объектов и событийное программирование.
Управление ресурсами
Как только разработчик создал спрайт, добавить его в GM:S можно за несколько кликов. После импорта спрайта, модификации могут быть сделаны уже в GM:S.
Создание спрайта.
Интеграция ресурсов в код
После импорта ресурса его свойства (размеры изображения, громкость звукового эффекта и т. д.) могут быть доступны из кода и могут быть назначены игровому объекту. Это делает создание игровых объектов очень простым и отлично подходит для быстрой подготовки и быстрого запуска.
Изменение логики игровых объектов и событийное программирование.
Редактор игровых объектов — это отличное средство обучения, для новичков в разработке игр, и предоставляет удобный способ изменения логики игрового объекта. Как вы можете видеть на этом скриншоте, GM:S позволяет вам писать код для конкретных событий:
Модификация событий игрового объекта.
Для кого это не подойдет?
- Людям, которые хотят создать полнофункциональную игру, нажатием нескольких кнопок. Для великих игр потребуется время.
- Для тех, кто хочет разработать следующую грандиозную MMO. Создание сетевых игр является относительно новым направлением для GM:S, и для создания многопользовательских игр есть инструменты получше.
- Элитные программисты которые требуют, чтобы их язык не мог управлять собственной памятью. GM:S - это не C/C++, и не является конечным языком, ориентированным на производительность. (Нельзя сказать, что производительность здесь плохая, просто C/C++ по-прежнему остается королем этой категории.)
Что в нем плохого
GML не является объектно-ориентированным языком в прямом смысле этого слова. Существуют игровые объекты, у них есть свойства, и можно даже создавать отношения типа родитель-потомок. Однако объекты не имеют методов. Для выполнения операции над объектом, вам нужно будет использовать его идентификатор экземпляра внутри скрипта. Вначале это может вызвать путаницу для тех кто пришел из объектно-ориентированных языков.
GM:S поддерживает 3D, но это не главное. Нет 3D-редактора, отсутствует программа импорта 3D моделей, а код для работы с трехмерной графикой довольно запутан. Если вас интересуют 3D-игры, я рекомендую вам использовать другой инструмент. В будущем 3D может стать более приоритетным для YoYo Games (компании, владеющей GM:S), но на данный момент это явно последнее в списке.
Где я могу получить GameMaker: Studio?
Ниже приведено сравнение различных версий GameMaker, взятых с веб-сайта YoYo Games:
Как вы видите, бесплатная версия (Studio) довольно ограничена, но это отличный способ увидеть рабочий процесс и расположение инструментов, а также потратить некоторое время на изучение языка.
Обновление: Бесплатная версия GameMaker: Studio теперь та же, что и стандартная версия! Для получения дополнительной информации см. GameMaker: Studio будет бесплатной.
Стандартная версия отлично подходит для разработчиков одиночек, которые только планируют разработку компьютерных игр; Профессиональная версия идеально подходит для небольшой команды разработчиков планирующих переходить в конечном итоге на кроссплатформенную разработку, поскольку они могут добавлять различные модули с течением времени после получения некоторого дохода; и Master Collection отлично подойдет для небольших команд, которые являются частью созданных студий, и хотели бы использовать кроссплатформенную разработку с самого начала.
GM:S также доступен в Steam, но я бы рекомендовал не покупать его там, так как YoYo Games не знает, что вы его приобрели, и, следовательно обладателям их продукта будет больше хлопот в отделе обслуживания клиентов. Кроме того, они иногда предлагают дешевые апгрейды для тех, у кого уже есть определенная версия GM:S, и они не могут дать то же обновление пользователям купившим в Steam. Кроме того, если вы покупаете у Steam, то необходимо войти в Steam, чтобы запустить GM:S, а это может раздражать.
Обучение GameMaker: Studio
GM:S предлагает два различных способа создавать игры. Первый это так называемый интерфейс Drag and Drop (сокращённо DnD). Он довольно мощный и позволяет создавать сложную логику. Однако, он не такой мощный, как второй вариант: использование языка программирования GameMaker Language (сокращённо GML). GML - это прекрасный язык сценариев, который может делать все, что может делать DND, и многое другое.
Начало работы
После того, как вы загрузили версию движка GM:S которая соответствует вашим потребностям, вам следует ознакомиться с учебными материалами, которые поставляются вместе с GM:S. Их можно найти во вкладке Tutorials после того, как вы откроете GM:S.
В начале уроков будет показано, как использовать drag and drop интерфейс, а более поздние руководства начинают охватывать язык программирования GML. Самое приятное в предложенных уроках - это то, что они фактически добавляют окно к интерфейсу, в котором вы узнаете, как создавать каждую игру, поэтому вам не нужно обращаться к веб-странице - все доступно изложено для вас в GM:S!
Для самого продвинутого обучения можно посмотреть демки на вкладке Demos после запуска GM:S. Они не откроют окно обучения, но они предоставляют доступ ко всему используемому исходному коду, чтобы можно было просматривать его, запускать отладчик и наблюдать за тем, что происходит, так что вы получите хорошее представление как использовать их методы в своих играх.
Руководство
Руководство в программе GM:S
Если вы выполняете поиск как в прилагаемом руководстве, так и в онлайн-руководстве и не можете найти ответы, не бойтесь! На reddit существует большое сообщество /r/gamemaker и есть официальные форумы. Кроме того, имеется отличный сайт полон инди-разработчиков, некоторые из них часто используют GM:S на форумах TIG. Эти сообщества полны полезных людей, поэтому не бойтесь задавать свои вопросы!
Расширения
Если вам не хватает встроенных функций движка GameMaker, не волнуйтесь; он расширяемый! Бесплатная версия не позволяет использовать расширения, но в платной версии это возможно.
Что могут делать расширения?
Расширения добавляют новую функциональность, изначально не предусмотренную YoYo games. Вот некоторые примеры:
GiiMote - позволяет разработчику интегрировать WiiMote элементы управления в свою игру, добавляя функции, которые опрашивают состояние WiiMote (положение и нажатие кнопок).
FX Creator Extension - упрощает создание таких эффектов, как погода, лучи и брызги воды.
Взаимодействие с базами данных с помощью SQL - позволяет вашей игре подключиться к базе данных SQL, получить данные в виде строки, а затем использовать их в игре. Расширение добавляет такие функции, как TestDatabaseConnection и ExecuteSQL так, что вы можете получить данные обратно в виде двух строк кода.
Одно серьезное ограничение - некоторые расширения несовместимы с мобильными платформами.
Где найти расширения
Самые лучшие места, которые я нашел, это официальный сайт ресурсов и неофициальный сайт под названием GMToolbox.
Как их установить
- Необходимо загрузить расширение - это должен быть файл .gex .
- Щелкните правой кнопкой мыши папку Extensions в GM:S и выберите Add Existing Extension.
- Это должно вызвать диалоговое окно, и в правом нижнем углу вы увидите кнопку с надписью Install. Нажмите ее.
- Откроется другое диалоговое окно со списком установленных пакетов (возможно, пустым). Справа от этого окна есть кнопка, которая снова с надписью Install. Нажмите ее.
- Это открывает еще одно диалоговое окно; перейдите в папку, в которой сохранен файл .gex , щелкните его и нажмите кнопку Open.
Учебные ресурсы
Уроки инди-разработчиков
Список уроков Chevy Ray - Chevy Ray является разработчиком Flash-игрового движка FlashPunk, частый соперник на Ludum Dare и разработчик нескольких классных игр. Он написал несколько уроков по GameMaker, и это подборка тех его материалов, которые он считает лучшими. Уроки охватывают такие темы, как масштабирование вида, оптимизация скорости, параллакс-скроллинг.
Серия уроков Derek Yu's - Derek Yu является членом TIGSource и разработчиком Spelunky. Эта серия уроков для более старой версии GameMaker, но вы по-прежнему можете легко пройти ее. Это полное пошаговое руководство по созданию космической сайд-скроллер стрелялки; по мере создания вы узнаете, как работают игровые объекты, как создавать прокручивающиеся фоны, как создавать спрайт шрифты и множество других замечательных тем. Обязательно к прочтению.
Другие уроки и руководства
Официальные уроки - официальные уроки посвящены созданию нескольких игр разных стилей (некоторые из них 3D-игры, поэтому эти уроки могут быть особенно глубокими, если вы будете использовать GM:S). Кроме того, имеется урок по созданию многопользовательских игр, который, по моему мнению, является одним из лучших в Интернете по изучению создания многопользовательской игры в GM:S.
Я рекомендую их для людей, которые хотят разработать определенный тип игры и желают узнать как разрабатывать игры подобного типа, но если вы ищете урок для начинающих, я рекомендую уроки Derek Yu's.
Также ознакомьтесь с официальными и неофициальными руководствами, поскольку они дают большой справочный материал.
Становимся профессионалом
Несколько GameMaker игр стали коммерчески успешными, и есть много других великолепных GameMaker игр, которые являются прекрасными примерами того, что возможно создать используя GM:S.
Отточеные игры
Spelunky - оригинальная версия Spelunky была создана в GameMaker; более новая XBLA версия и новая ПК-версия игры, нет. Это коммерческий успех, версия, созданная в GameMaker, бесплатная.
A Nation of Wind - эта игра скрытый драгоценный камень и в нее стоит определенно поиграть.
Dustforce - вышла в Steam, это не был огромный коммерческий успех, но тем не менее, это отличная игра!
Коммерческие хиты
Заключение
GameMaker: Studio отлично подходит для новичков и профессионалов. Его великолепный код и функции управления ресурсами, в сочетании с относительно низкой ценой, делают его великолепным игровым движком для небольших команд и независимых разработчиков, обладающих приличным опытом программирования, и его доступность, и событийность, и также система drag-and-drop на основе действий, делает его отличным движком для тех, кто практически не имеет опыта программирования.
Надеюсь, вам понравилось читать этот обзор, и теперь у вас есть хорошая идея, как начать работу с GM:S. Если вы считаете, что я, что-то упустил или вам нужна дополнительная информация, не стесняйтесь, напишите мне в комментариях. Удачи вам на вашем пути разработчика игр!
Я покажу, как реализовать передвижение, коллизию, прыжки, гравитацию, ускоряющие платформы, платформы для прыжков, смерть от шипов и падения за карту, переход на следующий уровень и порталы.
Перед началом желательно иметь хоть какие-нибудь навыки работы с Game Maker Studio. Рекомендую ознакомиться с интерфейсом программы.
Создадим объект oPlayer (в дальнейшем все названия ресурсов будут начинаться с соответствующей приставки, чтобы понимать, что это за ресурсы. Для объекта (object) — «o», для комнаты (room) — «r» и т. д.). Также понадобится нарисовать спрайт или загрузить уже готовый, и привязать его к объекту. В моем случае это простой белый квадрат 48x48.
В событии Create объявим следующие переменные:
xDir - направление движения игрока по горизонтали. Переменная будет равна:
-1 — если игрок идет налево;
1 — если игрок идет направо;
0 — если игрок стоит на месте.
stepLength - длина шага игрока в пикселях. Пускай переменная будет равна 10.
dx - сдвиг по горизонтали. Каждое обновление комнаты (по умолчанию — 60 обновлений в секунду) игрок будет сдвигаться на dx пикселей. dx будет вычисляться перемножением xDir и stepLength.
Переменные можно объявить другим способом: в специальном разделе Variable Definitions.
В событии Step напишем следующее:
xDir = -keyboard_check(ord("A")) + keyboard_check(ord("D")); dx = xDir * stepLength; x += dx;Переменная x относится к тем переменным, которые есть в каждом созданном вами объекте. Они определяются автоматически, без вашего участия и выделяются зеленым цветом в коде. Список всех таких переменных.
Первая строка вычисляет направление движения. Функция keyboard_check(key) принимает в качестве аргумента клавишу и возвращает true, если она нажата. Функция ord(string) принимает в качестве аргумента строку и преобразует ее в необходимый тип данных для аргумента функции keyboard_check(key). Таким образом, при удержании клавиши "A" переменная xDir становится равной -1, а при удержании клавиши "D" - 1.
Вторая строка вычисляет dx.
Третья строка увеличивает x на dx пикселей, то есть двигает игрока.
Создаем комнату и добавляем на слой Instances экземпляр объекта игрока.
Запускаем и убеждаемся, что все работает как надо.
Вместо того, чтобы обрабатывать каждый объект, в который можно врезаться и на котором можно стоять, создадим абстрактный объект oSolid («твердый» объект), от которого будем наследовать другие объекты, которые мы хотим наделить коллизией.
Здесь никаких переменных и событий создавать не надо: код для взаимодействия с объектом напишем внутри oPlayer в событии Step. Перепишем его так, чтобы событие выглядело следующим образом:
xDir = -keyboard_check(ord("A")) + keyboard_check(ord("D")); dx = xDir * stepLength; if (!place_meeting(x + dx, y, oSolid)) //эта строчка новая x += dx;place_meeting(x, y, obj) нужна для проверки пересечения прямоугольников коллизии двух объектов. Она принимает три аргумента:
x - позиция первого объекта по оси x;
y - позиция первого объекта по оси y;
obj - имя второго объекта или id его экземпляра.
Функция возвращает true, если объекты пересекаются и false - если нет. Важно то, что проверка осуществляется не в одной лишь точке (x; y), а сразу во всех точках прямоугольника вызывающего объекта. Для проверки коллизии в одной точке имеется функция position_meeting(x, y, obj), но она нам не понадобится. Используя place_meeting(x + dx, y, oSolid), мы проверяем пересечение игрока с твердым объектом, как если бы игрок был сдвинут на dx пикселей. И только убедившись, что пересечения нет, меняем координату игрока.
Теперь нужно создать объект oWall, установить ему родителя oSolid и привязать к нему какой-нибудь спрайт. В моем случае это черный квадрат 64x64. Позже в редакторе комнаты экземпляры этого объекта можно будет растянуть.
Создадим небольшую комнату и расставим там несколько oWall, чтобы проверить работоспособность.
GameMaker Studio 2 - это инструмент, созданный для того, чтобы дать вам и вашей команде возможность создавать новые и инновационные игры, а также прототипы идей самым быстрым и интуитивно понятным способом на различных целевых платформах. Он предназначен в первую очередь для создания 2D-игр, хотя вполне можно создавать и 3D-игры. В комплект поставки входит ряд инструментов и редакторов, которые помогут вам реализовать ваши мечты и идеи, а ваш конечный проект будет перенесен на несколько платформ из одних и тех же исходных ресурсов.
Для тех, кто новичок в мире программирования или никогда раньше не пользовался инструментами для создания игр, GameMaker Studio 2 предлагает интуитивно понятный и простой в использовании интерфейс Drag and Drop ( DnD™) из иконок действий, который позволит вам очень быстро начать создавать свои собственные игры с помощью визуальных сценариев:
Если вы более опытный - или менее наглядный - программист, то для создания своих игр вы можете использовать фирменный язык сценариев GML :
Вы даже можете комбинировать оба варианта и смешивать функции GML с действиями DnD™, что дает вам огромную гибкость в выборе способа написания. Все это изложено в интуитивно понятной форме, причем различные аспекты вашей игры "цепляются" друг за друга в IDE, чтобы дать вам уникальное и очень наглядное представление рабочего процесса.
GameMaker Studio 2 поставляется с рядом мощных инструментов, таких как полноценный редактор изображений для создания собственных спрайты и возможность использования комплекты плитки, а также вы можете импортировать изображения, созданные в любом внешнем редакторе, включая скелетную анимацию Spine и векторные файлы формата SWF. После того, как у вас есть изображения, остается только назначить их объектам в редакторе объектов, добавить код или действия DnD™, а затем поместить экземпляры этих объектов в игровую комнату в редакторе комнат. Есть также дополнительные инструменты для создания контуров, последовательностей, шейдеров и многого другого. Вы обнаружите, что IDE невероятно гибок, и его можно настроить в соответствии с вашими потребностями, если стандартная настройка IDE не покрывает то, что вам нужно, используя различные Параметры.
Этот файл справки расскажет вам все, что нужно знать о программе GameMaker Studio 2 и о том, как с ее помощью можно создавать собственные игры. Однако, пожалуйста, поймите, что даже с такой программой, как GameMaker Studio 2 , создание компьютерных игр не является абсолютно простым делом - поэтому здесь нет кнопки "сделай мне MMORPG"! Помните также, что в создании игр есть много аспектов, и все они одинаково важны: игровой процесс, графика, звуки, взаимодействие с пользователем и т.д. Но самый важный из всех аспектов - это терпение. GameMaker Studio 2 Хотя GameMaker Studio 2 является мощным инструментом, он не может сделать все за вас одним нажатием кнопки, поэтому начните с простых примеров, и вы увидите, что создание игр - это не только большое удовольствие, но и очень полезное занятие!
Дополнительную информацию, примеры, учебные пособия, идеи и ссылки на полезные форумы и другие замечательные сайты можно найти на сайте YoYo Games :
Прежде чем делать сами ящики, состряпаем физику для игрока. Приступим? Давайте!
Создадим объект o_hero и присвоим ему спрайт игрока. Делаем событие Create и туда запишем небольшой код:
jump_speed = 15;
gravity_amount = 1;
gravity_direction = 270;
push_speed = 1;
В первой строчке мы задаем скорость движения, во второй скорость прыжка, в третьей гравитацию, в четвертой мы задаем направление гравитации, а в пятой, в последней, мы даем силу передвижения ящика.
Теперь создаем событие Step, и туда запишем код (сейчас я сделал комментарии кода, ибо просто непрактично будет его расписывать отдельно):
Надеюсь вам все понятно, если что-то вы не поняли, то задайте вопрос в комментариях, я вам отвечу.
Теперь создаем объект o_block, присваиваем ему спрайт блока и ставим галочку на Solid (твердость):
Теперь в объекте игрока добавим событие столкновения с блоком, а потом прописываем туда такой код:
Объект игрока должен выглядеть так:
Он нужен для того, чтобы игрока при столкновении с блоком останавливался.
Теперь самое интересное, это ящик! Создаем объект o_box. Делаем событие Create и вбиваем туда такой код:
Он задает ящику гравитацию. Теперь создаем событие Step и опять таки вписываем код:
Теперь создаем событие столкновения с игроком, пишем туда код:
Это означает, что если ящик упадет на игрока, то он умрет. Ну и напоследок столкновение со стеной. Туда тоже записываем код:
Это остановка. Теперь создаем комнату, расставляем объекты и радуемся!
Вот мы и создали платформер и сделали в нем ящики. Возможно напишу еще статьи о всяких ловушках и фичах для платформеров, а пока удачной вам разработки игр, новички. Старайтесь и учитесь, добивайтесь лучших результатов и у вас все получится!
Читайте также: