Мини-игра - автоматическое увеличение значения на стороне сервера - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь сделать игру для развлечения. Теперь вот моя проблема: - Я создал объект Шахтера, который собирает камень со скоростью 25 / час - У меня есть интерфейс, который показывает, сколько у него камня. - Теперь мне нужна какая-то работа, которая будет проверять всех пользователей и их текущий камень, количество камня, которое они будут получать каждый час, и добавлять его к текущему камню.

Это должно продолжаться, пока сервер работает. Есть ли способ реализовать это в Laravel?

С уважением:)

1 Ответ

0 голосов
/ 25 апреля 2018

они будут получать каждый час и добавлять его в свой текущий камень.

Это огромные накладные расходы для вашего php сервера. Вы можете сделать это с помощью команды cron в Linux или диспетчера задач в Windows для вызова счетчика сценариев, но это очень ПЛОХАЯ идея. Представьте, что у вас будет 1 миллион игроков позже, ваш сервер будет прерываться очень часто и будет работать слишком медленно.

Вам необходимо рассчитывать этот урожай в каждом ping_request или specific_harvest_request для уникального пользователя. Это уменьшит нагрузку. Например: У пользователя A 10 камней, он покидает игру и возвращается в игру через 20 часов, когда он входит в систему, вы запускаете свой CalcHarvestMethod, и он добавляет 20*25=500 stones. Урожай должен рассчитываться каждым пользователем, для этой логики не должно быть другого инициатора. Вызывайте ping_request через каждые 15 секунд, пока пользователь находится в сети, и вызывайте CalcHarvestMethod в ping_request.

Теперь мне нужна какая-то работа, которая проверит всех пользователей и их текущие камень

Вы должны рассчитывать только текущее количество камней каждого игрока, не считайте камень, который они могли заработать, находясь в автономном режиме. Слишком большие накладные расходы, как я уже говорил выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...