Как организовать появления новых игроков?

Делаю онлайн игру, давненьнько уже...года два.
И этот вопрос оставлял на последок, так как это единственный вопрос, на который я не мог придумать правильное решение.

Вообщем. Есть браузерка стратегия. (текстовая, аналог travian.ru)
Есть карта местности, построена на системе координат x y.

Выглядит она как-то так:
a71d5288611e4b05b01e860558465442.png

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

Как добавлять новых игроков учитывая сильных соседей? но не слишком далеко, ведь карта не бесконечная
  • Вопрос задан
  • 472 просмотра
Пригласить эксперта
Ответы на вопрос 4
saboteur_kiev
@saboteur_kiev Куратор тега Разработка игр
software engineer
Посмотрите готовые реализации подобных игр.
У всех есть множество ограничений по поводу того кто и как часто может нападать.
Ставите первоначально иммунитет, о котором сообщаете.
Например игроки до 5 уровня не могут нападать на других игроков, игроки от 5 до 10 могут нападать друг на друга, потом все ограничения сняты.
Если на игрока напали и уничтожили у него xx%, он получает иммунитет на yy%

в общем тут дело больше баланса, а не расстановки.
Ответ написан
@Beltoev
Живу в своё удовольствие
А почему бы новым игрокам на первое время не давать какой-нибудь иммунитет к атакам извне?
Либо размещать новых игроков в грин-зоне, а после прохождения обучения или достижения какого-то уровня, если таковые есть в игре, давать возможность выбрать клан для вступления (принудительно), а уже после выбора клана размещать игрока на территории этого клана
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
В лоб можно так: обходить всю карту и для каждого квадратика проставлять некий коэффициент, зависящий от левела ближайших игрока и от расстояния до их городов, подобранный таким образом, чтобы этот коэффициент обращался в 0 на определенном расстоянии. Ну и давать создать город только там, где 0.

Графически это выглядело бы так: рисуем круги с коническим градиентом: в центре черный с прозрачностью 0, по краям прозрачность 100%. Чем выше левел, тем больше радиус круга. Даем селиться только там, где клетки остались белые.

А еще лучше потом пройтись еще раз только по белым клеткам и проставить какой-то коэффициент в зависимости от того, сколько у нее белых соседей.
Ответ написан
Коричневые - сильные города. Круг - это некий радиус безопасности. Строим зону безопасности исходя из соседей.
cc0ce605517a4b439f16062fe1ff4792.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы