Рейтинг темы:
  • 1 Голос(ов) - 1 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Реализация KnownList
#21
даже боюсь подумать сколько там регионов размером в 2к на мир игры. это выглядит как статические knownListы, в которых все та же активность.
чет выглядит как смена шило на мыло
Ответ
#22
Ну дело в том - что в принципе модель регионов она типо статична. тоесть в принципе она будет и при 100 онлайне занимать определенное время цп и при 1000 примерно такое же.
А вот с уникальным кноун листом под каждый игровой объект нагрузка в основном на блокировщик чтения\записи будет уже увеличиваться по экспоненте. На счет шила на мыло я отчасти согласен а отчасти все таки нет. Опять же плохо то что при пробежке по регионам, нам нужно бегать по 9-ти циклам ради 1 боардкаста.
В кноунлисте была только лишь одна пробежка. Как следствие - попадание в кеш, и более быстрое выполнение.

Добавлено через 4 минуты
KID Написал:даже боюсь подумать сколько там регионов размером в 2к на мир игры. это выглядит как статические knownListы, в которых все та же активность.
чет выглядит как смена шило на мыло
у меня 4к ребро и регионов получилось 19584. Карта линдвиор.
что и так давольно таки не мало. Но доступ к ним моментальный (они в массиве)

Добавлено через 13 минут
а если выставить размер по 2к то получаем 78336 лошадок)
Ответ
#23
KID Написал:даже боюсь подумать сколько там регионов размером в 2к на мир игры. это выглядит как статические knownListы, в которых все та же активность.
чет выглядит как смена шило на мыло
Не совсем так. Я делал тесты с knownlist и region, нагрузка на процессор была в 3 раза ниже с рассылкой пакета по регионам, чем по knownlist'am.
Ответ
#24
linliss, в чем именно эти тесты заключались?
Ответ
#25
KID Написал:полный бордель.
регионы были сделаны очень давно, во время запуска серверов на селеронах. нынешнее железо позволяет итерировать эти списки практически моментально. пытаться вылизать фичу до идеала на стадии ее разработки невозможно. сделайте как есть, а потом, когда уже будут сопутствующие части кода, концепт может изменится.
отсутствие knownList - плохой путь, имхо. получение игроком CI/NI на расстоянии до 8к стремно.
лучше научить эти листы взаимодействию только с определенными объектами, в основном это с игроками.
Я рад, что не только я понимаю, что с knownlist не все так, как это пытаются представить.

Если вспомнить историю с появлением knownlist-ов резко повысилось потребление памяти и утечки стали накапливаться значительно быстрее ... javolution ...
Когда этот вопрос был снят, то и утечек нет.
Вопрос не в модели, она не дублирует модель регионов - это разные вещи. Но конечно можно сделать рассылку пакетов через регионы - тогда модель листов известных объектов по сути отсутствует.

Пример - у меня даже нет авторестарта каждое утро, утечки незначительные, рестарт 2 раза в неделю достаточно. knownlist-ы есть.
Возможно вместо поиска причин лучше взглянуть на ситуацию более взвешенно.

Добавлено через 40 секунд
DiagoD Написал:не до 8к, а ровно 6к, это более чем приемлемо ибо радиус видимости клиента около 3к, точно уже не помню.
около 3200 эмпирически, подтвердить реверсом не могу.

Добавлено через 2 минуты
linliss Написал:Не совсем так. Я делал тесты с knownlist и region, нагрузка на процессор была в 3 раза ниже с рассылкой пакета по регионам, чем по knownlist'am.
Тот же вопрос, это что за тест такой? Нагрузка на процессор? На итераторах с knownlist и из регионов?

Наверное единственное, что я бы хотел сказать - если бы я выложил фикс javolution в 2010 или 2011 году, когда я нашел его и исправил, эта история о листах известных объектов могла бы быть другая ...
Ответ
#26
KID Написал:полный бордель.
регионы были сделаны очень давно, во время запуска серверов на селеронах. нынешнее железо позволяет итерировать эти списки практически моментально. пытаться вылизать фичу до идеала на стадии ее разработки невозможно. сделайте как есть, а потом, когда уже будут сопутствующие части кода, концепт может изменится.
отсутствие knownList - плохой путь, имхо. получение игроком CI/NI на расстоянии до 8к стремно.
лучше научить эти листы взаимодействию только с определенными объектами, в основном это с игроками.

KID Написал:даже боюсь подумать сколько там регионов размером в 2к на мир игры. это выглядит как статические knownListы, в которых все та же активность.
чет выглядит как смена шило на мыло

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

Конечно можно сказать: "добавим пару процов и плашек!" - но вечно выежать на таком подходе нереально, да и бабла это все сожрет огромное количество. Можно конечно же расти и в ширину, но это уже совсем другая история. Вообще, где-то тут, Камелеон писал такой пост о железе, рекомендуется к прочтению.
Можно, блин, конечно считать и полигоны, и сферы, но ЗАЧЕМ? :cj:
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#27
Visor Написал:Я рад, что не только я понимаю, что с knownlist не все так, как это пытаются представить.

Если вспомнить историю с появлением knownlist-ов резко повысилось потребление памяти и утечки стали накапливаться значительно быстрее ... javolution ...
Когда этот вопрос был снят, то и утечек нет.
Вопрос не в модели, она не дублирует модель регионов - это разные вещи. Но конечно можно сделать рассылку пакетов через регионы - тогда модель листов известных объектов по сути отсутствует.

Я бы посмотрел что было бы с сервером, когда бы в одной локации активно пвпшилось 400+ тел.
Еже(милли\нано\пико)секундно обновляющаяся коллекция с размером 400+ на каждого игрока или массив с прямым чтением и записью и одной коллекцией на регион такого же размера с всегда известным размером в пики онлайна.
Случай, когда у вас регионов больше чем игроков не рассматриваем. :redlol:
Ответ
#28
сплошные максималисты собралисьBig Grin
прочитал пост камелиона - не рекомендую к прочтению, ибо совершенно не понятна его сравнение про отжор оперативки с двумя ядрами, а потом скачок аж на 140гб оперативки.
раз у вас онлайн позволяет делать замесы в 400+ объектов на замок, значит и с общим онлайном все в порядке, а значит компик должен быть несколько мощнее чем обычно.

мощность среднего сервака, который был доступен админам тогда и сейчас, просто несоизмерима.

универсальных решений нет, можно в этой части кода уйти как в большее потребление памяти, так и в другую сторону - больше ресурсов цп. нужно понимать как работают другие части кода и не упарыватся.
Ответ
#29
Alay, Вообще то все ваши проблемы от того, что вы изначально храните данные не отходя от кормушки, поэтому реализовать более-менее вменяемые стратегии у вас не получится.

Кто вас заставляет делать все регионы одинакового размера? Сделайте динамическую сетку. Условно говоря один игрок - одна ячейка на весь мир, два игрока - тоже одна ячейка, если они в зоне видимости друг друга и две если на разных концах карты. 10000 игроков - делите между ними игровой мир на куски, по размеру зависящие от заселенности региона, но не меньше чем минимальное ребро ячейки. Так вы получите две вещи: на дев компе у вас не будет жора оперативки и продакшн железо будет утилизироваться равномерно с пиками посещаемости, а не 100 гигов на старте, при стабильном онлайна 10чел. И да, идеально квадратный регион - это влажные мечты разработчика, ему так удобнее их в своей голове прокручивать.

KID Написал:универсальных решений нет, можно в этой части кода уйти как в большее потребление памяти, так и в другую сторону - больше ресурсов цп. нужно понимать как работают другие части кода и не упарыватся.

То, что вы их не знаете != тому, что их нет.
Ответ
#30
Camelion, поделишься примером?
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  CommunityBoard + GM Shop реализация michail_ST 5 1,877 04-21-2016, 01:20 PM
Последний пост: flopix
  Доброго времени суток (Команда + реализация) Creat1v 0 1,112 01-11-2015, 11:22 AM
Последний пост: Creat1v
  Реализация инстанса Линдвиора NoizeBD 2 1,583 05-13-2014, 09:13 PM
Последний пост: NoizeBD
  ПА(РЕализация шанса заточки) sakson 14 4,159 04-18-2014, 01:12 AM
Последний пост: Visor
  Реализация La2lucky 13 3,408 07-17-2013, 04:13 PM
Последний пост: helly
  Реализация - Камень Обработки Доспехов Krasavella 37 15,543 02-03-2013, 12:00 PM
Последний пост: helly
  Реализация GVE мода adskih 10 3,752 10-25-2012, 05:08 PM
Последний пост: L2scripts-Guard
  Реализация скилла GOODPower 3 1,636 06-01-2012, 12:06 AM
Последний пост: linliss
  Реализация swyatyk 6 2,571 04-28-2012, 05:40 PM
Последний пост: Zubastic
  Реализация продажи в CommunityBoard cokol 16 4,610 10-27-2011, 06:26 PM
Последний пост: FriendlyGhost

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)