Здравствуйте, уважаемые читатели! Ранее я осветил вопрос реально ли человеку без опыта начать разрабатывать игры и как это сделать. А теперь давайте попробуем разобраться из чего же все таки состоит игра и поговорим о некоторых распространенных терминах.
Так из чего же все таки состоит игра?
1) Уровни/сцены/комнаты
В разных редакторах это называется по разному, но смысл один и тот же. Это основа. И говоря "уровни", я не имею ввиду уровни в обычном понимании. Т.е. например в игре первый уровень в джунглях, второй - в заснеженной зоне, третий - в пустыне. Нет. Я не совсем об этом (хотя и об этом в том числе).
Тут проще использовать термин "комнаты". В движке Game Maker Studio как раз они так и называются "rooms". Давайте на примере. Вот вы запускаете игру. Там появляется логотип разработчика и заголовок игры. Они как раз и расположены в одной из комнат. Далее открывается вторая комната, в которой находится меню игры. В третей комнате находится карта мира или экран выбора уровней. В четвертой комнате уже как раз сам первый игровой уровень и т.д.
Т.е. это можно представить как холст на котором вы будете что-то располагать, как страница в книге/комиксах. Так открыв один из движков, о которых я говорил в предыдущей статье, вы как раз для начала создадите свою первую сцену/комнату/уровень, в котором и будете располагать все остальное, что есть в игре.
2) Фон
Итак у вас есть чистый холст на котором вы будете собирать свою игру. Для начала неплохо было бы что-то на нем нарисовать. Вот тут как раз часто используются фоны или как их еще называют бэкграунды (background).
В меню это может быть просто заливка одним цветом, или повторяющаяся плитка с узором. В игровом уровне это может быть фон с небом, горами, лесом с кустами. Думаю тут особо объяснять не нужно.
Часто в игровых уровнях используется такой прием как параллакс (parallax). Дело в том, что фон можно делать многослойным. Например самый первый слой с синим небом, сверху на нем рисуем слой с облаками, потом слой с зданиями, над ним еще, потом с деревьями и наконец самый ближний слой к зрителю с поверхностью земли. Так вот, при движении героя, все слои начинают двигаться: те что ближе к игроку с большей скоростью, что дальше с меньшей. Последний слой с небом и солнцем оставляем неподвижным. Это создает эффект объема в двухмерной игре. Такой прием применяют очень часто. Это для того, чтобы вы знали, что такое параллакс бэкграунда.
А вот как это выглядит в движении в одном из моих старых прототипов:
3) Тайлы
Ок. У нас есть сцена/уровень/комната в которой расположен фон. Что дальше? А дальше нам нужно создать сам уровень. Из чего же он создается. Как раз таки из этих самых тайлов (tile). Что же это такое? Можно сказать - это такие "кирпичики" из которых мы строем уровень. На самом деле тайлы можно отнести так же к бэкграундам, но только не цельным, а сборным. И как правило этот бэкграунд является самым верхним слоем, т.е. самым ближним к игроку. Это те кирпичики, по которым будет бегать и прыгать герой игры.
Для начала художник собирает все эти кирпичи на одно изображение. Т.е. он создает тайлсет (tileset).
Выше наглядное изображение такого тайлсета. Его мысленно можно разделить на сетку из квадратов одинакового размера. Так вот с этого тайлсета мы как раз и будем перетягивать эти квадратики-кирпичи для составления самой архитектуры уровня. Эти квадратики тайлы мы будем накладывать в комнате поверх слоя с фоном.
Взгляните на первое изображение в этой статье, где изображена пустая комната в движке Game Maker Studio. Видите, что она уже разбита на сетку. Это сделано как раз для того, чтобы нам было удобнее расставлять кирпичики-тайлы по этой сетке. Ее размер естественно можно изменять.
4) Объекты
Ну вот мы и добрались до самого главного! Это игровые объекты.
Что же такое игровой объект? Это некая еденица в игровом уровне/комнате, которая что-то делает, выполняет какую-то функцию. Объекты могут быть видимыми и не видимыми для игрока.
Давайте к примерам. Главный герой, которым управляет игрок, враги, которые нападают на героя, шипы, которые герой перепрыгивает, отображение на экране кол-ва жизней, очков, пункты в меню, типа "Начать новую игру","Настройки" и другие - все это игровые объекты. Это видимые игровые объекты. Игрок видит их на экране, как они двигаются, он с ними как-то взаимодействует, например нажимает на них и т.д.
Но есть еще и невидимые объекты. Например, герой бежит по уровню, а в каком-то определенном месте уровня на него сверху начинают сыпаться камни. Сами камни - это видимые объекты, как и герой. Но как игра понимает, что именно в этом месте на игрока нады сыпать камни? Вот тут как раз и применяются невидимые объекты. Как один из примеров, это объект триггер (trigger). Т.е. на самом уровне есть к примеру невидимый для игрока большой квадратный объект. Он создан только для того, чтобы проверить, зашел ли главный герой в его границы или нет. И если зашел, то он как раз и запускает этот камнепад.
Как еще один из примеров невидимых объектов могу привести счетчики. К примеру, игроку через минуту со старта уровня с неба скидывают бонус. Кто и как будет отсчитывать эту минуту? Можно просто создать объект, который как раз и будет отсчитывать это время и подкинет бонус игроку. Сам бонус - это видимый объект, но объект в котором осчитывается время не виден игроку. Он невидимый. Если конечно, вы не хотите сделать так, чтобы таймер отображался на экране.
Невидимые объекты довольно часто применяются в играх. Это могут быть различные объекты контроллеры, которые отслеживают и контролируют все процессы в игре. Но на первых порах можно обойтись и без них.
Как вы уже наверное догадались: объекты - это самое главное в играх. Большая часть времени при создании игры как раз отводится созданию этих объектов и прописыванию их поведения, их логики. А далее вы их просто закидываете в ту же сцену/комнату/уровень и они будут взаимодействовать с другими и вести себя именно так, как вы им сказали.
5) Спрайты
Нет-нет, это не тот газированный напиток, о котором вы возможно подумали. :-)
Спрайт (sprite) - это изображение. Это как раз то, что отличает нивидимые объекты от видимых. Т.е. чтобы сделать объект видимым, мы просто назначаем ему спрайт и он уже будет выглядеть в игровом уровне именно так, как выглядит этот спрайт (изображение).
Спрайт может состоять как из одного изображения, так и из несольких. Т.е. он может быть анимацией. Как вы знаете, анимация - это просто набор нескольких слегка отличающихся изображений (кадров).
Объект не обязательно должен иметь лишь один спрайт или один набор спрайтов (анимаций). По ходу игры, любому объекту можно менять спрайты.
Давайте опять на понятном примере. Вот у нас есть герой. Он у нас стоит бездействует, пока игрок не нажмет кнопку. Бездействуя, он например слегка припрыгивает, покачивается, качает руками. Это анимация покоя (idle). Т.е. изначально объекту героя мы назначили набор спрайтов с кадрами анимации покоя. Т.е. мы например включили в нее 5 спрайтов-кадров, которые сменяются с определенной скоростью с 1 по 5-й кадр, и дойдя до последнего, опять переключаются на 1-й и так по кругу до бесконечности. Т.е. анимация зациклена.
Вот игрок нажимает клавишу для того, чтобы герой начал бежать вправо. Мы прописали в объекте это заранее. Игрок нажимает, но герой не бежит. Он двигается вправо, но визуально, он все так же стоит и покачивает руками. Т.е. он как бы плыве по земле. Это все потому, что мы не переключили анимацию. Т.е. в момент нажатия клавиши и движения героя нам надо объекту героя назначить другой набор анимации (набор спрайтов, кадров), в котором герой как раз перебирает ногами, т.е. бежит. А когда герой остановится, то снова вернуть анимацию покоя. С этим думаю ясно.
Часто спрайты (как и тайлы) собирают в один файл спрайт-лист (sprite sheet). В него сразу загружаются все кадры всех анимаций персонажа. Это выглядит примерно так:
Вот собственно вкратце основные вещи из которых состоит простая игра. Надеюсь в совокупности с предыдущей статьей вы получите хоть небольшое представление с чего начать собирать свою первую игру. А так же начнете немного разбираться в некоторых часто используемых терминах.
Надеюсь материал оказался интересным и хоть чуточку вам полезным. Если вам понравилось, то поставьте лайк и подпишитесь на канал. Это будет мотивировать меня писать дальше. Так же вы можете задавать любые интересующие вас вопросы в комментариях. Возраст и уровень опыта не важен. Ведь эти статьи как раз и расчитаны на тех, кто только пробует себя в игрострое.
Спасибо, что дочитали статью до конца!