Отчёт о разработке за 15 июля

Статус
В этой теме нельзя размещать новые ответы.

Retriever

Неуязвимый
Ур
9
 
А вот это вообще хорошо
Ох уж эти сказочники, почему не сказать что ко всем предметам прикрутят время через которое они исчезают, Систему очистки. Точнее они конечно это сказали, но сначала понаприводили длинный список а потом в конце мелким шрифтом как бы невзначай, мы наконец то планируем запустить систему на все сто, а не на выборочных предметах из списка выше.
 

MYesutin

Специалист
Ур
7
 
Ох уж эти сказочники, почему не сказать что ко всем предметам прикрутят время через которое они исчезают, Систему очистки. Точнее они конечно это сказали, но сначала понаприводили длинный список а потом в конце мелким шрифтом как бы невзначай, мы наконец то планируем запустить систему на все сто, а не на выборочных предметах из списка выше.
Мне всегда было интересно, что именно представляет себе обыватель, когда говорит, например, о прикручивании времени к предметам? Ну, нет. Я не вас имею в виду. Вы то, наверное, знаете, о чем говорите. Я знаю, что это означает. А вот человек со стороны, с улицы. Не знакомый с архитектурой сложных многопользовательских программ, состоящих из большого количества классов, объектов, записей в базах данных, сетевых пакетов и прочей требухи. Что этот неграмотный человек имеет в виду? Как он себе это представляет в образах?
 

Clevery

Переводчик DZR
Ур
0
 
Ох уж эти сказочники, почему не сказать что ко всем предметам прикрутят время через которое они исчезают, Систему очистки. Точнее они конечно это сказали, но сначала понаприводили длинный список а потом в конце мелким шрифтом как бы невзначай, мы наконец то планируем запустить систему на все сто, а не на выборочных предметах из списка выше.
Система очистки не будет затрагивать палатки\грядки\костры\машины, если в их инвентаре будут храниться предметы. Такие объекты будут удаляться только в исключительных случаях.
 

Retriever

Неуязвимый
Ур
9
 
Мне всегда было интересно, что именно представляет себе обыватель, когда говорит, например, о прикручивании времени к предметам? Ну, нет. Я не вас имею в виду. Вы то, наверное, знаете, о чем говорите. Я знаю, что это означает. А вот человек со стороны, с улицы. Не знакомый с архитектурой сложных многопользовательских программ, состоящих из большого количества классов, объектов, записей в базах данных, сетевых пакетов и прочей требухи. Что этот неграмотный человек имеет в виду? Как он себе это представляет в образах?
У каждого объекта не находящегося в инвентаре персонажа будет время через которое он удаляется с сервера. Для примера яблоко исчезнет через день(это пример придуманный мной реальное время я не знаю), а вот палатка может стоять долго может и месяц реального времени, и при посещении данного объекта время удаления будет сбрасываться.
Система очистки не будет затрагивать палатки\грядки\костры\машины, если в их инвентаре будут храниться предметы. Такие объекты будут удаляться только в исключительных случаях.
Вы в этом уверены? За сколько мы завалим сервер этим хламом? Время удаления будет , но оно будет от нескольких недель до месяца я думаю, и при посещении игроками объекта время будет обновлятся
 

Steves

Специалист
Ур
7
 
угу, а на дистанциях от 50 метров, выигрывает по всем параметрам.
Более крупный калибр и на 50 не держит. Глянь видосы на ютубе. Чтобы полностью собрать надо хорошо помотаться. Слотов мало. Повторюсь: не стоит он затраченных времени и сил.
Первое попавшееся:
 
Последнее редактирование:

Suragat

Специалист
Ур
0
 
Более крупный калибр и на 50 не держит. Глянь видосы на ютубе. Чтобы полностью собрать надо хорошо помотаться. Слотов мало. Повторюсь: не стоит он затраченных времени и сил.
Первое попавшееся:
Чего мне смотреть, когда сами тестировали, а по поводу слотов, я не хомяк, мне много не надо.
 

Clevery

Переводчик DZR
Ур
0
 
Вы в этом уверены? За сколько мы завалим сервер этим хламом? Время удаления будет , но оно будет от нескольких недель до месяца я думаю, и при посещении игроками объекта время будет обновлятся
Так и будет, но в том случае, если инвентарь этих объектов пуст и они долгое время не использовались игроками. Палатки будут подвержены системе очистки крайне редко. Грядки будут удаляться только в том случае, если на них долгое время ничего не выращивают. Машины будут удаляться, если их оставили за пределами карты или если их долгое время никто не использовал. Рюкзаки и другие небольшие контейнеры будут храниться намного дольше, чем обычный лут. Все остальные объекты, вроде еды, медикаментов, оружия (которые лежат на земле) будут в полной мере регулироваться системой очистки.
 

Steves

Специалист
Ур
7
 
Чего мне смотреть, когда сами тестировали, а по поводу слотов, я не хомяк, мне много не надо.
И трястись за этот броник.
Кстати, он и на экспе только на "Алькатрасе" спавнится?
 

MYesutin

Специалист
Ур
7
 
У каждого объекта не находящегося в инвентаре персонажа будет время через которое он удаляется с сервера. Для примера яблоко исчезнет через день(это пример придуманный мной реальное время я не знаю), а вот палатка может стоять долго может и месяц реального времени, и при посещении данного объекта время удаления будет сбрасываться.

Что есть все эти сущности?
  • что такое "каждый объект"?
  • как определить, что "объект не находится в инвентаре"?
  • что такое "персонаж"?
  • как определить "время, через которое объект удаляется с сервера"?
  • что значит "удалятся"?
Вот как я представляю:
  • любой объект - это запись в базе данных, имеющая собственный идентификатор, тип, координаты, время создания, и прочие признаки
  • одним из признаков объекта может быть флаг присутствия в инвентаре
  • персонаж - это тоже запись в другой таблице базы данных
  • каждый тип объектов ухудшается либо по истечению времени, либо сиюминутно по воздействием внешних факторов, таких как:
    • лежание на открытом пространстве
    • намокание
    • использование
    • нагревание
    • урон
  • удаление означает сообщение серверам об этом действии, для того, чтобы объект физически исчез с карты, а также - удаление записи базы данных, описывающей этот объект.
Это самое примитивное представление о маленькой части большой системы взаимодействия. Давайте теперь, исходя из этого предположения, смоделируем цикл жизни одной из 126 343 981 банок фасоли, которые появляются вместе со стартом центральной системы распределения лута.

Обработка одной операции для всех записей, например удаление всех тех, у кого статус стал ruined, займет около 1 минуты. как часто можно проводить эти операции, чтобы не перегружать систему и в то же время чтобы не было провалов в обработке (заруиненая банка лежит целый день в костре). А если учитывать все остальные объекты? А если серверу кроме обработки удаления и нового спауна нужно обрабатывать перемещения всех животных и зомби на всех серверах? А еще - игроков.

...

.... уснул
 

Artalus

Специалист
Ур
0
 
Это самое примитивное представление о маленькой части большой системы взаимодействия. Давайте теперь, исходя из этого предположения, смоделируем цикл жизни одной из 126 343 981 банок фасоли, которые появляются вместе со стартом центральной системы распределения лута.

Обработка одной операции для всех записей, например удаление всех тех, у кого статус стал ruined, займет около 1 минуты. как часто можно проводить эти операции, чтобы не перегружать систему и в то же время чтобы не было провалов в обработке (заруиненая банка лежит целый день в костре). А если учитывать все остальные объекты? А если серверу кроме обработки удаления и нового спауна нужно обрабатывать перемещения всех животных и зомби на всех серверах? А еще - игроков
Что значит "обработка одной операции для всех записей"? Постоянно пробегаться по всему списку в 126 миллионов банок на всех серверах, и проверять, не пора ли какие-нибудь из этих банок удалить? Это же хтонический ужас.
Мне кажется было бы логичнее, если бы в базе данных ЦЭ хранились бы именно данные, какая банка фасоли с каким идентификатором на каком сервере лежит. А вот обновление состояний оных банок (причем, локальных их копий, а не проводя постоянные запросы к базе) производил бы сервер, на котором они лежат; и если сервер видит, что ruined банка пролежала от рестарта до рестарта - отправляет ЦЭ соответствующее сообщение.
//хотя я, в каком-то смысле, тоже неграмотный человек, в архитектуру больших проектов с требухой, базами данных и летающими во все стороны пакетами пока ещё ни разу не влезал
 

Retriever

Неуязвимый
Ур
9
 
Что есть все эти сущности?
.... уснул
Поздравляю вы описали основную проблему дейза)))
Да пример с фасолью правильный, при этом еще не следует забывать что именно также отслеживается каждое дерево на сервере, да и вообще все объекты. И это и вызывает падение производительности сервера ниже приемлемого значение, что вызывает телепорты перса, зависания действий с лутом, глюки с движением зомбей и т.д.
И я очень рад что вы помогаете мне объяснить эту информацию другим))), а то меня не все понимают.
 

Suragat

Специалист
Ур
0
 
И трястись за этот броник.
Не больше чем за любой другой, а жизнь лишни раз спасет, да и против замбаков, он лучше остальных держит.
Кстати, он и на экспе только на "Алькатрасе" спавнится?
А хз, на экспе не смотрел пока.
 

Retriever

Неуязвимый
Ур
9
 
Что значит "обработка одной операции для всех записей"? Постоянно пробегаться по всему списку в 126 миллионов банок на всех серверах, и проверять, не пора ли какие-нибудь из этих банок удалить? Это же хтонический ужас.
Мне кажется было бы логичнее, если бы в базе данных ЦЭ хранились бы именно данные, какая банка фасоли с каким идентификатором на каком сервере лежит. А вот обновление состояний оных банок (причем, локальных их копий, а не проводя постоянные запросы к базе) производил бы сервер, на котором они лежат; и если сервер видит, что ruined банка пролежала от рестарта до рестарта - отправляет ЦЭ соответствующее сообщение.
//хотя я, в каком-то смысле, тоже неграмотный человек, в архитектуру больших проектов с требухой, базами данных и летающими во все стороны пакетами пока ещё ни разу не влезал
Про ужас, кроме того сервер еще проверяет не подобрана ли эта банка игроком, или была открыта.
А если не сверять с базой, то кто мешает добавить не учтеные банки лично для игрока?
 

Mundoggu

Доброволец DZR|D
Ур
7
 
Игрок подобрал банку - клиент отправляет инфу о том что банка теперь в инвентаре и в таком то состоянии, игрок съел еду из банки и выбросил пустышку на землю - клиент отправил инфу на сервер а тот отправил её в планировщик чтобы в такое-то время удалить эту банку и другой мусор валяющийся возможно на другом конце карты. И не надо тут ломать мозг над тем что мол сервер должен сканировать и сам искать эти банки, вся инфа приходит ему от клиента, что-то отправляется в планировщик, что-то сохраняется до след.запроса от клиента.
 

MYesutin

Специалист
Ур
7
 
Игрок подобрал банку - клиент отправляет инфу о том что банка теперь в инвентаре и в таком то состоянии, игрок съел еду из банки и выбросил пустышку на землю - клиент отправил инфу на сервер а тот отправил её в планировщик чтобы в такое-то время удалить эту банку и другой мусор валяющийся возможно на другом конце карты. И не надо тут ломать мозг над тем что мол сервер должен сканировать и сам искать эти банки, вся инфа приходит ему от клиента, что-то отправляется в планировщик, что-то сохраняется до след.запроса от клиента.
Все гораздо интереснее :) На самом деле клиент вообще ни о каких банках и их состоянии никаких сообщений не шлет. И не надо ему заниматься этой ерундой. Наоборот. Клиент шлет только информацию о нажатиях на кнопки и движения мыши. Всё остальное делает сервер. И вычисляет положение персонажа, и полет пули и состояние банки фасоли. Вся Чернорусь в виде единичек и нулей, как в матрице крутится в электронном чреве сервера, в котором с огромной скоростью сопостовляются все состояния и статусы всех материальных и не только объектов и только изредка робкие сигналы прорываются наружу и разлетаются с невероятной скоростью к пользовательским компьютерам, которые преобразуют эти сигналы в изменение картинки на экране пользователя, воспринимаемые за игровой процесс. Как то так :)
 

Faer

Специалист
Ур
7
 
Игрок подобрал банку - клиент отправляет инфу о том что банка теперь в инвентаре и в таком то состоянии, игрок съел еду из банки и выбросил пустышку на землю - клиент отправил инфу на сервер а тот отправил её в планировщик чтобы в такое-то время удалить эту банку и другой мусор валяющийся возможно на другом конце карты. И не надо тут ломать мозг над тем что мол сервер должен сканировать и сам искать эти банки, вся инфа приходит ему от клиента, что-то отправляется в планировщик, что-то сохраняется до след.запроса от клиента.
Поставил сниффер, взломал пакеты, отправил серверу инфу что я выкинул миллион банок. Сервер лёг от нагрузок.
 

MYesutin

Специалист
Ур
7
 
Поставил сниффер, взломал пакеты, отправил серверу инфу что я выкинул миллион банок. Сервер лёг от нагрузок.
Скорее всего сервер просто проигнорирует такой пакет. В худшем случае пришлет вам миллион банок в одном пакете и ваш клиент загнется отрисовывать их.
А вот если вы пошлете один за другим миллион пакетов по одной банке в течение 1 часа, то это будет называться DDoS атака. А ели вы напишите самораспространяющуюся программу, которая будет по вашей команде слать по миллиону банок на все сервера игры со всехх стран мира - это уже BotNet DDoS будет.
 

MYesutin

Специалист
Ур
7
 
мало кто знает, что всякие кряки и кейгены таят в своем дьявольском цифровом теле трояны, которые и превращают супер-навороченные геймерские машинки в послушных рабов botnet-ов или в последнее время - биткоин майнеров.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху