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

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

On-grid-бонусы: теорикрафтинг


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

#161
Delcheff

Delcheff

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 515 сообщений
66
  • EVE Ingame:Redward Dreik
  • EVE Alt:Rinue
  • Client:Eng

А я создал филосовский камень. Дельчиф, без пруфов это все балабольство(моя фраза про филосовский камень тоже)

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


Ну вот, например, ещё пример фрагмента алгоритма работы, на максимально упрощенной модели.
Допустим нам нужно написать программу считающую урон от модуля коробля с бонусником (Не в ЕВЕ а на упрощенной модели):
У нас есть:

Ship.BaseDmg - Базовый урон корабля.
Pilot.DmgMod - Модификатор урона от пилота коробля
BonusShip.DmgBonus - Бонус на урон гипотетического бонусника.

InRange(Ship,BonusShip) - метод проверяющий нахождение коробля(Ship) в ренже текущего бонусника(BonusShip). Не переодически,не постоянно, а в момент вызова метода.


BonusDmg(Ship,BonusShip) - метод, возвращающий модификатор урона от текущего бонусника реализован так:

IF InRange(Ship,BonusShip) THEN return BonusShip.DmgBonus ELSE return 1

Урон от выстрела в итоге считается методом:
FireDmg(Ship.BaseDmg,Pilot.DmgMod,BonusDmg(Ship,BonusShip))

То есть независимо от реализации метода BonusDmg() - считается ли бонус в рендже, гриде, системе, вселенной - ничего не надо пересчитывать постоянно или периодически. Действуют ли бонусы уже известно на момент выстрела.

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

ЗЫ. Напомню, что я не утверждаю, что в ЕВЕ что то похожее, я лишь говорю, что это возможно и никаких проблем с реализацией и нагрузками нет.

Сообщение отредактировал Delcheff: 09 November 2012 - 7:20

  • 0

#162
vizvig

vizvig

    |,..,|

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 4881 сообщений
774
  • EVE Ingame:Vizvig
  • DUST Ingame:UrOPb TOHET
  • Corp:черт его знает
  • Ally:BSOD
Ой как вы спорите, а на практике фитят на скорпионы во флот боях (100 рыл это не флот, это большой "роум") ЕСМ бурсты, бабахают этими бурстами в самом центре и не шибко то от этого лагает.

Подвергаются воздействию куча кораблей, с дистанцией, по разу в 1-2 секунды

Сообщение отредактировал vizvig: 09 November 2012 - 8:04

  • 0

#163
Crimson Ranger

Crimson Ranger

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 590 сообщений
442
  • EVE Ingame:CrimsonRanger
  • EVE Alt:NEAGA GypsyBand
  • Corp:Gipsies
  • Ally:DD
  • Client:Eng
В упрощенной модели можно хоть какать на голове стоя, и всё будет нормально. Ведь в упрощенной модели ты упростил, например, гравитацию, а значит не обляпаешься.

Вспомни, что для расчета, например, резиста или сигнатуры, тебе надо учесть базовый параметр хулла, фит, импланты, скилы, бонусы от флота. Бонусы могут быть аддитивными, пре-мультипликативными, пост-мультипликативными. Плюс надо учесть такую затратную штуку как стекинг. Это всё я к тому, что на расчет нужно какое-то время.
Вот пальнул в тебя маэль - ты вызвал свой волшебный метод, узнал свой ренж до бонусника и пересчитал свой резист по ем, резист по эксп и сигнатуру.
Пальнули в тебя 250 маэлей - ты вызвал свой волшебный метод 250 раз и у всей ноды залипли пухи на 5 секунд даже при тд 90%.

Не-не-не, скажешь ты! я не хочу делать лаги! Я буду вызывать пересчет параметров корабля максимум 1 раз за тик.

Теперь давай посмотрим куда же мы будем вешать вызов пересчета параметров корабля?
Вариант 1 - туда где эти значения используются. Хм, это "в меня попали" (предположим, мы найдем общего прародителя евентов турелей, ракет, дронов, файтеров, бомб и смарт, что врядли), евар, локинг, сканинг, и внезапно отсылка данных клиенту, чтобы он могу нарисовать сколько у тебя шилды (absolute readout возле капаситора). То есть каждый тик сервера.
Вариант 2 - туда, где эти значения изменяются. Это смена сессии, и рефит. То есть оооооочень редко.

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

Доступно объяснил?

Сообщение отредактировал Crimson Ranger: 09 November 2012 - 8:36

  • 0

#164
Korvin

Korvin

    продолжаю наблюдение

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 7066 сообщений
2605
  • EVE Ingame:Korvin
  • DUST Ingame:RIP
  • EVE Alt:Alpha Korvin
  • Corp:Shadow Kingdom
  • Ally:Best Alliance
  • Client:Eng

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


Ну вот, например, ещё пример фрагмента алгоритма работы, на максимально упрощенной модели.
Допустим нам нужно написать программу считающую урон от модуля коробля с бонусником (Не в ЕВЕ а на упрощенной модели):
У нас есть:

Ship.BaseDmg - Базовый урон корабля.
Pilot.DmgMod - Модификатор урона от пилота коробля
BonusShip.DmgBonus - Бонус на урон гипотетического бонусника.

InRange(Ship,BonusShip) - метод проверяющий нахождение коробля(Ship) в ренже текущего бонусника(BonusShip). Не переодически,не постоянно, а в момент вызова метода.


BonusDmg(Ship,BonusShip) - метод, возвращающий модификатор урона от текущего бонусника реализован так:

IF InRange(Ship,BonusShip) THEN return BonusShip.DmgBonus ELSE return 1

Урон от выстрела в итоге считается методом:
FireDmg(Ship.BaseDmg,Pilot.DmgMod,BonusDmg(Ship,BonusShip))

То есть независимо от реализации метода BonusDmg() - считается ли бонус в рендже, гриде, системе, вселенной - ничего не надо пересчитывать постоянно или периодически. Действуют ли бонусы уже известно на момент выстрела.

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

ЗЫ. Напомню, что я не утверждаю, что в ЕВЕ что то похожее, я лишь говорю, что это возможно и никаких проблем с реализацией и нагрузками нет.


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

Вобщем, если делать бонусы завязаные на ренж (против чего я собственно ничего не имею), то придется перелопачивать пол кода Евы, переделывать систему гридов, переделывать механику флотов и бонусов, переделывать сами шипы под новые реалии... В общем изобретать велосипед. Это огромный объем работы, ЦЦП и за год не осилит, а им еще даст писать, клайм переписывать и тд и тп.

Сообщение отредактировал Korvin: 09 November 2012 - 8:47

  • 0

#165
Delcheff

Delcheff

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 515 сообщений
66
  • EVE Ingame:Redward Dreik
  • EVE Alt:Rinue
  • Client:Eng

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

Нет, я показал, что считать это каждый тик сервера не нужно. Именно о невозможности не считать параметры каждого тика тут и говорили. Очевидно, что это не так.

Пальнули в тебя 250 маэлей - ты вызвал свой волшебный метод 250 раз и у всей ноды залипли пухи на 5 секунд даже при тд 90%.

Нет. когда стреляют 250 маэлей (пусть одновременно) идет полный расчет урона от каждой маэли и так. Ничего при этом не падает.
Даже Excel считает такое количество опираций << секунды. О каком залипании на 5 секунд ты говоришь для игрового сервера?

Не-не-не, скажешь ты! я не хочу делать лаги! Я буду вызывать пересчет параметров корабля максимум 1 раз за тик.

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

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

Опять перевирание. Расстояние может менятся как угодно, параметры корабля при этом не перерасчитываются в моем варианте. Перерасчет идет только в случае, если корабль покидает зону. Точно так же как и в бубле.

В ЕВЕ нет ганг бонуса на урон, это раз.

Да ладно! А я не знал! :facepalm:
А ещё там методы не так называются!

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

Нет, проверка генерится событиями. То есть так же как и сейчас. Дополнительных ивентов не нужно.

Вобщем, если делать бонусы завязаные на ренж (против чего я собственно ничего не имею), то придется перелопачивать пол кода Евы, переделывать систему гридов, переделывать механику флотов и бонусов, переделывать сами шипы под новые реалии... В общем изобретать велосипед. Это огромный объем работы, ЦЦП и за год не осилит, а им еще даст писать, клайм переписывать и тд и тп.

Стоп, при чем тут изменения баланса? Я спорю только о самой возможности считать не зацикливанием проверки и незначительной нагрузке при этом. Про то что надо будет много чего менять в игровой механике я и не спорил.

Кстати грид будет точно сильно мешать раздаче бонусов по ренджу. Остальное скорее вопрос баланса.

Сообщение отредактировал Delcheff: 09 November 2012 - 10:00

  • 0

#166
Gadsky

Gadsky

    Clone Grade Iota

  • Tech III Pilots
  • PipPipPipPipPip
  • 1904 сообщений
415
  • EVE Ingame:Gadsky
  • EVE Alt:Gadsky II
  • Corp:Afrorussians
  • Client:Eng

Ну вот, например, ещё пример фрагмента алгоритма работы, на максимально упрощенной модели.
Допустим нам нужно написать программу считающую урон от модуля коробля с бонусником (Не в ЕВЕ а на упрощенной модели):

InRange(Ship,BonusShip) - метод проверяющий нахождение коробля(Ship) в ренже текущего бонусника(BonusShip). Не переодически,не постоянно, а в момент вызова метода.


Проблема в том, что таки бонусы надо будет считать периодически. Берем бонус на скорость, например - короблик ничего не делает, но едет помаленьку. За рейндж выехал - надо бонус снимать. А ведь такого события - "выехал за рейндж" не существует. Значит проверять надо будет каждый тик. Другой дело, что по сравнению со всеми прочими расчетами расчет рейнжа до трех бонусных кораблей это прямо таки "омг какие затраты".
  • 0

#167
Delcheff

Delcheff

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 515 сообщений
66
  • EVE Ingame:Redward Dreik
  • EVE Alt:Rinue
  • Client:Eng

Проблема в том, что таки бонусы надо будет считать периодически. Берем бонус на скорость, например - короблик ничего не делает, но едет помаленьку. За рейндж выехал - надо бонус снимать. А ведь такого события - "выехал за рейндж" не существует. Значит проверять надо будет каждый тик. Другой дело, что по сравнению со всеми прочими расчетами расчет рейнжа до трех бонусных кораблей это прямо таки "омг какие затраты".

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

В качестве заключительного подтверждения общей теории о отсутствии ОМГ нагрузок стоит, думаю, отметить прекрасную реализацию бонусов в рендже для многочисленных игр. Причем не только на персонажей пати, но и NPC. Предполагать наличие проверки и перерасчета для всех потенциальных обьектов воздействия присутствия в рендже всех баферов каждый тик сервера просто смешно.

Сообщение отредактировал Delcheff: 09 November 2012 - 10:36

  • 0

#168
vizvig

vizvig

    |,..,|

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 4881 сообщений
774
  • EVE Ingame:Vizvig
  • DUST Ingame:UrOPb TOHET
  • Corp:черт его знает
  • Ally:BSOD

В качестве заключительного подтверждения общей теории о отсутствии ОМГ нагрузок стоит

Дополнительное подтверждение отсутствия ОМГ нагрузок является то что те кто кричат о ОМГ нагрузках пользуются бонусниками на посах/спотах для своих геймобилей :troll:

(щасс они прям признаются)
  • 1

#169
Crimson Ranger

Crimson Ranger

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 590 сообщений
442
  • EVE Ingame:CrimsonRanger
  • EVE Alt:NEAGA GypsyBand
  • Corp:Gipsies
  • Ally:DD
  • Client:Eng
Давай, Дельчиф, напрягись. Я конечно понимаю, что думать тяжело с непривычки, но верю что ты сможешь себя заставить.

Задачка номер раз.
ты на шатале (у шатала 100 шилды и 10% резиста), у тебя шилд менеджмент в троечку, ем компенс в два, и зафичен пассивный ем рез на шилду, ты в ганге и на тебя действует бонус 30% шилды и 15% резист (бонус на резист стакается). Рядом с тобой шваркнули смартой, на 500 ем дамаги. Посчитай, будь добр, ты умрешь?

Задачка номер два.
у тебя 230 единиц шилды и 45% ем рез. В тебя саданули смартой на 500 ем дамаги. Посчитай, ты умрешь?

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

Когда в тебя прилетает залп, или тебя берет в лок весь вражеский флот по бродкасту, или тебя ждамит полсотни натравленных на тебя дронов, тебе надо применить актуальные параметры корабля. Сейчас - эти параметры пересчитываются один раз - когда во флоте меняется вингбустер, а применяются постоянно.
Если бонусы будут зависеть от расстояния - актуальные параметры будут пересчитываться
-
либо каждый тик (ведь каждый тик меняется расстояние между вами)
- либо каждый раз перед использованием, то есть 0/100/200/500 раз за тик.

Пересчитать параметры корабля каждый раз перед использованием (именно на этом продолжает настаивать Дельчиф, я правильно понял?) - значит пересчитать параметры корабля каждый раз перед тем как посчитать урон от каждого из 250 маэлей. А не как сейчас просто посчитать урон.

Да, проверка расстояния - фигня, особенно в полярной системе координат, и похоже мы и так каждый тик пересчитываем расстояние до всех объектов в гриде. Не в этом проблема. Проблема в том, как часто придется пересчитывать параметры кораблей.

Хотите прочувствовать какой лаг вызывает пересчет параметров корабля? зайдите во флот и посмотрите какой это вызывает лаг. Поменяйте во флоте вингбустера, посмотрите какой это вызывает лаг. А теперь представьте этот лаг или каждую секунду, или (еще лучше) 200 раз в секунду.
  • 0

#170
Eretic

Eretic

    Легат Возврата

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5197 сообщений
446
  • EVE Ingame:KB Eretic
  • Client:Eng
Кримсон, брысь. Хватит помогать ему доказывать, что он прав.

Ибо пишешь ты бред.

Я уже это Алексу говорил, когда он подобную же чушь нес.
  • 0
Ересь - иной взгляд на привычные вещи

Не зная ни сна, ни отдыха, при лунном и солнечном свете мы делаем деньги из воздуха, что бы снова пустить их на ветер

Сражение, это странный опыт. Мы планируем действия за счет интеллекта, сражаемся за счет инстинктов, и только потом понимаем, что выжили лишь благодаря случаю.(с)Из письма Фиска Блэка своей сестре Люси.

#171
Crimson Ranger

Crimson Ranger

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 590 сообщений
442
  • EVE Ingame:CrimsonRanger
  • EVE Alt:NEAGA GypsyBand
  • Corp:Gipsies
  • Ally:DD
  • Client:Eng
м-м-м
как скажешь, гуру
\0_
  • 0

#172
Eretic

Eretic

    Легат Возврата

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5197 сообщений
446
  • EVE Ingame:KB Eretic
  • Client:Eng

скип

Что же, неплохо. А теперь разбор полетов.
Во-первых, это не "еще один" способ. Это тот самый способ под номером 2 в моем посте.

2. Запрос со стороны клиента


Во-вторых, у этого алгоритма есть две ЗДОРОВЕННЫЕ ДЫРИЩИ, не закрыв которые ему нельзя давать ход.

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

Вторая - даже если забыть про скилы ветки лидершип, то есть такой замечательный линк как Siege Warfare Link - Shield Harmonizing. Данный линк НЕ ВОЗДЕЙСТВУЕТ ни на один из модулей корабля. А исключительно на его резисты. Таким образом нам не к чему привязывать проверку(ну так, чтобы не попадать в первую дыру разумеется, ибо так-то она завязывается на просчет дамага по тебе).

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

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

Сообщение отредактировал Eretic: 09 November 2012 - 13:51

  • 0
Ересь - иной взгляд на привычные вещи

Не зная ни сна, ни отдыха, при лунном и солнечном свете мы делаем деньги из воздуха, что бы снова пустить их на ветер

Сражение, это странный опыт. Мы планируем действия за счет интеллекта, сражаемся за счет инстинктов, и только потом понимаем, что выжили лишь благодаря случаю.(с)Из письма Фиска Блэка своей сестре Люси.

#173
Delcheff

Delcheff

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 515 сообщений
66
  • EVE Ingame:Redward Dreik
  • EVE Alt:Rinue
  • Client:Eng

Когда в тебя прилетает залп, или тебя берет в лок весь вражеский флот по бродкасту, или тебя ждамит полсотни натравленных на тебя дронов, тебе надо применить актуальные параметры корабля. Сейчас - эти параметры пересчитываются один раз - когда во флоте меняется вингбустер, а применяются постоянно.
Если бонусы будут зависеть от расстояния - актуальные параметры будут пересчитываться
-
либо каждый тик (ведь каждый тик меняется расстояние между вами)
- либо каждый раз перед использованием, то есть 0/100/200/500 раз за тик.

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

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

Пересчитать параметры корабля каждый раз перед использованием (именно на этом продолжает настаивать Дельчиф, я правильно понял?) - значит пересчитать параметры корабля каждый раз перед тем как посчитать урон от каждого из 250 маэлей. А не как сейчас просто посчитать урон.

Нет, в том то и дело, что неправильно понял. Урон просто считается от каждого из 250 маэлей. Никаких перерасчетов не производится. Сам урон считается уже с учетом действия бонусов на твой корабль.

Да, проверка расстояния - фигня, особенно в полярной системе координат, и похоже мы и так каждый тик пересчитываем расстояние до всех объектов в гриде. Не в этом проблема. Проблема в том, как часто придется пересчитывать параметры кораблей.

Реже, чем раз в тик. Точнее параметры кораблей вообще не пересчитываются. Они всегда равны актуальному значению.
Ты хоть понимаешь что для кода выражение a=x не важно может ли меняться x или нет. Это смущает только человека.

Хотите прочувствовать какой лаг вызывает пересчет параметров корабля? зайдите во флот и посмотрите какой это вызывает лаг. Поменяйте во флоте вингбустера, посмотрите какой это вызывает лаг. А теперь представьте этот лаг или каждую секунду, или (еще лучше) 200 раз в секунду.

Ага, попросите вингбустера выключить линк. Отключите модули. Что никто не умер в лагах при пересчете параметров корабля? Странно...

Ну, попробую ответить.

Что же, неплохо. А теперь разбор полетов.
Во-первых, это не "еще один" способ. Это тот самый способ под номером 2 в моем посте.
Во-вторых, у этого алгоритма есть две ЗДОРОВЕННЫЕ ДЫРИЩИ, не закрыв которые ему нельзя давать ход.
Первая - наличие/отсутствие бонуса можно определить только в момент активации модуля, на который распространяется бонус, что вообще недопустимо с точки зрения геймплея. Вариант с кэшированием последнего значения не подходит по понятным причинам.

Вторая - даже если забыть про скилы ветки лидершип, то есть такой замечательный линк как Siege Warfare Link - Shield Harmonizing. Данный линк НЕ ВОЗДЕЙСТВУЕТ ни на один из модулей корабля. А исключительно на его резисты. Таким образом нам не к чему привязывать проверку(ну так, чтобы не попадать в первую дыру разумеется, ибо так-то она завязывается на просчет дамага по тебе).

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


Бонусы привязываются не к модулям а к расчетной модели.
То есть параметры резистов учитываются при расчете урона в данном случае. (Они же там и так учитываются)

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

Ну их там может быть 2000, например (при 100500, конечно залагает от трафика)
Тут надо подумать хотя расчет DMG=DMG*(куча параметров и модификаторов сейчас)*(модификатор бонусника в рендже)
мало отличается от DMG=DMG*(куча параметров и модификаторов сейчас)*(фиксированый модификатор)
по производительности.
  • 0

#174
Eretic

Eretic

    Легат Возврата

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5197 сообщений
446
  • EVE Ingame:KB Eretic
  • Client:Eng

Бонусы привязываются не к модулям а к расчетной модели.
То есть параметры резистов учитываются при расчете урона в данном случае. (Они же там и так учитываются)

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

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

Не зная ни сна, ни отдыха, при лунном и солнечном свете мы делаем деньги из воздуха, что бы снова пустить их на ветер

Сражение, это странный опыт. Мы планируем действия за счет интеллекта, сражаемся за счет инстинктов, и только потом понимаем, что выжили лишь благодаря случаю.(с)Из письма Фиска Блэка своей сестре Люси.

#175
Korvin

Korvin

    продолжаю наблюдение

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 7066 сообщений
2605
  • EVE Ingame:Korvin
  • DUST Ingame:RIP
  • EVE Alt:Alpha Korvin
  • Corp:Shadow Kingdom
  • Ally:Best Alliance
  • Client:Eng

Другой дело, что по сравнению со всеми прочими расчетами расчет рейнжа до трех бонусных кораблей для каждого корабля во флоте с обеих сторон это прямо таки "омг какие затраты".


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

Ну-ка хоть одну игру, где происходят реалтайм бои одновременно 2к+ игроков?
  • 0

#176
Eretic

Eretic

    Легат Возврата

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5197 сообщений
446
  • EVE Ingame:KB Eretic
  • Client:Eng
Корвин, это уже совсем тяжелая артилерия. Я-то надеялся, что он хотя бы на мои вопросы ответить попытается. Но ты его убил....
  • 0
Ересь - иной взгляд на привычные вещи

Не зная ни сна, ни отдыха, при лунном и солнечном свете мы делаем деньги из воздуха, что бы снова пустить их на ветер

Сражение, это странный опыт. Мы планируем действия за счет интеллекта, сражаемся за счет инстинктов, и только потом понимаем, что выжили лишь благодаря случаю.(с)Из письма Фиска Блэка своей сестре Люси.

#177
Crulod

Crulod

    Алдар Косе

  • Tech III Pilots
  • PipPipPipPipPipPipPipPipPipPip
  • 31919 сообщений
3492
  • Client:Eng

Ну-ка хоть одну игру, где происходят реалтайм бои одновременно 2к+ игроков?



...еще одну "замечательную идею" похоронили на ивру!

не ну, Корвин, ты о людях думаешь или эгоист совсем? ...взял и забил последний гвоздь в крышку, а может тут не все наелись!
  • 0

История постсоветского пространства, - это история предательства.


#178
Gadsky

Gadsky

    Clone Grade Iota

  • Tech III Pilots
  • PipPipPipPipPip
  • 1904 сообщений
415
  • EVE Ingame:Gadsky
  • EVE Alt:Gadsky II
  • Corp:Afrorussians
  • Client:Eng

...еще одну "замечательную идею" похоронили на ивру!

не ну, Корвин, ты о людях думаешь или эгоист совсем? ...взял и забил последний гвоздь в крышку, а может тут не все наелись!


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

Есть пайнтер - будь добр пересчитать сигнатуру с учетом фалоффа на каждый выстрел
Есть сетка/диз/нейтрик/еще дофига всего - 100% пересчет расстояния до агрессора на каждый тик
Не знаю как насчет трекдизов/сенсор дампенеров, меняются ли там показатели при изменении расстояния, но "по-честному" - это тоже кандидат на пересчет в каждом тике.
Бампы кораблей - как минимум расстояния между ближними надо считать. А эти ближние тоже еще надо определить.

На фоне всего этого расчет 2000 *3 расстояний между точками - я вас умоляю. Даже с учетом пересчета характеристик корабля.
  • 0

#179
Eretic

Eretic

    Легат Возврата

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 5197 сообщений
446
  • EVE Ingame:KB Eretic
  • Client:Eng

Есть пайнтер - будь добр пересчитать сигнатуру с учетом фалоффа на каждый выстрел

НА
ФИ
ГА?

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

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

Не зная ни сна, ни отдыха, при лунном и солнечном свете мы делаем деньги из воздуха, что бы снова пустить их на ветер

Сражение, это странный опыт. Мы планируем действия за счет интеллекта, сражаемся за счет инстинктов, и только потом понимаем, что выжили лишь благодаря случаю.(с)Из письма Фиска Блэка своей сестре Люси.

#180
Delcheff

Delcheff

    Clone Grade Eta

  • Tech III Pilots
  • PipPipPipPip
  • 515 сообщений
66
  • EVE Ingame:Redward Dreik
  • EVE Alt:Rinue
  • Client:Eng

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

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

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

В принципе уже тут может быть заложены параметры бонуса. То есть DMG=DMG(canon1)*resist(ship) грубо говоря. Где резист равен резисту + бонусы (если в рендже) и резисту + 0 (если не в рэндже) оба параметра считаются одинаково быстро и явно быстрее расчета выстрела маэлей.
Модулей тут не привязано.

Ну-ка хоть одну игру, где происходят реалтайм бои одновременно 2к+ игроков?


В еве такой бой лагает впринципе.
"Нормальный" по лагам бой в еве это бои по 500 игроков одновременно.
При этом нет нужды привязываться к игрокам\нпц расчет бонусов при этом одинаково сложен.
То есть забитое на хэлле окно Диаблы жрет ровно также в части расчета аур как и бой в Еве

То есть в твоем примере расчет будет занимать едва ли 1-2% от общего количества расчетов, неважно сколько кораблей будет стрелять\летать.


Расчет в зависимости от триггера относительного положения задача настолько простая для програмного вычисления что её легко можно реализовать даже на слабом компьютере в домашних условиях для 1000 обьектов.

Это ничтожные вычисления для Евы. Тем более что их можно ещё и оптимизировать, а не так как у меня напрямую считать.

Сообщение отредактировал Delcheff: 12 November 2012 - 14:31

  • 0




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

0 members, 0 guests, 0 anonymous users