Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Равномерный выброс ресурсов в онлайн игре. Как сделать лучше?
 
 автор: betatester   (21.07.2007 в 12:05)   письмо автору
 
 

Допустим у нас есть игра, в ней 12 видов ресурсов, есть склад, где все это хранится. Место на складе ограничено. Так вот, ресурсы должны начисляться каждые 10 минут и проверяться, есть ли место на складе, а если нету - выбрасываться. Как лучше сделать равномерный выброс всех 12 ресурсов? желательно не ресурсоемко.

   
 
 автор: Trianon   (21.07.2007 в 12:34)   письмо автору
 
   для: betatester   (21.07.2007 в 12:05)
 

а ресурсы обязательно должны начисляться дискретно - раз в 10 минут, или можно непрерывно с такой же скоростью?

   
 
 автор: BetaTester   (21.07.2007 в 12:47)   письмо автору
 
   для: Trianon   (21.07.2007 в 12:34)
 

именно раз в 10 минут. да это не важно, мне нужен равномерный выброс ресурсов. это меня и интересует, кто что предложит. допустим сумма всех ресурсов равна 1500, а склад вмещает всего лишь 1000 (т.е. игрок где-то раздобыл лишние 500 ресурсов). так вот при следующем начислении ресурсы >0 должны выбрасываться равномерно

   
 
 автор: Trianon   (21.07.2007 в 13:03)   письмо автору
 
   для: BetaTester   (21.07.2007 в 12:47)
 

вот именно периодический выброс к примеру 3000 ед. 1 раз в 10 минут с отсечкой по объему склада реализовать сложнее, чем равномерное натекание по 5 ед./сек то есть с такой же средней скоростью и с такой же отсечкой.

склад или склады?
У каждого игрока свой склад?

   
 
 автор: BetaTester   (21.07.2007 в 13:14)   письмо автору
 
   для: Trianon   (21.07.2007 в 13:03)
 

брр.. так и придется по порядку. есть игрок. ) есть государство. в нем много городов. в каждом городе свои здания, в том числе и склад. Если нету склада - места для ресурсов - 1000. хм, а может и вправду пересмотреть.... тормозить не будет ли, если при каждом обращении прибавлять накопленные за это время ресурсы....

   
 
 автор: Trianon   (21.07.2007 в 13:22)   письмо автору
 
   для: BetaTester   (21.07.2007 в 13:14)
 

их не придется прибавлять.
Их просто нужно будет вычислить.
По формуле что-то вроде
на php: echo max($prev_amount+(time()-$prev_time)*$amount_speed, $amount_limit)
на sql: SELECT MAX(prev_amount+(UNIX_TIMESTAMP()-prev_time)*amount_speed, amount_limit) FROM tables...
Можно даже на JS написать эквивалент, и тогда прогресс-бар будет идти без перезагрузки страницы.

SQL вариант , правда, в таком виде лучше не применять, такой запрос не будет кешироваться.

Обновление prev_amount, prev_time нужно будет выполнять только в критических точках - при использовании, покупке или продаже ресурсов.

   
 
 автор: BetaTester   (21.07.2007 в 13:42)   письмо автору
 
   для: Trianon   (21.07.2007 в 13:22)
 

Да это ясно, что их нужно вычислить. ладно, сделаю сам. )

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования