Разработка игры собственными клешнями (Part I)

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

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

Цель написания данных статей, весьма проста! Понять принцип работы выбранного мной игрового движка, детально расписать свое начальное знакомство с ним, и поэтапно описать опыт работы. По мере сил создать рабочую пятиминутную демку, и дать ее пощупать каждому желающему. В конце каждой из статей, дать ссылки на все материалы, по которым я сам, учился работать с движком. И в конце концов, дать ответ на написанный мною ранее вопрос – может ли один, самый обычный среднестатистический человек, создать собственную игру? Буду стараться, чтобы материал был максимально прост, понятен и честен в отношении читателя.

Для достижения данной цели, выбран вероятно самый простой в своем освоении движок. RPG Maker MV. Он своего рода, служит спасительным маяком для рукожопов тех, кто от слова совсем не разбирается в программировании. На его базе создаются простейшие аналоги JRPG старой школы (в духе первых Final Fantasy). Но как бы это не было очевидным, глупо будет верить, что с ним вы добьетесь вершин. Говорю от своего малого опыта, куда легче о нем забыть, чем заставить себя снова сесть создавать.

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

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

Продолжение моей дискуссии

Где достать движок?

Поверхностное знакомство с рабочим инструментарием

Важная информация о слоях тайлсетов

  1. Этап создания стартовых локаций

Важные заметки

Ссылки на обучающие видео

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

Этап знакомства

Achtung программа платная! Продается в Steam за 1349 рублей, но мне посчастливилось ее забрать на распродаже, примерно за 800 рублей. Важно уточнить, что для моей статьи будет использоваться самая базовая версия программы, включительно с бесплатными дополнениями (хоть я и понятия не имею, как ими пользоваться). Сама программа владеет самым огромным количеством доп контента, что я видел, общей ценой в 106776 рублей (и нет, я не сделал опечатку в несколько цифр).

Если вы хоть отдаленно понимаете как работает компьютер и даже установка движка на свой комп не предоставила сильных неудобств… Поздравляю! Вы вполне сможете сами разобраться в интерфейсе программы. Минут двадцать потыкать на все существующие кнопки и приходит базовое понимание работы программы. Как раз с этим же пониманием, я и засел за создание проекта.

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

1. Это холст, на котором мы собственно и будем творить. Здесь рисуются локации, дома и впрочем всё, что касается внешнего вида игры. Также здесь создаются все события, размещаются персонажи, враги и много прочего с чем мы столкнемся в будущем.

2. Это тайлсеты (Tilesets), объекты и просто набор картинок, при помощи которого и рисуется вся локация, карта, местность, интерьер и экстерьер.

Сам процесс переноса тайлсета в игровое пространство, до боли простой! Клацаем на понравившуюся картинку или обводим сразу несколько, после чего клацаем на холст. Поздравляю, вы нарисовали свои первые объекты в локации! Но сразу скажу, что с базовым набором вы никогда не сможете разгуляться на полную. Благо, можно создать свои тайлсеты и применить их в игре (о чем я напишу позже), или же купить один из готовых наборов за 259 рублей.

3. Сейчас, вы должны усвоить важную информацию, все тайлсеты поделены на слои. И они имеют возможность наслаиваться друг на друга, этим создавая цельную картинку. И представленные буквы, это своего рода переключатель слоев. На (A), находятся такие базовые вещи как: земля, вода, разного рода тропинки, стены и крыши домов и прочее.

В букве (B), это экстерьер, интерьер и всё что рисуется поверх первого слоя: окна домов, кусты, цветы, и так далее.

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

  • Обратите внимание на нарисованный мною небольшой склад. Как вы наверное догадались, он был нарисован с учетом слоев. Стены и пол созданы со слоя (А), коробки, мешки, кровать, стол, стул, сломанные вещи, веревка и бадья с водой, от слоя (В). Теперь же, осталась только лопата на мешке, как вы наверное уже поняли, это элемент с третьего слоя (С), что хорошо наложился поверх второго (В).

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

5. Подбор всех возможных, остальных инструментов для создания игры вашей мечты. Сейчас пересказывать подробно о каждом из них, не буду. Но они более чем просты в понимании, а потому уверен что вы легко сможете с ними разобраться. Если же всё окажется немногим сложнее, то не переживайте, в будущем, затрагивая разные механики движка, обязательно более детально опишу свойства каждого инструмента.

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

Итак, с формальностями первого ознакомления с программой, я закончил. Теперь можно переходить и к первым шагам в создании!

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

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

1 Создание локации.

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

  • Создание локаций, с использованием стандартных ресурсов игры (или как говорят в народе, без костылей).

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

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

2. В новом окне настраиваются параметры для будущей локации. Выбираем созданный ранее список тайлсетов (и вновь, об их создании поведаю позже), или выбираем один из стандартных. Выбор зачастую зависит от того, какую местность необходимо создать (внутри дома, улица, глобальная карта), при стартовом наборе, разработчики услужливо подпишут какой из наборов на какую тему годиться (снаружи, внутри и мир, если объяснить более простым языком – улица, внутри дома, глобальная карта). И для самого старта, может с головой хватить только этих наборов.

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

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

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

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

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

  • Создание локации с собственным набором тайлсетов

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

Как создать собственный тайлсет?

Нарисовать. Буквально. В любом из доступных графических редакторов. Главное всегда учитывать размер самого тайлсета, что корректно должен отображаться внутри программы. Составляет он 48-48 пикселей, и в зависимости от того что вы хотите нарисовать, это значение необходимо умножить на количество используемых клеток.

Слышите? Где-то у вас внутри, корчиться от боли чувство прекрасного.

Важно, все тайлсеты должны сохранятся в png формате!

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

В ширину он составляет 192 пикселя, на 144 в высоту. Или четыре квадратика в ширину и три в высоту. Теперь встает вопрос, как сие чудо архитектурной мысли, поместить в игру.

Первым делом необходимо найти папку созданного вами проекта. При обычных условиях, они находятся в документах, аккурат за папкой Games. Там же, заходим в папку с названием проекта и все созданные изображения складируем в папку tilesets (она находиться в img), либо создаем свою (Главное чтобы тайлсет находился внутри папки с игрой).

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

Этап настройки тайлсетов

Сперва, заходим в базу данных (шестеренки вверху). После чего переходим в меню тайлсетов.

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

Я выбрал созданную разработчиками  подборку “снаружи” чтобы в ней, докинуть к дополнительному слою свой дом.

Дальше, мы можем сменить название своей подборки (что также отображается в меню создания карты), изменить режим местности (переключатель между глобальной картой и локацией), и в конце концов подбор самих тайлсетов. Все материалы, что находятся в папке tilesets, будут отображаться в графике слоев. Как можно понять по приведенной выше картинке, на деле, отображаемых слоев куда больше чем предполагалось заранее. Каждый из них отвечает за определенную часть карты. (A1) автоматически запускает анимацию воды и прочего. (A2) служит для создания участков земли. И прочее, что описано в самой программе.

Свой же дом, я разместил в слой (D), просто выбрав название в списке название своей картинки (как я уже писал ранее, высвечивают названия только из картинок формата png).

Помимо всего, перед нами открывается вид на инструментарий, что позволяет тонко настроить местность.

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

Кружок – это полная проходимость

Крестик – запрет прохода. То есть, протагонист наткнется на преграду.

Звезда – разрешен проход под тайлсетом. Помогает на зарисовке высоких объектов, когда персонаж примером может проходить за деревьями.

К остальным настраиваемым функциям, я детально вернусь в следующих статьях.

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

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

  • Parallax Mapping

Данный метод, на удивление весьма эффективный и распространенный, хоть и имеет свои изъяны, но все по порядку.

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

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

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

И вновь возникает вопрос, в чем же минус данного решения?

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

Но для меня, в использовании данного метода пока что нет необходимости. Ведь его я собираюсь попробовать немногим позже, когда действительно появится необходимость создания красивой, а главное проработанной локации!

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

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

Что ж… начало заложено, не говоря уже о том, что я вообще решился взяться за данный материал. И как по мне, всё происходит пока неплохо. Несмотря на то, что существует прорва проблем с которыми я сталкиваюсь и ожидаю столкнуться. Но в конце концов, разве может быть иначе? Ведь быть разработчиком, значит не только быть креативным и что-то создавать. Прежде всего это попытка пересилить себя, постоянно задаваться вопросом “а что если…”, очередной раз опускать руки и в конце концов вновь возвращаться за свой проект. Это всегда трудный путь, в котором лишь единицы могут пройти до того конца, о котором  мечтают едва ли не все… 

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

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

Огромная благодарность всем, кто прочитал это всё до конца. Хоть я и знаю, что таких не будет.

Важные заметки:

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

Все создаваемые локации, поделены на небольшие квадратные зоны. Размеры подобных зон 48-48 пикселей.

Не обязательно покупать DLC чтобы разнообразить количество внутриигровых объектов. Всё можно нарисовать своими руками.

Все собственноручно нарисованные шаблоны, должны сохранятся внутри папки img, в png формате.

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

Все методы создания локаций, имеют свои плюсы и минусы, главное уметь ими пользоваться.

Видео:

https://www.youtube.com/watch?v=P1hsbGGqAls

https://www.youtube.com/watch?v=nbsdgSFDMU0

https://www.youtube.com/watch?v=tDWLOfygXyM

https://www.youtube.com/watch?v=xpSxOauvNqo

https://www.youtube.com/watch?v=3Ozwjkw_dHc

https://www.youtube.com/watch?v=qy5WgUYgORg&t=15s

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

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

Комментарии