Апдейт моих мучений, после двух месяцев отдыха от разработки моего первого проекта
Что-то я всех критикую в последнее время, а сам давно ничего не показываю. Так нельзя, пора и меня захейтить.
В этом посте я расскажу, о том почему я вообще взял такой длительный перерыв, и что изменилось в проекте, после того как я все таки к нему вернулся.
Начнем с паузы взятой от проекта.
Это мой первый проект. На нём я учился и продолжаю учиться очень многому. Но...
1. Он довольно амбициозный,его довольно тяжело делать в одиночку, особенно самоучке. И каждая новая фича, выглядит как непреодолимая стена. И когда ты преодолеваешь стену, только чтобы увидеть перед собой новую, еще более высокую, это морально душит.
Хорошая новость в том, что я спайдермен и умею карабкаться по стеночкам, вопрос лишь времени в преодолении стены.
2. Не смотря на то что у меня было какое-то базовое понимание архитектуры и я пытался содержать код на том уровне чистоты который могу, для моего проекта этого оказалось недостаточно. И в один прекрасный день это всё стало страшно трогать. Дебажить, добавлять новые фичи, в общем разработка стала практически невозможна или занимала куда больше времени чем должна была.
Поэтому, я взял длительный отдых.
Обычно на этом моменте многие с отдыха, к проекту уже не возвращаются. Но я слишком упрям,чтобы бросить.
Что изменилось в проекте?
Не самом деле на вид, не так уж и много, потому что я всего неделю назад или около того как вернулся к работе над ним. И конечно без проблем опять не обошлось.
Архитектура.
~11 000 строчек кода были изменены, перенесены, переписаны. Еще ~8000 ожидают рефакторинга(но мне пока лениво). Это ручками если что, мне нейронка код не пишет. У меня даже автозаполнение от агента отключено в VS Code.
Но даже не смотря на то что рефакторинг не полный, дышать стало куда проще. Меньше времени уходит на поиск багов и в целом добавлять что-то новое не боясь сломать старое - куда проще стало.
Follower's/Спутники.
Я и раньше делал что-то типо патрулей/преследования. Либо используя возможности юнити, либо самописный вариант патруля. Но спутник, это совсем другой уровень, он должен адекватно реагировать на любые ситуации. Например на такую:
Изначально цель была сделать возможность "сопроводить нпс", из точки А в точку Б. И можно было сделать как в большинстве игр, где нпс идет по заданному маршруту,и убрать с маршрута все возможные препятствия, а игрок за ним хвостиком. Но мне хотелось более живое сопровождение сделать, и каким-то образом оно превратилось в это. Кстати говоря в будущем я планирую расширить возможности спутников геймплейно встроив их в игру. Уже сейчас они могут некоторые монетки подбирать за игрока.
Quick slot/Быстрый слот
В какой-то момент, пришло осознание, что использование предметов напрямую из инвентаря, не очень удобное если нужно использовать предмет в бою. Вас бьет босс, а вы должны открыть инвентарь, глазами найти нужный предмет, и щелкнуть по нему аж 2 раза. Не удобно. Поэтому в игру я ввел быстрый слот, пока один, потому что пока что у меня нет понимания, сколько их понадобится. В данный момент слот показывает выбранный в нем предмет, количество предметов данного типа в инвентаре, горячими клавишами переключение между предметами, по типу "следующий предмет" и "предыдущий." А так же само использование(ну естественно) на горячую клавишу. И фильтр, только на "расходуемые" предметы. Чтобы не листать весь инвентарь, перебирая факел, карту, компас, кольцо и прочие предметы, которые вам в бою нафиг явно не нужны.
Как-то так. Жду ваших мнений.