Избавляем игроков от одиночества в single-player rpg

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

Изначально в игре были NPC которые нападают:

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

Как я говорил в одном из предыдущих постов в игре будут фракции. Некоторые фракции дружат между собой, иные враждуют. Дружелюбные не реагируют друг на друга. А враждебные сразу вступают в схватку. Игрок сможет менять фракции в целях социального стелса. Ну или вообще вдруг он решит бросить гильдию курьеров потому-что идеалы гильдии магов (условно) ему ближе.

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

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

Ударили NPC 4 раза. И теперь он настроен к игроку враждебно

Когда сюжетные NPC выбраны в качестве компаньонов для задания они игнорируют входящий урон от игрока. Чтобы случайно в пылу сражения не испортить отношений с NPC. Помощники ходят рядом с игроком и не атакуют автоматически никого пока:

  • не атаковали их или игрока
  • игрок не начал атаковать кого-либо

Ниже на видео демонстрация. Синий - сюжетный персонаж. Красные - NPC враги. В капюшоне - игрок.

Игрок бьет вражеского NPC и компаньон вступает в боевой режим
Враг увидев игрока ударил его. NPC Компаньон перешел в боевой режим

Перед каждым действием (блок, одиночная атака, комбо, обход) все NPC думают N секунд. Поэтому может показаться что иногда тормозят. Будем балансировать. Ну и надо сделать им действие уклонение от атак.

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

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