[gamedev] восстановление энергии

Статус
В этой теме нельзя размещать новые ответы.

silent9

Постоялец
Регистрация
7 Июн 2008
Сообщения
136
Реакции
11
По какому алгоритму восстанавливается энергия (жизни и т.д) в игре?
есть таблица с игроками
id user energy
1 user1 99
2 user2 57
3 user3 100

нужно каждый раз (например каждую секунду) дергать таблицу и апдейтить каждую запись или есть другой вариант?
 
В идеале - каждую секунуду, но будет огромная нагрузка на сервак. Проще хранить изменение параметров с помощью Ява скрипта и, например, раз в 10 секунд обновлять их в бд.

Можно воспользоваться вот этой тузлой.


Dklab_multiplexor — это инструмент, который позволяет держать одновременно сотни тысяч долгоживущих открытых HTTP-соединений с сервером. Например, если на вашем сайте находится одновременно несколько сот тысяч посетителей, каждый из них может быть связан с сервером постоянным соединением, установленным из JavaScript. Это, например, полезно при организации онлайн-чатов или мгновенных уведомлений.

А дальше для меньшей нагрузки mysql данные писать к примеру в файл или так же раз в несколько секуднд дергать mysql и обновлять данные.
 
По какому алгоритму восстанавливается энергия (жизни и т.д) в игре?
есть таблица с игроками
id user energy
1 user1 99
2 user2 57
3 user3 100
нужно каждый раз (например каждую секунду) дергать таблицу и апдейтить каждую запись или есть другой вариант?
Вариант 1:
1)Добавляешь поле energyTime, в которое пишишь время, для которого актуальна энергия. В игре на основании этого и текущего времени вычисляешь текущее значение энергии. Апдейтишь таблицу, например, в случае когда энергия возрасла и снова пошла на спад.
Вариант 2:
1) Добавляешь поля energyTime и regenStatus.
2)В начале загрузки вебстраницы пишешь функцию onLOad(), в которой всем игрокам с установленным regenStatus по energyTime и текущему времени рассчитываешь energy
3) В случае максимума энергии - флаг в 0.

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