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

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

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

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

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

#1
Werdna

Werdna

    Despicable Heterolingual

  • EVE-RU Team
  • 5204 сообщений
4873
  • EVE Ingame:Lurking one
  • Corp:BLYA
  • Ally:X.I.X
  • Client:Eng
(Это очень вольный пересказ одной статейки на TMC. Мопед не мой, но всё же чуток отсебятины здесь есть - Werdna)
 
Возможно, вы уже встречали загадочное название “Brain in a Box”. Это не самая крутая штука для рядового игрока с точки зрения маркетинга. Она не произведёт такого эффекта, как введение скинов, фоззисов или даже как предполагаемое введение обмена СП между игроками посредством приобретаемого у ССР предмета. Поэтому, вы встретите считанных по пальцам одной руки игроков, которые с нетерпением ждут этой фичи и возлагают на нее большие надежды. Тем не менее, эта штука, Мозги в коробке касается абсолютно каждого персонажа в игре. Более того, если вы хотите регулярно участвовать в эпиках 1000 на 1000 (на самом деле, эффект будет уже при локале от 100), вам надо пристально следить за разработкой “BiaB” и по-возможности участвовать в тестах на СиСи. 
 
Предпосылки
 
“Brain in a Box” - достаточно скрытный проект, который вот уже четыре года то появляется, то исчезает из поля зрения игроков. Несмотря на кажущуюся простоту и узкую специализацию, этот проект стал одним из основных для команды Gridlock (команда, отвечающая за оптимизацию игрового кода) и потребовал коренной переработки кода одной из самых старых базовых систем Евы. Идея этого проекта появилась ещё в 2011 году, но впервые игроки услышали о нем на Фанфесте в 2012. “Отцом” проекта “Brain in a Box” можно считать CCP Veritas. Этот человек сделал очень много для Евы (тиди, к примеру или оптимизация ракет - и ещё много чего) ,  с его уходом в Риот Ева потеряла много хорошего.
 
Автор статьи, послужившей основой для этого поста, SET'S CHAOS, упоминает битву при 6VDT-H, установившую рекорд по максимальному числу участников, и значительно превосходящую по этому показателю бр5 и Асакай, несмотря на значительно меньшую сумму угробленных исков. В этой битве тиди (замедление времени) работало на всю катушку, битва обсчитывалась на самом мощном узле(ноде) кластера. Несмотря на это было такое впечатление, что есть какой-то жёсткий лимит на число игроков в системе. Слухи о наличии лимита развеял CCP Explorer, рассказавший о самопроизвольном ограничении числа игроков из-за медленного железа. CCP Veritas, в свою очередь, в виду отсутствия у ССР централизованной политики, направленной на оптимизацию производительности сервера, предложил создать “Brain in a Box”. Этот проект должен стать следующим шагом в оптимизации обсчёта больших флотов в стиле, похожем на тиди.
 
Как на самом деле работают навыки в игре или просто о сложном
 
Сегодня, когда вы андокаетесь, садитесь в корабль, прыгаете из ситемы в систему, умираете, фитите кораблик и т.п., движок Евы пересчитывает каждый навык и применяет результаты к вашему состоянию. Это хорошо иллюстрируется навыками на дронов. При андоке, движок пересчитает навык Drones, чтобы узнать, сколько дронов вы сможете запустить; навык Advanced Drone Avionics для определения дистанции контроля дронов, то же самое и с навыками Drone Interfacing, Drone Navigation, Drone Durability, Light Drones и проч. и проч. и т.д. и т.п. Сложно? Это ещё не всё. Система не знает, что вы можете контролировать пять дронов, поскольку у вас Дроны в пять. Нода берёт сумму накопленного СП в этом навыке и проверяет ранг навыка, чтобы рассчитать множитель. Например, если у вас в Advanced Drone Avionics влито 226275 СП, то движок уточнит ранг навыка - V и рассчитает, что он выкачан у вас в 4. Затем берётся бонус навыка за уровень, множит его на 4 и получает +12000 бонусных метров к дистанции контроля дронов. Далее, система проверит остальные навыки по списку и применит их модификаторы к некоему объекту (вашему кораблю или, например, к дрону). Расчеты могут стать очень запутанными и сложными. Так происходит с каждым навыком, который вы изучили - каждый раз при смене сессии, установке модуля, и т.п., для каждого пилота в системе, в каждой из систем кластера. Обработать таким образом три-четыре десятка пилотов для сервера совсем несложно, однако вспомните андок фуллфлита: двести кораблей не андокнутся мгновенно, также как флот не пройдёт в гайку мгновенно, в Жите не так быстро вылезти на андок, а удачный бомберран создаст некислую нагрузку на сервер.
 
Что такое  “Brain in a Box”
 
Грубо говоря, это более простой способ, позволяющий главному движку Евы пересчитывать навыки. Он не виден, его эффект скрыт от игроков, но этот проект - колоссальная переделка способа обработки навыков движком Евы. Навыки (которые, к слову, являются предметами с определенными атрибутами, хранящиеся в контейнере - голове вашего персонажа. Фактически - это и есть мозги) не будут обсчитываться на основном сервере игры, а будут перенесены на отдельный, специальный сервер (как бы коробочку). Таким образом нода, обсчитывающая звездную систему, вместо сложных  и заумных пересчётов, запрашивает мозгосервер, получает конечные множители и сразу их применяет в нужном месте. По словам CCP Veritas, тепреь у нас “одно действие вместо сотен”
 
Жаль, конечно, что CCP Veritas ушёл из ССР, но дело его живёт. BiaB не умер и находится в активной разработке. В этом году уже проводились несколько массовых тестов мозгов на СиСи. Надеюсь, будут ещё тесты и систему доведут до ума. Кроме этого, на отдельный сервер может переехать вообще все расчеты, связанные с навыками: это и очередь, и обучение, импантаты,атрибуты и всё остальное, что потребует переписывания того самого легаси кода. Возможно, есть ещё надежда, что вместо забивания болта на старый код, который вангуют несознательные игроки, ССР таки перепишет его на новый, оптимизированный лад.
 
Что дальше?
 
Несмотря на оптимизм и уже состоявшиеся массовые тесты, “Brain in a Box” далёк от завершения. CCP Habakuk говорил о впечатляющем списке багов, созданных новой системой, которые надо исправить перед релизом, не говоря уже об улучшении нагрузки на сервер и предвосхищения хитрости сотен игроков. Релиз проекта скорее всего состоится уже в следующем году. Проект также не рассматривается в ССР как волшебная палочка, удаляющая лаги. К примеру, предварительные тесты показали повышение производительности при андоке и смене сессии, однако ракеты наоборот, производительность сильно ухудшили.
Но главное в этом всём то, что ССР работает над одной из самых старых базовых систем в игре, которая делает Еву Евой. Преписывание легаси кода - не самая наглядная вещь, однако это абсолютно точно сделает Еву более привлекательной. Есть мнение, что битвы, подобные 6VDT, B-R5 и Асакаю, в эпоху фоззисова будут очень и очень редкими. Однако, если вдруг что-то похожее случится, сервер и клиент Евы смогут обработать невиданное доселе число участников. Так что теоретически, это одно из самых важных дел, определяющих будущее  Eve Online.
 
Для тех, кто пропустил презентацию на фанфесте, вот ссылка на презентацию новой Догмы и более точного рассказа о BiaB (на английском - извините, нет возможности запилить субтитры):

 

 

 

Ну и оригинал статьи на mittani.com: https://www.themitta...est-singularity

 


Сообщение отредактировал Werdna: 22 October 2015 - 0:51

  • 14

#2
err0r

err0r

    Поня

  • -10.0
  • PipPipPipPipPip
  • 3774 сообщений
1337
  • Channel:MLP RUS
  • Client:Eng

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


  • 0

WAR IS PEACE. FREEDOM IS SLAVERY. FRIENDSHIP IS MAGIC. PINKIE PIE IS WATCHING YOU FOREVER!

http://i.imgur.com/ZwEyGcb.jpg


#3
Treant

Treant

    Clone Grade Gamma

  • Tech III Pilots
  • PipPip
  • 98 сообщений
73
  • EVE Ingame:TreantProtector
  • Channel:offline
  • Client:Eng

del, разобрался


Сообщение отредактировал Treant: 22 October 2015 - 0:48

  • 0

#4
err0r

err0r

    Поня

  • -10.0
  • PipPipPipPipPip
  • 3774 сообщений
1337
  • Channel:MLP RUS
  • Client:Eng

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

Нет, при каждой смене сессии, индивидуально.

Пример: ты решил покрабить, андокаешься, сервер при андоке расчитал все твои параметры (и только твои). Далее в систему залетает ганг из 10 человек - сервер обсчитывает только этих 10 человек.

Ну, по крайней мере именно это и следует из текста.


Сообщение отредактировал err0r: 22 October 2015 - 0:43

  • 0

WAR IS PEACE. FREEDOM IS SLAVERY. FRIENDSHIP IS MAGIC. PINKIE PIE IS WATCHING YOU FOREVER!

http://i.imgur.com/ZwEyGcb.jpg


#5
L'ecran

L'ecran

    Clone Grade Omicron

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 18822 сообщений
2237
  • EVE Ingame:L'ecran
  • EVE Alt:Walk'in
  • Client:Eng

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

они же вроде в очередной раз меняют железо, оставят старый сервак и скинут все расчёты на него


  • 0

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

Это частный ресурс, тут нет никакой справедливости, несмотря на то, что про неё тут много пишут, тут предвзятое модерирование, тут всем плевать на правила, если есть какой-то интерес или профит. Бороться за правду на этом форуме не имеет смысла.


#6
Treant

Treant

    Clone Grade Gamma

  • Tech III Pilots
  • PipPip
  • 98 сообщений
73
  • EVE Ingame:TreantProtector
  • Channel:offline
  • Client:Eng

del


Сообщение отредактировал Treant: 22 October 2015 - 0:48

  • 0

#7
Alex Lenin

Alex Lenin

    Clone Grade Theta

  • Tech III Pilots
  • PipPipPipPip
  • 1194 сообщений
1184
  • EVE Ingame:Alex Lenin
  • Corp:No.Mercy
  • Ally:Triumvirate
  • Client:Eng

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

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


Сообщение отредактировал Alex Lenin: 22 October 2015 - 0:45

  • 0

C4NpQTz.png


#8
Werdna

Werdna

    Despicable Heterolingual

  • EVE-RU Team
  • 5204 сообщений
4873
  • EVE Ingame:Lurking one
  • Corp:BLYA
  • Ally:X.I.X
  • Client:Eng

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

 

 

то есть вся перечисленное в девблоге - чушь? То, как ты описал процесс, делает BiaB ненужным.

 

а как ты думаешь, навык и, скажем, чемодан - это одно и то же или разные вещи? 

 

Это не девблог, кстати, это просто интересный рассказ про Еву.


  • 0

#9
Daenur

Daenur

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 688 сообщений
86
  • EVE Ingame:Etego
  • Client:Eng

2Alex Lenin
 
Тут не все так очевидно. Навык может доучиться и по ходу боя. И должен корректно учитываться. А если тебе от скуки захочется его переключить?


Сообщение отредактировал Daenur: 22 October 2015 - 0:55

  • 0

#10
Werdna

Werdna

    Despicable Heterolingual

  • EVE-RU Team
  • 5204 сообщений
4873
  • EVE Ingame:Lurking one
  • Corp:BLYA
  • Ally:X.I.X
  • Client:Eng

Ну не все так очевидно. Навык может доучиться и по ходу боя. И корректно учитываться. А если тебе от скуки захочется его переключить?

 

А вот представь, что бывает, когда ФК дает команду флоту в 200 рыл подогреть, к примеру, пушки? Придется пересчитать абсолютно все модули на всех кораблях флота с учётом всех навыков пилотов этих кораблей.


  • 0

#11
Alex Lenin

Alex Lenin

    Clone Grade Theta

  • Tech III Pilots
  • PipPipPipPip
  • 1194 сообщений
1184
  • EVE Ingame:Alex Lenin
  • Corp:No.Mercy
  • Ally:Triumvirate
  • Client:Eng

А вот представь, что бывает, когда ФК дает команду флоту в 200 рыл подогреть, к примеру, пушки? Придется пересчитать абсолютно все модули на всех кораблях флота с учётом всех навыков пилотов этих кораблей.

 

То есть включение-выключение перегрева вызывает пересчёт абсолютно всего, а не просто добавляет\убирает в\из формулы множитель скажем 0,15 (бонусный роф от перегрева)? Всё намного хуже чем я себе представлял. Теперь понятно как в тд умудряются сжигать чемоданы.


  • 0

C4NpQTz.png


#12
Treant

Treant

    Clone Grade Gamma

  • Tech III Pilots
  • PipPip
  • 98 сообщений
73
  • EVE Ingame:TreantProtector
  • Channel:offline
  • Client:Eng

А вот представь, что бывает, когда ФК дает команду флоту в 200 рыл подогреть, к примеру, пушки? Придется пересчитать абсолютно все модули на всех кораблях флота с учётом всех навыков пилотов этих кораблей.

Нечего там пересчитывать. Тупо следующий роф увеличивается на 17.6...%

 

Я воняю к тому, что пересчёт скилов на отдельной ноде в момент захода тел в систему не повысит производительность во флотовом бою.


Сообщение отредактировал Treant: 22 October 2015 - 0:59

  • 0

#13
advena

advena

    Clone Grade Mu

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 7494 сообщений
989
  • EVE Ingame:Advenat Bedala
  • Corp:.MLP.
  • Client:Eng

То есть включение-выключение перегрева вызывает пересчёт абсолютно всего, а не просто добавляет\убирает в\из формулы множитель скажем 0,15 (бонусный роф от перегрева)? Всё намного хуже чем я себе представлял. Теперь понятно как в тд умудряются сжигать чемоданы.

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

 

Мозг в коробке - пересчёт параметров только при их изменении, иначе - берём из БД заранее посчитанные данные.

 

В обоих утверждениях могу ошибаться.


  • 0

Русские - мирный народ. Нам нужен мир, желательно весь.

 

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


#14
Roudzik

Roudzik

    Clone Grade Omicron

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 17562 сообщений
2984
  • EVE Ingame:Roudzik
  • Corp:DCMI
  • Client:Eng

Да блин, белые люди эти "мозги" давно кэшированием называют. Основная задача - чтобы "боевые" ноды занимались только расчетом взаимодействия кораблей, а сами корабли как более статичный набор данных обрабатывались где-то еще.


  • 1

Chaotic Neutral


#15
Rokov

Rokov

    Clone Grade Nu

  • Tech III Pilots
  • PipPipPipPipPipPipPipPip
  • 9203 сообщений
3446
  • EVE Ingame:William Rokov
  • Ally:Yolo Brothers
  • Client:Eng

Нечего там пересчитывать. Тупо следующий роф увеличивается на 17.6...%

Как быстро будет греться рэк, как быстро будут гореть модули? Каков шанс что сгорит, скажем, работающий нейтрик в хайслоте рядом с гретыми пушками, думаешь это от скиллов и от шипа не зависит, можно просто роф увеличить и все, больше ничего обсчитывать не надо? Тебе надо идти к панцеру и крекеру в команду, втроем вы наверняка за пару месяцев еву 2.0 запилите, которая не тормозит. :laugh:


  • 0

Илита еверу, статистика врать не может!

При разговоре со мной учитывайте, что я не просто какой-то бич, а самый настоящий ЦЕО клайм альянса.


#16
euroUK

euroUK

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5588 сообщений
252
  • EVE Ingame:Methodius Nix
  • EVE Alt:Много
  • Corp:G1PSY
  • Ally:TRI
  • Client:Eng

Как быстро будет греться рэк, как быстро будут гореть модули? Каков шанс что сгорит, скажем, работающий нейтрик в хайслоте рядом с гретыми пушками, думаешь это от скиллов и от шипа не зависит, можно просто роф увеличить и все, больше ничего обсчитывать не надо? Тебе надо идти к панцеру и крекеру в команду, втроем вы наверняка за пару месяцев еву 2.0 запилите, которая не тормозит. :laugh:

 

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



Я просто не понимаю, как могла упасть производительность ракет?

 

Ситуация простая, мы имеем выделенный сервер для расчета скилов и сервер игровой механики. При смене сессии, мы берем актуальные значения не скилов, а характеристик - дронов 5, контрол ренж 84км и т.д.

 

Если не произошло изменения состояния (бонусник во флоте, доучился скил и прочее) мы тупо берем кэшированные значения из кэша сервера игровой механики. 

 

Каким макаром производительность будет падать?


  • 0

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


#17
infolex

infolex

    Clone Grade Delta

  • Tech III Pilots
  • PipPip
  • 169 сообщений
62
  • EVE Ingame:infolex
  • Corp:The Scope
  • Client:Рус

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


  • 0
Спойлер


#18
euroUK

euroUK

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5588 сообщений
252
  • EVE Ingame:Methodius Nix
  • EVE Alt:Много
  • Corp:G1PSY
  • Ally:TRI
  • Client:Eng

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

 

Все именно так, только не нужно вешать логику на MS Sql, а то видел я в Unicreditе Хранимки на 10 страниц, которые проверяли правильность заполнения формы на клиенте :)

 

Делается очень просто. Нода, на которой сейчас висит персонаж,  обладает банально кэшем аттрибутов - Вася_DronesControlRange 84000. БО Вася подписан на события - смена сессии, прокачка скила, бонусы. При получении событий, мы заново опрашиваем сервер скилов и получаем новые характеристики.

 

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


  • 0

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


#19
vmarkelov

vmarkelov

    Clone Grade Omicron

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

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

Складывается ощущещение, что когда писали код руководствовались приципом "не храни лишнего"
В принципе это имеет право на жизнь, так как
1) бд и все ее индексы занимают меньше места
2) ситуация рассинхрона данных невозможна (грубо говоря не может произойти ситуации когда sp начислились, а скилл остался неизученным)
Но как и за все, за эти плюсы пришлось платить недостатками - избыточностью вычислений.
  • 0

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


#20
euroUK

euroUK

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5588 сообщений
252
  • EVE Ingame:Methodius Nix
  • EVE Alt:Много
  • Corp:G1PSY
  • Ally:TRI
  • Client:Eng

Складывается ощущещение, что когда писали код руководствовались приципом "не храни лишнего"
В принципе это имеет право на жизнь, так как
1) бд и все ее индексы занимают меньше места
2) ситуация рассинхрона данных невозможна (грубо говоря не может произойти ситуации когда sp начислились, а скилл остался неизученным)
Но как и за все, за эти плюсы пришлось платить недостатками - избыточностью вычислений.

 

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


  • 0

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





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

0 members, 0 guests, 0 anonymous users