Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

Что такое Brain in a Box и с чем его едят?

еваумирает лучше бы лаги пофиксили сиськи происки миттани

  • Авторизуйтесь для ответа в теме
30 ответов в теме

#21
Lynxovat

Lynxovat

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 1999 сообщений
370
  • EVE Ingame:Lynxovat Fujiwara
  • EVE Alt:Anselm Lucas
  • Corp:Red October
  • Ally:Red Alliance
  • Client:Eng

Все именно так, только не нужно вешать логику на MS Sql

+

Более того, если не было бонусов, а мы перешли в новую систему в рамках ноды, то можно вообще не пересчитывать скилы.

А если были бонусы? Или бонусы висят в новой системе? Или одна из систем - вх? Или вторжения? Или что то, что появится в будущем? Всё сразу? Проще при переходе из системы в систему, всё же менять сессию и пересчитывать бонусы.
 

Логично, что хранятся только базовые аттрибуты, все расчетные/производные считаются рантайм

Ну хз, в зависимости от сложности рассчетов. Так то извечный компромисс между вичислениями и панятью
  • 0

#22
vmarkelov

vmarkelov

    Clone Grade Omicron

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 46719 сообщений
7500
  • EVE Ingame:Kej Lacitis
  • EVE Alt:Kej Al'tos
  • Corp:Space Mechanics
  • Ally:Circle of Hell
  • Client:Рус

Причем тут БД и ее индексы, я не понял к скилам? Логично, что хранятся только базовые аттрибуты, все расчетные/производные считаются рантайм. А что касается индексов, то твой инвентарь занимает куда как больше места в БД, чем та сотня характеристик чара.

К этому:

Не проще ли после завершения скила запускать событие, которое пересчитывает все эффекты персонажа и записывает их в определенную таблицу.

Сейчас такой таблицы просто нет. Соответсвенно, места она не занимает, индексы для нее не генерируются.
  • 0

Не сожалей о том что было, не думай о том что могло быть.


#23
Kpekep*Нейтрал

Kpekep*Нейтрал
  • Guests

Что мешает кэшировать продуктивность по андоку - скилы + модули + корабль  + второй комплект данных для случая перегрева помодульно ? Мааааленькая такая сука запись.  И фигак туда еще и  ID судна, а ? И каждый андок, депот, смена пары чар+корабль -  это дело перекешировать.  Но эт аще сложно. Просто ужас что такое. Они это каждый выстрел пересчитывают, ага. Люди упорные в своих намерениях :)

 

Там кто то вернулся к теме переписывания евы - не нужно переписывать еву. Можно нормально сделать просто другую игру на ту же тему и дать возможность экспортировать чаров туда - загружаешь фул апи, получаешь 50% в сопоставимой прокачке чара в новой игре.  Не буду рассказывать вам к чему это приведет с текущими гениальными мозгами в коробочках ссп. 

 

Да госсспади! Достаточно ПРОСТО показать прототип с подобной фичей ("перевод чаров") и ССП УЖЕ сразу 1) отложат кирпич 2) подадут в суд 3) перестанет делать то что он сейчас делат. "Я это гарантирую" (с) 

 

Но мы  (ваш покорный слуга и его команда) переписывать ничего не собираемся в общем. Мы еще то, что пишем  не дописали. А к примеру Корвин независимо от нас там уже начал размышлять про сценарии и механику. Спасибо ССП за импульс в верном направлении :)

 

Ну а вы пока продолжайте тут про мозги в коробочке - это очень  интересно, и главное - как без этих знаний жить было  я просто не представляю. Раньше ночей не спал, все думал чеж так тормозит то и как "МОЕ ЗНАНИЕ ОБ ЭТОМ МОЖЕТ ЭТО ИЗМЕНИТЬ".  Вангую что такими темпами скоро нам дадут в качестве откровения реалтайм лог работы кофемашины в офисе ссп. Вот тогда точно заживем.  :)

 

ЗЫ

Ну а маленьким любителям качественного кодинга я предлагаю задать себе вопрос про статистику логистики. Насколько трудно вставить цифры вложенной логистами откачки в км ? Хотя бы в жертву :)

Вот как вы ответите на этот вопрос - так сразу поймете уровень разработчиков всего этого.  А ведь это между прочим важно - люди не имеют статистики по своим действиям в игре. Много сука лет. МНОГО лет :D 

Но мозги они да, в коробочке ...


  • 0

#24
baerithrine

baerithrine

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 275 сообщений
18
  • Client:Eng

Классные теги.


  • 0

#25
excharger

excharger

    Clone Grade Epsilon

  • Tech III Pilots
  • PipPipPip
  • 283 сообщений
58
  • EVE Ingame:excharger
  • EVE Alt:много
  • Corp:HRTFU
  • Ally:LSH
  • Channel:лсш паб
  • Client:Eng

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


  • 0

#26
Denadan

Denadan

    просто жертва зеленых

  • EVE-RU Team
  • 17165 сообщений
5350
  • EVE Ingame:denadanA
  • Ally:RED(offline)
  • Client:Eng

К этому:
Сейчас такой таблицы просто нет. Соответсвенно, места она не занимает, индексы для нее не генерируются.

ммм... сейчас такая таблица есть и пересчитывается по смени сессии. в ней как раз и хранятся  фактические параметры кораблика.

 

 

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

нед, тормозило оно из-за реализации, когда ракеты были полноценными игровыми объектами и их создание/уничтожение/просчет всех взаимодействий занимало дофига времени. в нфс их код значительно облегчили, выкинув большинство просчетов


  • 0

Ева - тебя все равно убьют ^_^
---
That's not magic, that was just Pinkie Pie.


#27
Psihius

Psihius

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 3954 сообщений
911
  • EVE Ingame:psihius
  • EVE Alt:Loriel'a
  • Corp:Void Effect
  • Client:Eng

Brain In a Box так-же потянул за собой переписывание системы атрибутов Dogma, а это убирает большую часть ограничений, которые накладывала система на возможности новых механик, оружия и.т.д.

 

А ещё от ноды обсчёта персонажей есть профит в том, что больше эти данные не будет держать и расчитывать солнечная нода. А это не только снижает нагрузку, но ещё и уменьшает трафик при перемещении, поскольку между нодами не нужно будет больше мигрировать информацию персонажа, со всеми перерасчётами и.т.д., т.к. инфа по персонажа будет храниться на отдельной ноде в кластере. Что сильно увеличивает локальность данных и должно упростить код работы со скилами персонажей.


  • 0

Сообщество FactorioMMO: Discord , Reddit


#28
marsnow

marsnow

    Clone Grade Omicron

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 16971 сообщений
7209
  • EVE Ingame:Mo Marsnow
  • Corp:NPC (ex.GOP KOHTOPA)
  • Ally:AMARR EMPIRE (ex.LSH)
  • Client:Eng

 

Что такое  “Brain in a Box”
 
Грубо говоря, это более простой способ, позволяющий главному движку Евы пересчитывать навыки. Он не виден, его эффект скрыт от игроков, но этот проект - колоссальная переделка способа обработки навыков движком Евы. Навыки (которые, к слову, являются предметами с определенными атрибутами, хранящиеся в контейнере - голове вашего персонажа. Фактически - это и есть мозги) не будут обсчитываться на основном сервере игры, а будут перенесены на отдельный, специальный сервер (как бы коробочку). Таким образом нода, обсчитывающая звездную систему, вместо сложных  и заумных пересчётов, запрашивает мозгосервер, получает конечные множители и сразу их применяет в нужном месте. По словам CCP Veritas, тепреь у нас “одно действие вместо сотен”
 
 

 

а что, разве изначально не так все было?  :facepalm:

обожемой, что за раки делали эту игру?

какому главкрабу пиршла в голову "гениальная" идея пересчитывать все при смене сессии?

теперь понятно откуда лаги, тиди, трафик контроль и прочее говно.


  • 0

Violets are blue, roses are red, we are coming aboard, prepare to eat lead.

 

 


#29
advena

advena

    Clone Grade Nu

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 9345 сообщений
1111
  • EVE Ingame:Advenat Bedala
  • Corp:.MLP.
  • Client:Eng

а что, разве изначально не так все было?  :facepalm:

обожемой, что за раки делали эту игру?

какому главкрабу пиршла в голову "гениальная" идея пересчитывать все при смене сессии?

теперь понятно откуда лаги, тиди, трафик контроль и прочее говно.

На самом деле то как есть сейчас вполне логично:

1) При смене сессии происходит фактически создание кораблика с нуля.

2) Кораблик это у нас набор характеристик, которые зависят от скиллов, фита, опять от скиллов, ещё от кучи неинтересных в данном контексте параметров. Нам нужно вычислить функции от всех этих параметров, чтобы получить характеристики.

3) Чтобы получить характеристики для функций мы лезем в дальние дали на момент написания основного кода это было очень даже близко и быстро.

 

В этих терминах BiaB просто меняет эти функции таким образом, чтобы так далеко лезть не приходилось. Сохраняются промежуточные результаты для этих функций. Сами функции меняются так, чтобы эти результаты можно было сохранить.


  • 0

В мире победившего капитализма всего два всадника апокалипсиса - Глупость и Жадность. Остальных оптимизировали.

Чтобы попасть в рай верующему надо умереть. Атеисту - выжить.

Ɛ̙̾ʍ̬͂ք͖̃̒ҽ̫̬͛ɾ̲̑͐օ͙̕ɾ̣̈́͜ ̤̘͘φ͇͙̕ɾ̹̏̿օ̤̀է̢̽̈́ҽ̻̩̿ç͕̿է̦̂͠ʂ͔͘͜


#30
Lynxovat

Lynxovat

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 1999 сообщений
370
  • EVE Ingame:Lynxovat Fujiwara
  • EVE Alt:Anselm Lucas
  • Corp:Red October
  • Ally:Red Alliance
  • Client:Eng

а что, разве изначально не так все было?  :facepalm:
обожемой, что за раки делали эту игру?
какому главкрабу пиршла в голову "гениальная" идея пересчитывать все при смене сессии?
теперь понятно откуда лаги, тиди, трафик контроль и прочее говно.

Опять полезли диванные программисты. Было бы забавно посмотреть, как бы ты сделал. Ты уверен, что там всё именно пересчитывается, а не только нужные параметра, а остальные кешируются? Например, при пропрыге по гейту и цинке наверняка считают не всё с нуля, если пропрыг идет не на другую ноду. На параметры, которые вряд ли будут использованы вполне можно просто сбросить флаг актуальности, что наверняка и делается. Если написано "пересчитаем всё", не факт, что это именно означает пересчитать всё физически, слышал когда-нибудь про ленивую инициализацию?
 

На самом деле то как есть сейчас вполне логично:
1) При смене сессии происходит фактически создание кораблика с нуля.
2) Кораблик это у нас набор характеристик, которые зависят от скиллов, фита, опять от скиллов, ещё от кучи неинтересных в данном контексте параметров. Нам нужно вычислить функции от всех этих параметров, чтобы получить характеристики.
3) Чтобы получить характеристики для функций мы лезем в дальние дали на момент написания основного кода это было очень даже близко и быстро.
 
В этих терминах BiaB просто меняет эти функции таким образом, чтобы так далеко лезть не приходилось. Сохраняются промежуточные результаты для этих функций. Сами функции меняются так, чтобы эти результаты можно было сохранить.

Тут надо уточнить термин "корабль", так то он создаётся и уничтожается в моменты распаковки и перепаковки/отправления на борду соответственно. Создается некий объект, в который включены шип, его фит, капсулер, флот, текущая система и может ещё много всего. Скорее всего в этот момент и рассчитываются основные множители для формул, по которым дальше будет определяться поведение этого объекта и устанавливаются зависимости между всеми составляющими. Тут очень сложно определить сложность операции, вроде как посчитать численные значения, пусть даже для 10000 коэффициентов для каждого из 1000 капсулёров, проваливающихся в гайку, не должно быть особо сложным. Тут, правда, есть узкий момент, что СП для каждого скила каждого капсулера нужно получить из БД, но вроде как это еденичная операция и не уверен, что запрос на отдельный кластер будет быстрее, чем запрос к БД.
Так то смысл блога, как я понял, в том, что придется лезть ещё дальше, чем обычно, но всего 1 раз для 1 капсулира, и не надо вычислять каждый раз параметры по формулам.
  • 0

#31
Khallath

Khallath

    (\/)O_0(\/)

  • Tech III Pilots
  • PipPipPipPipPip
  • 1456 сообщений
254
  • EVE Ingame:Savant Alabel
  • Client:Eng

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

Не то, что бы и монстр нужен. раз в секунду в памяти делать цикл на, допустим, 1kk элементов и плюсовать циферку - справится почти что угодно. Плюс задача отлично параллелится и поле для оптимизации даже если они обсчёт скиллов ведут по-честному(в чём после приколов с акселераторами я сильно сомневаюсь), то поле для оптимизации остаётся очень широкое.

А вообще - кеширование сильно поможет, плюс если раньше при переходе из системы в систему ты вполне мог перепрыгнуть с ноды на ноду и именно поэтому требовалось каждый раз обсчитывать навыки, то теперь вместо достаточно долгого обсчёта(а чем более скилловый персонаж, тем дольше считать :trololo:) нода будет получать от BiaB сервера только список уже посчитаных модификаторов для дронов/ракет/etc и ресурсоёмкость смены сессии  для ноды станет вместо O(N) O(1).



Что бы определить уровень навыка берутся сп, берётся множитель и вычисляется уровень. :wacko:  Хотя казалось бы: делаем на сервере таблицу со скилами персонажа и их лвлами, по накоплению сп на следующий уровень навыка просто однократно записываем новое значение в таблицу. При андоке\пропрыге\фите запрашиваем из таблицы значение без дополнительных вычеслений

Во истину изначально еву писали какие то индусы.

Ты забываешь немаловажный момент - у тебя скилл может докачаться в полёте и его надо применить сразу же.


Сообщение отредактировал Khallath: 23 October 2015 - 18:56

  • 0

Ты еда, твое место на кб, ты летаешь в долг на чужих исках





1 посетителей читают тему

0 members, 1 guests, 0 anonymous users