Создание игры собственными клешнями (Статья вторая)

И вот вновь я сажусь за написание статьи, с абсолютно пустой головой. Более удивительным я нахожу, что мне на самом деле удалось выведать немало интересных деталей о работе движка и процессе создания игры. Тогда в чем же дело? Сложно сказать, что может давить на человека сильнее: чувство собственной бездарности или же банальная лень? Или может понимание того, сколько всего нужно сделать для своего проекта, ведь даже самые маленькие мечты, приходится воплощать собственными руками. Что ж… довольно! Я ведь здесь, чтобы ответить на заданный мною в прошлой статье вопрос! Может ли обычный человек создать свою игру?

С вами GamerBay и это вторая часть статьи, о разработке своей инди-игры.

Это случилось ночью, самой темной за последний десяток лет. Когда луна была полна, но скрыта тучами, когда видимый образ вещей искажен и внушал страх…

Да, именно в ту ночь, небо во все стороны было разорвано светом. Невероятной красоты сияние, виданное только на далеком севере. Будто молния, вмиг разогнал плотные тучи. Свечение было столь ярким, словно сама луна решившая уподобиться солнцу в ночи. Спустя всего несколько мгновений, оставив за собой чистоту небес и слабое сияние звезд, свет исчез. С того самого дня миру было суждено изменится и только единицам было дано это понять…

Как вам набросок для начала? Знаю, что переборщил с пафосом, но всё поправимо. Это описание должно производиться в игре, от третьего лица. Сам я пока не уверен, стоит ли его вставлять в самое начало, или же, когда должен случится [spoiler]. Но главное среди этих строк, это факт, что игра будет повествовательной. То есть суть истории в том, что ее кто-то рассказывает. И не существует большего геморроя, чем сделать самого рассказчика интересным. Но есть и весомые плюсы, этот метод по своему может добавить ей шарма! Возможно даже с использованием моего больного воображения, поможет сломать четвертую стену. Либо в некоторых моментах добавлять крупицы фарса. Что-что, а я не могу долго что либо рассказывать на серьезных щах. Таким нехитрым образом переходим к учебному материалу.

  1. Кратко об опыте с Parallax mapping
  2. Как я создал персонажа
  3. Немного о вступительной сцене

Заметки

Обучающие видео

По идее, материал вновь должен получится объемным, так что, если у вас бессонница, приятного чтения!

  1. Мой малый опыт с Parallax mapping

Честно, я видел множество отличных друг от друга способов, каким же образом человек может создать локацию собственными руками. Были примеры сложные, с использованием более двух плагинов и вписанием скриптов. Они на самом деле эффективные, помогают полностью преобразовать локацию и создать свой действительно уникальный мир. Но лично я, хотел всего лишь нарисовать кл@тый склад! Автор статьи далеко не художник, вовсе не разбирается в фотошопе и уж тем более не программист. Было необходимо что-то попроще, чтобы этим мог пользоваться даже я. И на свое удивление, действительно нашел выход из ситуации. А точнее метод, что может удовлетворить минимальные потребности любого клешнерукого. А теперь по порядку, начиная с основ.

1. Parallax mapping – метод создания локаций, в котором разработчик полностью сам, от руки рисует каждый элемент своей локации, вне самого движка. Это далеко не простой способ создания своего мира. Нельзя просто нарисовать и вставить картинку вместо карты! На всё, существуют свои условия.

2. Первым условием, есть загрузка и установка плагинов. Это отдельные строки кода, что зачастую расширяют потенциал самой программы/движка. Но при этом необходимо учитывать, что может пострадать производительность самой игры. В некоторых источниках, я прочитал, что при использовании плагинов, особенно при Паралакс маппинге, нередки утечки памяти. Так что использование данного метода, исключительно на вашей совести. Процесс установки самого плагина очень прост! По сути своей, плагин это джава скрипт. Его необходимо скачать, а после закинуть в папку с создаваемым проектом. И уже там, в папку plugins.

3. Необходимо иметь прямые руки. Не буквально, как вы могли понять. Во время создания локации, я очень советую покрыть холст в графическом редакторе, сеткой в 48 пикселей. Очень важно учитывать размеры объектов внутри сетки, чтобы герой примером не смог бегать по дальнему углу стены дома. Да и просто, чтобы в будущем не словить неприятные сюрпризы. А теперь главное! С тем плагином что использую я, необходимо создавать картинку размером минимум 816-816. Для чего, я потом объясню.

4. Чтобы не еб@ться, не создавать локацию с нуля, можно просто нарисовать начальный пример локации в самом движке. Сделать скрин экрана ноутбука и вставить в холст графического редактора. Далее подогнать соотношение размеров карты, с размером холста графического редактора (всё остальное обрезать). Можно даже скачать отдельный плагин, что будет сам делать скрин карты, но мне самому было лень в нем ковыряться.

5. Если вам удалось нарисовать самый примитивный пример локации, поздравляю! Теперь дайте ему название, и закидывайте во внутриигровую папку parallaxes. Здесь же, выступает важный момент. Необходимо в названии, в самом начале поставить восклицательный знак (!). Таким образом движок централизует саму картинку, в отношении создаваемой карты.

А теперь на буквальном примере, я покажу как должна выглядеть локация чтобы движок мог ее адекватно воспринять. В моем случае, это была легкая перерисовка стартовой локации.

Возможно это незаметно, но здесь я попытался поработать с тенями. Чтобы как минимум создавалось чувство, будто со стороны игрока идет свечение. Если же удастся в детали, светит ранее солнце из окна.

Принимая во внимание, что само пространство внутри склада небольшое, всё остальное нужно залить каким либо цветом. И вот что выйдет, если закинуть в движок картинку меньше, чем обозначенный мною размер.

Да, я вкурсе того, насколько у меня хреновый музыкальный вкус.

Лично я, три дня не мог понять как бороться с данной проблемой. Ни один видеоурок, не упоминал об этой проблеме. Пришлось самому искать костыли, что помогут ее решить. Таким образом я выведал для себя, минимальный размер изображения, что должен полностью заполнить собой среду. 816-816 или 17-17 квадратов.

6. Теперь когда всё более менее работает и возможно даже недурно выглядит, перейдем же к более тонкой настройке локации. По умолчанию, у нас нету текстур, лишь фон. А потому наш персонаж, как бы находится вне какого либо пространства. Он вовсе не может двигаться, или что либо сделать. Таким образом переходим к настройке местности, при помощи плагина.

YEP_RegionRestrictions – плагин, что позволяет сделать проходимыми участки, на которых не наложен слой локации. Таким образом мы можем настроить проходимость, как исключительно для персонажа, так и для иных неписей.

Выбрав кнопку пазла на панеле инструментов, перед нами открывается меню с плагинами. Чтобы добавить в список необходимый плагин(если вы конечно закинули его в папку с проектом), дважды кликаем на свободное место. После чего из списка выбираем название самого плагина. Дальше в параметрах, выбираем пункт Player Allow и напротив ставим любую цифру до ста.

Таким образом сохраняем работу плагина, выходим на холст. Помните я упоминал невидимые слои в Тайлсетах? Чтобы его открыть, нажимаем на самый последний из доступных слоев, после выбираем заданную ранее в плагине цифру и ставим ее на всех участках, где должна присутствовать проходимость персонажа.

Создаваемая мной локация, выглядит следующим образом.

Как я уже упоминал, единицей помечено всё пространство, в котором движется игрок. А привел в пример, лишь минимальные возможности плагина, если достаточно в нем разобраться, то можно получить немногим больше пользы.

Моя героиня теперь может двигаться, что несомненно огромный плюс для любой игры. Хотел бы я на этом закончить, но нет. Ведь движок подсунул мне своего персонажа. Конечно наш мир достаточно развит, чтобы спокойно воспринимать мальчика за девочку, но увы, я не настолько зрелый. А потому придерживаясь немногим традиционного мировоззрения, попытаюсь сделать внешность героини, отличимой от иных персонажей мужского пола. Разве что, только бороду оставлю.

  1. Как я создал персонажа

Только сейчас понял, что толком над героиней не работал. Но как говорится, на первое время и бревно за девушку сойдет. По своему небольшому секрету, хочу расказать, каким образом я вообще генерирую своих героев. Первым делом создаю некий архетип. Персонаж может быть: пофигистом, стервой, весельчаком и прочее. Дальше под этот образ, подбираю персонажей которых я уже видел в фильмах, аниме или даже играх (да, я клятый плагиатчик). В случае героини этой истории, её архетип скромной неприметной колдуньи у которой одна цель – заработать денег, много. После же выбиться в люди, при этом не пользуясь связями родных и попутно доказать своей зазнавшейся сестре, что героиня тоже чего-то достойна. Всё весьма просто и банально. Подобный образ у меня моментально сформировал внешность, которую я уже видел и что идеально могла бы подойти самой героине.

Знакомьтесь, это Цубаки Савабэ, героиня аниме Твоя апрельская ложь. И в руке она держит Хот-дог, а не то, о чем вы возможно подумали.

Как по мне, подобная внешность героини может передать ее скромные черты, слабую сдержанность, что зачастую может вылится в открытое противостояние и немногим наивное мировоззрение. Она еще ребенок, что вот-вот начинает понимать мир и лишь постепенно продвигается по пути взросления. Ей нету необходимости с избытком следить за собой для привлечения парней, на данном этапе они попросту не интересуют её.

Да, именно это тот образ был изначально заложен в основу истории и зачастую ее поведение, может напоминать повадки мальчишек. И собственно потому, она имеет неприметную прическу, но весьма вспыльчивый характер. А главное, что девушка готова на многое ради достижения своих целей.

Однажды я задумался, как много игр дают возможность следить за ростом и изменениями главных героев, таким образом, чтобы сам игрок этого не замечал? То есть, вначале дается героиня с внешностью молодой девушки и весьма наивным мировоззрением. И прямиком до конца истории, постепенно, раз десять изменить ее облик, чтобы сами изменения были совсем незаметны. Помимо самого облика, изменению подлежат даже мысли. И вот, очарованный мыслью перепрохождения истории игрок, вновь запускает новую игру и… С огромным удивлением понимает, что начинает играть не той героиней которую он запомнил, а действительно совсем юной девушкой (внешностью и поведением), что только начала свой путь сквозь дебри взросления…

Мысль весьма привлекательна, жаль только, что в моем случае подобное воплотить невозможно. Слишком много на это нужно потратить: сил, времени и таланта которого у меня нет, чтобы сделать проект такого большого размаха.

А теперь, рассмотрим саму возможность создать внешность героини в редакторе персонажей движка.

Мда… Не совсем тот образ, который я хотел воплотить. Скорее всего, он будет еще меняться, но для раннего этапа тоже сойдет. Жалею только о том, что так и не смог приклеить бороду.

Если честно, при базовой комплектации редактор очень скудный на детали и не в состоянии удовлетворить множество нужд разработчика. Но он необходим, ведь иные способы создания персонажей куда сложнее и требуют умения рисовать. Сам редактор довольно прост, будто прямиком из MMO. В панеле инструментов выбираем создание персонажей (иконка с человечком), и в вышедшем меню выбираем все детали, с которых можно слепить не самого уродливого протагониста.

Процесс переноски его на холст, тоже прост. Первым делом экспортируем все созданные образы в папку с игрой. Лицо в “Faces”, прочее в “Characters”. После, в базе данных выбираем меню персонажей. Там же в списке создаем имя и переносим сохраненные спрайты персонажа.

Чтобы поставить героя на сам холст, нужно в панеле инструментов выбрать редактор событий(отмечен как фишка). Далее навести на любую точку где должен появится персонаж, правой кнопкой выбираем (установить начальное положение/игрок). Вуаля, наша красавица в центре локации. Ничто вам не мешает, самому с нуля нарисовать протагониста и вставить в свой проект. Почему же я этого не сделал? Нехватка времени Лень…

  1. Немного о вступительной сцене

Играя в проекты подобного рода, я усвоил одну вещь – игры должны начинаться с определенной сцены, которая должна задать характер повествования и плавно ввести в курс событий. Чего по правде… я до сих пор не удосужился сделать. Если немного поразмыслить, можно прийти к выводу, что сделать начало, не самая трудная вещь. Просто при этом действительно заинтересовать играющего, куда сложнее. Ладно, я пообещал от вас ничего не утаивать, а потому покажу несколько реплик, что должны сделать тот самый старт игры.

Грохот грозы, сильный запах скошенной травы и всепоглощающая темнота. Это последнее, что смогла запомнить Астара. Не открывая глаз и тяжело вздохнув, она наконец проснулась. Резкий запах плесени ударил по ноздрям. Вокруг было тихо, лишь одно чувство не давало ей покоя. Ощущение чужого присутствия.

Мыши… подумала она. Лишь немногим прогадав, через миг она узнала знакомые голоса маленьких негодников.

(М)альчик – Как ты думаешь, она еще жива?

(Д)евочка – Ну ты и балда, конечно! Думаешь мертвецы так умеют храпеть?

М – Не знаю… Ты точно уверена? Ведь мой дедушка точно также храпел прежде чем…

Д – Тихо, смотри! Она просыпается.

Астара – Какого лешего вы шумите?

М – А я говорил что она услышит!

Д – Твой крик и мертвого разбудит. Бежим ибо она нас в лягушек превратит.

Астара – Скорее уж в белок.

Дети – Бежим!

Астара – Какие же они назойливые…

Да, я не смог придумать ничего лучшего… Но придется работать с тем, что уже есть. А точнее, ввести первый абзац этого монолога на самый старт игры. Я не так сильно переживаю на счет того, что это возможно самое скучное начало для игры. Так как планирую в будущем, разбавить его звуковым сопровождением. Нет, не музыкой. Звуками скрипящего пола, той самой грозы, ветра и прочего… Любой звук во время чтения, может увеличить погружаемость игрока в события. Но это скорее уже планы на будущие статьи. А пока необходимо добавить сам текст в проект.

Вновь выбираем редактор событий и дважды нажимаем на любую клетку в локации.

Редактор событий, являет собой упрощенный редактор скриптов. Абсолютно всё в игре, состоит из скриптов редактора событий. А теперь по порядку.

1. Первым делом перед вами открывается окно в котором задаются стартовые параметры события. Это может быть: его внешний вид (персонаж что дает квест), скорость и траектория движений (npc в городе), переключатели которые влияют на ветвление событий (квесты с множеством концовок), приоритет движения (под персонажем, на уровне с персонажем, над персонажем) и триггер, что запускает само событие (оно может стартовать со входом игрока в локацию или когда примером, тот пройдет возле определенного человека).  В моем случае, данный монолог должен стартовать сразу вначале игры. Потому необходимо задать значение триггера “автозапуск” либо “параллельно”.

2. Наводимся мышкой на пустые строки “содержимого”, дважды нажимаем на любую строку и офигеваем мягко удивляемся… Такого количества возможных событий действительно сложно представить.

В этих меню и происходит вся магия создания своей игры. Здесь можно настроить абсолютно всё. Начиная от обычных квестов или же, возможностью для игрока выбрать внешность героя и его имя, заканчивая мини играми, количеством противников на локации, сложностью игры и огромное множество прочих событий. Среди всего разнообразия вариантов, мне нужно лишь вставить текст в начало игры.

3. Первым делом, во второй странице меню, среди событий изменяющих оттенок экрана, выбираю “затемнить экран” (наша героиня ведь еще не открыла глаза). То есть, прежде чем проявится текст, экран уже будет темным.

На первой странице, в самом начале выбираю скрипт “показать сообщение”.

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

В моем случае, текст настроен без рамки и высвечиваться он будет вверху. Для того чтобы закончить действие события, в конце содержимого ставим скрипт “удалить событие”.

С удивлением только сейчас заметил, как я с неким рвением начал задумываться, чем же ещё разнообразить начало своего проекта? До этого момента, всё что звучало только в мыслях, а существовало в мечтах, сейчас выглядит вполне осуществимо. Становиться немного смешно, ведь теперь даже появилось желание вернутся за свой заброшенный проект в RenPy. Кто бы ожидал, что столь маленькие шаги в разработке, способны вдохновить человека продолжение работы. Уж точно не я…

Заметки.

Плагин – Это отдельные строки кода, что зачастую расширяют потенциал самой программы/движка. Добавляют их в работу движка, посредством файла джава скрипт.

Редактор персонажей – встроенный в сам движок редактор, что с заранее заготовленных обликов и наборов спрайтов, помогают создать своего персонажа.

Все события и действие скриптов, производится через редактор событий.

Обучающие видео.

 

Следите за нами в сети:

Поделиться записью
Комментарии 0

Комментарии