Здравствуйте!
Задача: в онлайн игре реализовать пассивное сражение, т.е без участия игрока. У игрока существуют бойцы, у каждого определенное кол-во урона в секунду. Необходимо организовать сражение бойцов с врагами, при этом игрок, непосредственно в бою не принимает участия, а просто наблюдает за сражением своих юнитов.
Мои мысли: реализовать скрипт, запускающийся через крон каждую секунду и анализирующий текущие, активные сражения игроков и организующий боевой раунд между юнитами. Но врятли подобный подход можно назвать правильным, и что самое главное быстрым. Поделитесь, пожалуйста, своими мыслями по-этому поводу.
Технологии: php, mysql, html
Ответ
Скрипт запускающийся каждую секунду это подход не из лучших :)
По хорошим практикам, вам требуется написать демона, который будет содержать логику боя, и при передаче ему сигнала начинать бой от какого-то клиента через API (обычное или проксирующее), он будет писать в хранилище что бой начат (можно показывать это клиенту) и после чего высчитывается в демоне само сражение, производится запись ходов в хранилище и клиенту воспроизводится бой (если это требуется)
По сути, вы можете это делать в режиме онлайн без демона, если нагрузка невысокая и вычисления простые и быстрые.
Комментариев нет:
Отправить комментарий