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

Тема в разделе "PHP Pro", создана пользователем silent9, 3 сен 2010.

Статус темы:
Закрыта.
  1. silent9

    silent9 Постоялец

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

    нужно каждый раз (например каждую секунду) дергать таблицу и апдейтить каждую запись или есть другой вариант?
     
  2. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    В идеале - каждую секунуду, но будет огромная нагрузка на сервак. Проще хранить изменение параметров с помощью Ява скрипта и, например, раз в 10 секунд обновлять их в бд.

    Можно воспользоваться вот этой тузлой.
    http://dklab.ru/lib/dklab_multiplexor/

    А дальше для меньшей нагрузки mysql данные писать к примеру в файл или так же раз в несколько секуднд дергать mysql и обновлять данные.
     
  3. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    200
    Симпатии:
    55
    Вариант 1:
    1)Добавляешь поле energyTime, в которое пишишь время, для которого актуальна энергия. В игре на основании этого и текущего времени вычисляешь текущее значение энергии. Апдейтишь таблицу, например, в случае когда энергия возрасла и снова пошла на спад.
    Вариант 2:
    1) Добавляешь поля energyTime и regenStatus.
    2)В начале загрузки вебстраницы пишешь функцию onLOad(), в которой всем игрокам с установленным regenStatus по energyTime и текущему времени рассчитываешь energy
    3) В случае максимума энергии - флаг в 0.

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