Вкатун в Unity. Делаю первую игру в жанре Tower Defense

Йоу народ, очередной вкатун в геймдев на месте. История классическая - немного знаком с программированием и Unity, начинал какой-нибудь проект, месяц им занимался и забрасывал на годы, затем цикл повторялся. Надеюсь, в этот раз я смогу обрести самодисциплину и создать какое-нибудь подобие продукта.

А теперь об игре.

Что и как вообще создаю

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

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

Первый атлас спрайтов, из него юзаю только гоблинов и вышки
Первый атлас спрайтов, из него юзаю только гоблинов и вышки

Игру-то покажешь?

Покажу. Но сначала расскажу. На текущий момент есть следующее:

1. Базовые механики.

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

2. Оформление.

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

3. Техническая часть.

Уже успел переписать и оптимизировать код, которым местами срал не пойми как — лишние переменные, привязки методов к неудобным классам, if-statements там, где можно без них обойтись и т.д. Плюсом добавил стартовое меню, где можно выбрать уровень из имеющихся. В качестве примера — нужно было сделать так, чтобы спрайт врага смотрел в ту сторону, в которую идёт. Для этого я менял масштаб объекта с 1 на -1. Изначально у врагов была полоска с хп и в итоге она переворачивалась в обратную сторону вместе с врагом. Решил проблему тем, что вместо изменения масштаба, просто ставил флажок у спрайта "Flip X" — спрайт просто "переворачивается" по оси Х. Ещё нужно было понять то, когда перевернуть спрайт. Я решил отслеживать предыдущую позицию объекта со следующей, если координата Х стала меньше, то повернуть влево, если больше, то вправо. Но, во-первых, это плодило лишние переменные и if проверки, а во-вторых, если в скрипте участвовала координата Х с минусовым значением, то код работал неверно. Поэтому я начал сравнивать положение врага с положением следующего чекпоинта, спрайт поворачивался по направлению к нему.

4. Уровни.

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

А вот собственно и скриншот из игры

Вкатун в Unity. Делаю первую игру в жанре Tower Defense

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

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

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

Круто, а чо хотел то?

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

Если интересно, то вот ссылка на тг канал, буду рад вас видеть:

Всех прочитавших до конца душевно благодарю!

2
1
4 комментария