Блог ☯

среда, 5 апреля 2017 г.

Основы создания игр - квесты и задания в Game Maker Studio

Итак, посмотрим как можно сделать квесты и задания в игре с помощью Game Maker Studio. Будь то стратегия или RPG, логика везде похожа. Это первый урок, скорее всего по заданиям будет еще один урок и еще одно видео в рамках курса - основы создания игр с нуля.

И как всегда - я сделал по этой теме видео, можете посмотреть:




Что нам понадобиться для того, чтобы сделать задание в игре? 

Нам нужно условие выполнения - что нужно сделать, чтобы его выполнить. 

Какие могут быть условия для квестов и заданий

  • Собрать N предметов 
  • Убить N монстров
  • Доставить предмет в локацию (точку)
  • Собрать Х ресурсов

Это самые банальные варианты заданий и квестов, всё это делать сравнительно легко. 

Условие, это как раз и есть то самое IF (Если), а ресурсы, монстры и предметы, это - переменные, которые мы будем менять на награду за задание. 

Какие бывают награды за задания?

  • Деньги 
  • Опыт
  • Другие ресурсы
  • Доступ к другим заданиям
  • Навыки, умения и т.д. 

По сути дела что происходит? Выполнение задания это считайте просто обмен одних ресурсов на другие, либо действие (время) за ресурсы. Примерно как реальная работа, её тоже можно назвать заданием, но уже в реальности. 

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

То есть, например задание - убить 10 врагов, как это сделать в GMS? 

Создаём переменную, например quest = -1 

Можно сделать её локальной у того НПС, который эти задания выдаёт.

Пускай у нас будет: 

  • quest = -1 // Нет задания
  • quest = 0 // Взято задание, убито 0
  • quest = 10 // Убили 10

Когда говорим с тем, кто выдаёт задания (пускай obj_npc_1), просто активируем это задание. Меняем quest с -1 на 0, если согласны выполнять. Далее, если у нас quest <> -1 (взят, не равен минус одному), при убийстве каждого такого врага в destroy у врага пишем quest +=1

Если quest - локальная, так и пишите: obj_npc_1.quest +=1 

Ну и у того, кто давал квест, пишем (при взаимодействии с героем): 

if quest >= 10 {
global.gold += 100 // наградаquest = -1
}

В данном случае у нас просто идёт проверка если убито 10 мобов, потом прибавляют золото и делает задание равным -1 (неактивным). Далее можно брать его снова, убивать врагов еще раз и получать золото опять. Понятно что можно там давать любую награду, в том числе и опыт. И визуально оформить выполнение задания тоже можно, например через диалоги. 

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