Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2014, 21:49   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Каким способом организовать разграничение по времени для уменьшения пиковой нагрузки

Такой вопрос.
Допустим каждые 20 секунд происходит ход браузерной многопользовательской рпг/стратегии.
Соответственно основная нагрузка будет в пике именно вблизи каждыйх 20 секунд.
Если не считать критичной задержку в выдачи новой информации о следующем ходя в 1 секунду, то как разбить всех игроков по времени обращения запроса на сервер в пределах 1 секунды?

То есть задача такова:
Например имеется 100 игроков онлайн.
Делим 1 секунду на 100 игроков получаем примерную цифру изменения шага относительно 20 секунд запуска запроса к серверу.
То есть 1 игрок 20 сек второй 20 и 1/100 сек третий 20 и 2/200 сек.
Я конечно понимаю что на сервер запрос придет непонятно в какое время изза расстояния и самой сети от клиента к серверу, но всеравно вероятность что они придут почти все в 20 секунд сильно уменьшается. соответственно и пиковая нагрузка.

При всем этом нужно учитывать что число онлайн игроков меняется и нужно изменять этот шаг.

Как можно организовать такую структуру и вообще стоит ли ее делать?
Illusiony вне форума Ответить с цитированием
Старый 26.02.2014, 11:23   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Запускаете таймер и каждую секунду обновляете статус следующих Х игроков и отсылаете им их состояние. Что, по сути, означает "происходит ход" - меняется какое-то состояние игрока - нет смысла вычислять это состояние заранее, а только когда оно реально потребуется.
waleri вне форума Ответить с цитированием
Старый 26.02.2014, 21:47   #3
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Забейте - ваш способ бесполезен. У Вас будет работать так же как и при повышенной нагрузке.

В вашем случае лучше всего провести оптимизацию времени, т.е. делать запросы не в 20 секунд, а в 30 (как пример)
Виталий Желтяков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каким образом лучше организовать вывод графики? M0rf Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 04.12.2012 14:34
Каким способом имитировать игру ? kakawkin Работа с сетью в Delphi 9 30.07.2012 15:35
Каким способом решить задачу? hammer68 Microsoft Office Access 2 22.12.2011 19:20
каким способом сделат... kenta БД в Delphi 9 01.11.2009 09:07
Каким способом мне это написать? FromHell Помощь студентам 2 17.12.2008 07:57