Делаю первую игру в жанре Tower Defense, рекап #1
Напомню о себе
На сайте уже есть мой вступительный пост, тем не менее, вот краткая инфа о проекте.
Прошло 10 дней с моего начала вката в Unity, я определился с жанром и попытался вкинуть какой-нибудь необычный "flavour" (да-да, я из Англии), "а что если сделать динамичный TD?"
В классических представителях жанра игрок устанавливает башни, прокачивает их, и они стоят до конца уровня. Я же решил дать вышкам таймер, по истечении которого, они исчезают. У меня нет большого опыта в TD играх, но я уверен, что что-то похожее уже существует, поэтому я целенаправленно не ищу аналоги и пытаюсь "изобрести велосипед" по-своему, со всеми косяками, чтобы набраться опыта.
Скелет игры без суставов
В прошлом посте я писал, что у меня уже есть "неплохо отполированный скелет". Я ошибался. Это был не скелет, а кучка кальция, напоминающая кости. Мне казалось, что я создал систему, которую легко можно расширить, но на деле процентов 30 игры держалось на костылях и временных заплатках, многие префабы были захардкодены, поэтому я часто чуть ли не полностью переделывал классы объектов и добавлял новые.
Не буду перечислять все моменты, но вот несколько из них:
1. Мой объект Spawner отвечал сразу за спавн мобов, за создание менюшек и игровой системы (GameManager), отслеживал состояние всего и вся, и т.д. Это во многом меня ограничивало, а сам класс Spawner раздувало до огромных размеров. В итоге я разделил его на два других объекта - Spawner и LevelController. Появилась гибкость и комфорт, теперь я мог ставить хоть сколько спавнеров на карте, и они все работали!
2. Я слишком много хардкодил. Нужно потестить нового моба? Открывай Unity, перетаскивай префаб, перезапускай сцену. Нужно потестить новую вышку? Открывай Unity, перетаскивай префаб, перезапускай сцену. А, ты хочешь потестить несколько разных мобов сразу? Ля, ну тут никак, иди создавай новую систему. Меня это в край задолбало, я тратил слишком много времени на постоянное редактирование одной переменной в скрипте и в Unity, и начал создавать инструменты для облегчения этой работы. Научил спавнер рожать гоблинов по инструкции из простой строки (в каком количестве, порядке и какого типа). Дал возможность выбирать вышки перед уровнем, а не через редактор. Всё это помогло мне решить третью проблему.
3. А третьей проблемой был баланс. А точнее, тестирование параметров. До того, как я ввёл "инструменты комфорта", всё шло очень медленно, мне сложно было понять, что весело, а что нет. Сейчас же, я уже начинаю неплохо понимать свою игру, выявил особенности, к которым я хочу стремиться. От первой версии баланса не осталось почти ничего.
В этот раз я не буду говорить, что скелет готов, но он в стократ лучше того, что был до него.
Сердце игры
За эту неделю я время от времени начал подмечать, что хорошо зайдёт в динамичный TD, а от чего следует избавиться. Есть особенности, которые мне показались простыми и элегантными: давать игроку всего лишь два типа вышек на уровень; давать немного золота за головы врагов и давать чуть больше в качестве пассивного дохода. А вот враги со здоровьем больше единицы мне пока не понравились, поэтому я убрал эту систему. Возможно, добавлю только босса какого-нибудь.
Появилась какая-никакая философия, идейность в создании уровней, я даже вывел небольшую памятку:
1. Создавай чоукпоинты или дай такую возможность игроку — они притягивают внимание.
2. Бросай на игрока больше угроз и давай больше золота.
3. Отвлекай игрока от одной точки.
4. ????
Четвёртый пункт отвечает за вектор игры, какой подход будет превалировать: игра-головоломка, где игрок подбирает нужные комбинации; или песочница, где любая комбинация имеет право на жизнь. Или, возможно, баланс этих двух. Над этим мне предстоит хорошенько подумать, потому что без вектора нет смысла создавать что-то дальше.
А на сегодня всё!
Есть поговорка "лучше посрать дома и опоздать, чем прийти вовремя и обосраться", но я в этот раз не стал её придерживаться и рекап вышел на скорую руку. Я дал себе обещание, что сегодня его выложу, поэтому извините за такой сумасброд.
На следующей неделе постараюсь выложить видео с геймплеем. Кому интересны подробности, можете подписаться на мой тг-канал, вот ссылка:
Всем спасибо за внимание, рад буду каждому подписчику!