Обучение/Помощь новичкам | Прошу помощи
Тема закрыта by
crew_
Всем добра. Столкнулся с проблемой при разработке онлайн игры. Мне надо чтобы когда герой находился в бою, и бездействовал или же атаковал, монстры били его тоже. Даже при том, если он не обновляет страницу. Есть вариант через cron, но это скорее всего будет очень ресурсоемко. Есть у кого какие варианты получше?
________
посл. ред. 04.08.2019 в 03:18; всего 1 раз(а); by crew_
________
посл. ред. 04.08.2019 в 03:18; всего 1 раз(а); by crew_
crew_ , для таких игр нужен уже сервер, а на сервере крон не значительно грузит систему. Хотя если не говнокодить, то можно поставить крон на 30-60 сек с парой запросов
________
посл. ред. 04.08.2019 в 03:21; всего 1 раз(а); by SparkuS
________
посл. ред. 04.08.2019 в 03:21; всего 1 раз(а); by SparkuS
SparkuS , 30-60 сёк не катит. Нужно максимум раз в 5 сёк.
crew_ , ну ставь 5, и смотри загрузку на хосте если есть. По-сути 100 юзеров на сайте также будут грузить систему, а если у тебя скрипт из зц, то нагрузка будет явно больше чем твой крон
SparkuS , скрипт самопис. Грузить будет сильно, так как надо найти всех игроков в бою, найти противников и раздать всем люлей.
crew_ , 1 запрос на поиск, и 1 на запись + цикл с расчетами - это норма.
Разве что ещё как вариант просто в базу записывать время последней атаки монстра и частоту ударов. И просто при обновлении страницы в бою, запускать цикл который нанесёт урон герою исходя из количества противников, частоты атаки и времени последнего обновления. Думаю этот вариант будет получше чем с кроном.
crew_ , так не получится и загрузиш сервер расчетами, у тебя много циклов будет. Крон решает эту проблему. Ну ещё есть мемчечь, но это тоже для сервера
SparkuS , почему много? 1 цикл на 1 бой. Просто проверять данные перед запуском цикла.
Хотя в принципе с кроном будет намного лучше. Главное продумать как это всё дело оптимизировать более менее.