Привет экспериментаторам, любителям и ценителям. Захотелось поделиться одной любопытной идеей, реализация которой тянется уже больше года. Постоянно отвлекаюсь на всякую мелочь, а когда возвращаюсь к проекту, то начинаю в нем что-то переделывать, добавлять, править и т.п. Какого-то плана, как такового, не было изхначально, все придумывалось и реализовывалось по ходу дела. И да, я прекрасно понимаю, что сие не особо правильно, но меня это нисколько не парит ибо я никуда не спешу.
Начну с самого начала. Эта история началась с создания генератора внешности. Для этого я немного поколдовал со скриптом, нарисовал персонажа отдельными элементами (голово-тулово с руко-лапами и ногами, несколько видов ртов, ушей, глаз, причесок и оружия). Добавил простой рандомный выбор от 0 до.. пусть будет n, где n - это последний предмет в массиве. И так для каждого соответствующего элемента (глаза, рот, уши и т.д.). Цвет, разумеется, тоже задавался случайно. Вся эта радость генерировалась при спавне персонажа и на выходе получалось как-то так..
Сам процесс меня, разумеется, премного умилил, поэтому я добавил больше элементов внешности и набросал пару вариантов брони. И все запестрело новыми красками.
И вот именно на этом моменте меня посетила мысль о создании полноценного проекта. Жанр не обсуждался: рогалик с прокачкой персонажа и перманентной смертью, рандомные враги, выбивание с них оружия и брони (и обязательно той, что была на враге), получение опыта, денег, славы и всяческих других благ.
Обычно всю экипировку делают используя Scriptable Object.. но я решил попробовать поступить иначе и изобрести свой велосипед. Получилось двояко.. с одной стороны просто, с другой не особо удобно в плане правок. Как бы то ни было, все работало.
Далее добавил персонажам показатели атаки, защиты и здоровья. Поковырялся с врагами и разделил их на несколько видов (люди, болотники, орки, нежить, демоны и т.д., и т.п. до бесконечности.. в общем, список даже не прилагается). Дальше была небольшая подгонка по внешности, набору оружия для каждого представителя агрессивной фауны и его цвету, продолжительное ковыряние со статами, а также создание стандартного набора анимаций Idle, Move, Attack, Death (кстати, получилось неплохо и почти все осталось в первоначальном варанте).
Еще немного времени ушло на создание системы получения трофеев и замена ими текущей экипировки с изменением статов.. и вуаля! Следующие полчаса-час ушли на дикое и беспощадное мочилово)
Оставалось добавить боссов. Подумал, что было бы неплохо, если бы статы врагов отталкивались от статов персонажа, а статы босса росли бы с каждым встреченным врагом по всем параметрам, если статы встреченного врага превышали текущие статы босса. Сам же босс появлялся бы тоже в случайном порядке.
Сказано сделано. Добавляем примитивный счетчик (любое число). Его мы будем уменьшать на 1 с каждым побежденным врагом. И когда счетчик будет равным 0 мы заспавним босса вместо обычного врага. Для теста обошелся без рандома, просто выставил счетчик на 5 (т.е. поочередный спавн 5 врагов и босс), а также после каждой победы порписал персонажу восполнение здоровье до максимума.. (только для теста само собой, дальше я пока не заглядывал). И вот очередной тестовый запуск и скрины с боссов.
В результате получили следующее:
- генератор внешности показал себя шикарно и без нареканий (даже с тем небольшим набором внешности, он старался вовсю и не подкидывал полных клонов, на боссах ограничения стоят, так что всей красоты видно не будет, но можно внимательнее рассмотреть тех же орков).
- то же самое можно сказать и про генератор оружия и экипировки.
- параметры персонажа и врагов росли довольно бодро, в связи с чем боссы становились смертельно опасными уже на 4-5 круге. Да и помирать персонажу приходилось часто и нередко внезапно. Было весело и совсем немножко больно).
Собственно, можно на этом было бы и закончить.. но душа активно требовала продолжения банкета и масштабирования игрового процесса. Рогалик это или нет, в конце концов?! И вот именно здесь начал вырисовываться "План". На что потребовалось неопределенное продолжительное время.. Но об этом позже.. =)
//продолжение следует.. (скоро)