Pull to refresh

Разработка Tower Defense на Unity — часть 1

Level of difficultyEasy
Reading time5 min
Views3.6K

Дисклеймер

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

Теперь, когда с дисклеймером покончено, давайте перейдём к теме.

О чём статья?

Tower Defense не самый популярный игровой жанр на данный момент, но вряд-ли у кого-то повернётся язык назвать его малоизвестным. Базовые механики строительства и улучшения башен, крипы, которых нельзя допускать к выходу с уровня - всё это наверняка вызывает в вашей голове образы старых игр, будь то "Защита Асгарда" или, прости Господи, карты для Warcraft'а третьего. Даже те, кто не знают о жанре Tower Defense наверняка играли в такие игры, просто не зная этого.

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

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

Настоящий цикл статей был написан с целью показать разработку инди-игры в жанре TD изнутри от начала и до релиза с точки зрения новичка. Мы рассмотрим разработку Tower Defense под названием Defense the Kernel, поговорим о видении игры, геймплее, инструментах разработчика, процессе создания игры на разных этапах и о релизе. Если вы только начинаете свой путь - присоединяйтесь, ведь вместе учится куда проще. В этой же статье мы рассмотрим концепцию игры и выберем программные средства.

Концепция игры

Рендер небольшой локации, с лазерной башней на переднем плане.
Рендер небольшой локации, с лазерной башней на переднем плане.

Если с жанром игры всё понятно, то сеттинг остаётся под вопросом. Наиболее частым выбором среди TD является фентезийный сеттинг, чуть реже встречается научная фантастика. Яркими примерами являются Element TD 2 и Axon TD: Uprising, разработанный одной командой Element Studios. В качестве сеттинга для нашей игры были выбраны научная фантастика и постапокалипсис. Предыстория вкратце довольно классическая и вы уже могли догадаться: искусственный интеллект(научная фантастика) восстал и уничтожил большую часть населения земли(постапокалипсис). Простая сюжетная завязка, какая и нужна подобным играм, не так ли? Всё немного сложнее - игроку придётся примерить на себя роль оборонительной вычислительной единицы комплекса машин, защищающего Главное Ядро от остатков человечества. Да, верно, в этой игре мы выступаем на стороне злодея, пытающегося окончательно утвердить свою власть. Более подробно с предысторией можно ознакомиться в группе нашего проекта: Defense the Kernel: TD (vk.com). Теперь давайте обсудим схему и элементы геймплея будущей игры.

Главное Ядро - наш босс, которого мы должны защищать.
Главное Ядро - наш босс, которого мы должны защищать.

Геймплей

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

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

Рассмотрим механики игры: помимо очевидного строительства, улучшений и т.д. мы подумали, что было бы интересно добавить следующие механики:

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

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

  • Система приоритетов для башен - возможность для каждой башни указать приоритет от 1 до 9 для каждого противника на уровне, что в свою очередь будет влиять на то, какой противник будет выбран башней для ведения огня.

  • Типы урона - разделение башен на несколько классов приводит к идее о разделении урона на разные типы. Например: термальный, кинетический и электромагнитный. Эти типы урона могут по разному влиять на разны противников, что сподвигнет игрока подбирать башни грамотнее, исходя из того, какие противники преобладают на уровне.

Вкладка технологий в разделе сюжетной кампании.
Вкладка технологий в разделе сюжетной кампании.
Вкладка карты в разделе сюжетной кампании.
Вкладка карты в разделе сюжетной кампании.
Концепт уровня.
Концепт уровня.

Таково наше видение игры на данный момент.

Программные средства

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

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

Создание 3D моделей мы осуществляем в такой программе, как Blender 3D. Она удовлетворяет всем требованиям проекта на данный момент и у нас есть опыт работы с ней.

Итого

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

Tags:
Hubs:
Total votes 12: ↑11 and ↓1+10
Comments18

Articles