Mighty Final Fight. Vol.0
volume 0
-3 :: -2 :: -1 :: 0 :: 1 :: 2 :: 3
Предупреждение!
Хочу еще раз подчеркнуть несколько важных моментов и больше к ним не возвращаться.
Цель данного цикла: поделиться опытом создания битэмапов на гейм мейкере (8.0 Pro).
Плюсы: в итоге мы получим работающий битэмап.
Минусы: не все будет сделано оптимально, наверняка какие-то вещи будут решаться через одно место и так далее. То есть воспринимать эти статьи как туториалы по изучению гейм мейкера (ГМ) не стоит. В то же время, я прошу старших товарищей поправлять меня, указывать на ошибки, подсказывать оптимальные решения. Таким образом новички не будут учиться неправильным приемам, и все мы наберемся опыта.
Общие моменты
Подразумевается, что вы минимально знакомы с инструментом. Я не буду начинать с основ и рассказывать вам, что такое комната, как создать объект и прочие базовые вещи. Однако стоит остановиться на некоторых вещах, чтобы прояснить мое понимание и подход к созданию игр на ГМ.
1. Комнаты
Я воспринимаю комнату, как часть игры, принципиально отличающуюся по функциональному назначению.
Например:
1) Титульный экран
2) Заставка перед и после уровня
3) Непосредственно игровой уровень
4) и так далее...
Так как я использую готовые бэкграунды (то есть не собираю их из тайлсета), то редактором комнаты (в котором расставляются объекты и собирается по кирпичикам бэкраунд) не пользуюсь.
Соответственно, любой игровой уровень происходит всегда в одной и той же комнате.
2. Объекты
Методологически, я разбиваю все, что будет в игре на отдельные сущности и для каждой создаю object.
Например:
1) Главный герой (ГГ)
В большинстве битэмапов существует выбор персонажа. Однако разные персонажи это один и тот же игровой объект "Главный герой". Персонажи будут различаться характеристиками (сила удара, количество энергии, спрайты и т.д.), но суть остается прежней.
2) Враг
Враги бывают разных типов, но это то же самое как разные персонажи, предоставляемые на выбор игроку. При описании игровой логики мы будем проверять, например, столкновение с врагом. И если все враги описаны одним объектом, то и проверять столкновение нужно будет только с копиями этого объекта.
3) Интерфейс
Это тоже отдельный объект, посредством которого мы будем выводить на экран энергии ГГ и врагов, количество набранного опыта и так далее.
4) Бэкграунд
Хотя в гейм мейкере существует отдельный вид объекта background, я рекомендую использовать обычный игровой объект и привязывать к нему спрайты с задниками.
5) и так далее...
Важно понимать, что описанный object, это, условно говоря, эталон, с которого в игре будут создаваться копии. Например, если вы захотите посчитать сколько врагов у вас в текущей игровой комнате, надо будет воспользоваться функцией instance_number(obj), которая посчитает количество копий указанного объекта в комнате.
3. Спрайты
Я экспериментировал с разными подходами к анимации персонажей и пришел к собственному способу вывода картинок на экран. В свое время я расскажу вам о необходимости "хитрого пути" в данном случае. Пока лишь скажу, что анимации персонажей вне игры лучше хранить в виде стрипов, а добавлять в игру в один спрайт. То есть абсолютно все кадры для одного персонажа будут лежать в одном спрайте ГМ.
4. GML
Мы будем использовать только встроенный язык ГМ -- GML, поэтому из всех действий (actions) объекта нам понадобится только Execute a piece of code (вкладка control > code).
При создании комнаты (спрайта, объекта и т.п.) она автоматически нумеруется. То есть первая созданная комната по умолчанию называется room0. Я настоятельно рекомендую не забывать про порядковый индекс (в данном случае, 0) при переименовывании, так как по этому индексу удобней и проще обращаться к объектам через функции. Нумерация идет сквозная и не учитывающая удаленные объекты, в связи с чем в дальнейшем можно легко запутаться в индексах, если удалять их из названия объекта.
Из общих моментов это, наверное, все.
Ресурсы
В первом приближении мы попытаемся реализовать боевую систему Mighty Final Fight (MFF), для чего, по минимуму, нам понадобятся следующие спрайты:
Анимации ГГ
Анимации врага
Бэкграунд первого подэтапа
На этом приготовления можно считать законченными, а в следующем выпуске мы разберем боевую систему MFF по частям, чтобы приблизительно понимать что именно и как мы будем реализовывать.
- 06 февраля 2012, 16:01
86 комментариев