![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
ShellRaiser |
|
|||
![]() еще чуть и закоммичу ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 20.7.2007 Где: Белaрусь, Гродно Репутация: 1 Всего: 1 |
У меня возник вопрос, как сервером обычно отрабатывается следующая логика:
-добыча урана 5 едениц в час. 1) просчитывает ли сервер эту информацию в режиме реального времени, либо как мне сейчас пришла мысль в голову: 2) при запросе данных игрока, произвести калькуляцию добытого урана с момента прошлого обновления по текущее? просто тут еще возникает момент например: -строится рудник по добыче урана, который даст еще +5 к добыче в час -теперь при запросе надо прочитать время и добытые ресурсы до постройки + тоже самое только после постройки? * к примеру в таком случае как я видел в играх добыча приостанавливалась во втором варианте более экономно по ресурсам будет как я понимаю собственно как этоти моменты прощитываются в обычных браузерных играх? Это сообщение отредактировал(а) ShellRaiser - 2.5.2012, 01:44 |
|||
|
||||
Yahmos |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 22.6.2012 Где: Москва Репутация: нет Всего: нет |
Если 5 единиц в час, то в сессии игрока ставится счетчик на число выполнений в час, который обнуляется при первом обновлении в след. часе.
|
|||
|
||||
nucer |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 21.6.2004 Где: Москва Репутация: нет Всего: 0 |
Кстати, вопрос интересный, и касается он не только браузерных игр, но и риалтаймовых в том случае, если игрок ушёл в оффлайн, а шахта продолжает качать
![]() 1) Делать что то навроде очереди (демона отдельным потоком, либо cron в случае браузерок) и проверять раз в n-времени каждый объект... Вариант рабочий, но при большом количестве объектов интервал проверки каждого объекта будет достаточно велик. а) Нужно предусмотреть механизм немедленного (досрочного) обновления объекта - например, при заходе игрока онлайн или же изменении параметров объекта. Например, если в отсутствие игрока шахту вдруг разрушили, тогда нужно добавить ему в "копилку" то, что ей было добыто до этого. б) Также нужно предусмотреть механизм синхронизации. Особенно для браузерных игр, где возможна ситуация, когда скрипт, работающий по крону выбрал из базы "пачку" объектов для обновления и в этот самый момент заходит юзер... Может кто то подскажет более эффективные решения, чем демон или крон?)) |
|||
|
||||
DeLuxis |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 13.6.2012 Репутация: нет Всего: нет |
Я бы данную проблему решил через события.
Каждая шахта добывает ресурсы допустим раз в пять секунд, определенное количество. И каждые пять секунд у шахты созавать событие на добычу ресурса. Обработчик ловит событие и добавляет ресурсы в копилку. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |