эмоции про damage model (фишка сервера, а не fhlauncher)

Discussion in 'Warbirds General Discussion' started by -exec-, Jul 20, 2010.

  1. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    итак...

    идея №1:
    игрок стреляет в 5-20 раз точнее, чем реальный пилот того времени.
    надо адаптировать ДМ к такому обстоятельству. но чтобы не терять ощущение реалистичности желательно сохранить эффект от огневого воздействия. например, количество секунд атаки, обстрела.

    идея №2:
    избавиться от random. многих это изумляет, некоторых бесит: безрезультатно вколачивать во врага 20*20мм или 4*37мм, и умирать от 3*7.62мм или 2*12.7мм.
    я понимаю, что это только случаи, но память лучше хранит яркие переживания. наверное половина игроков на вопрос о ДМ первым делом вспомнят именно такие ситуации.
    в общем – избавиться от случайностей. их вполне достаточно в рассеивании снарядов и прочих факторах прицеливания.
    то есть из двух моделей, твоей "попадание повредило ИЛИ не повредило" и моей "да ты и не попал просто. если попал, то ВСЕГДА повредило", я догадываюсь, что интереснее всё таки моя, как игрокам, так и программистам против недовольства игроков.

    идея №3:
    раскладки ленты ты будешь искать два года в лучшем случае.
    вероятно стоит отмазаться от такой необходимости. как?
    согласно идее №2 раскладку стоит проигнорировать целиком, потому, что кроме как через random ты раскладку не смоделируешь.
    (будет очень интересно посмотреть как ты будешь отвечать игроку "37мм оказалась бронебойной, четыре раза подряд, и, проделав мелку дырочку, улетела в атмосферу")

    теперь такой мысленный эксперимент.
    условная раскладка ШВАК такова: HE, AP, HE, AP, In-Tr - фугасный, бронебойный, трассирующий-зажигательный.
    Code:
          фактор HE AP IN
    снаряд HE    50 10 2
    снаряд AP     0 35 0
    снаряд HE    50 10 2
    снаряд AP     0 35 0
    снаряд Tr-In  0 10 1
    
    итого 10 снарядов ШВАК причиняют 200 HE, 200AP, 10 In

    в среднем получается 20HE+20AP+1In на каждый снаряд. запишем.

    идея №3
    мотор и крыло F6F/190/N1KJ имеют интуитивно одинаковую прочность. но чем-то различаются. чем?
    сопротивлением AP фактору: мотор не пропустит снаряд дальше по спице. крыло почти не задержит.
    значит помимо "жизни" эдак в 160пунктов должен быть останавливающий момент.
    записываем: мотор останавливает 100 AP фактора, а крыло 5.

    идея №4
    в виду высокой скорострельности приходится иметь дело со статистическим характером попадания. но считая только HE или только AP мы получим очевидную херню:

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

    в случае только AP варианта два: а) при реалистичном AP факторе в полном отсустствии HE надо будет истребитель издолбать шилом, пока не погаснет мотор или разум пилота (скорее именно стрелка). поэтому можно попробовать завысить AP; б) при завышенном AP факторе любой самолёт будет пронзаться брёвнами различной тяжести из баллисты. почти любое доберётся до мотора или пилота, не говоря о разрушениях навороченных ранее по спице.

    следовательно надо как-то учитывать оба фактора, и AP, и HE.

    мысленный эксперимент: каждое попадание состоит из половины снаряда HE и половины снаряда AP. то есть HE полностью выкладывает энергию в первом элементе спицы, а AP воздействует на всю спицу.
    естественно, что можно подобрать коэффициенты ДМ так, что половинчатые или двойные снаряды останутся только в мысленном эксперименте

    итак:
    каждый снаряд воздействует на цель одновременно как HE и AP, при этом HE взрывается на первом элементе, а шило AP движется дальше.

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

    идея №6
    что если элемент уничтожен, но осталась энергия HE? особенно это интересует стрелков MK 108, ВЯ и прочих 37-57мм. ведь HE воздействует только на первый элемент спицы. второй элемент - далеко не факт. спица может пройти через оперение в крыло, а расстояние между ними метра два минимум.

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

    к сожалению с закрылками придётся остатки передавать только на левое крыло. или только на правое.

    идея №7
    бронебойность снаряда зависит от его скорости. скорость мы выкинули из-за читеров. что у нас осталось из "надёжных" данных? дальность! она неточная – за время путешествия снаряда игроки сместились. но координаты игроков всё таки не подвержены читерам. с точностью ±10-15% мы можем считать, что дальность между игроками во время контакта совпадает с дальностью во время выстрела.
    итак, мы можем AP фактор снижать пропорционально расстоянию между игроками.

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

    пример расчёта без цифр №2
    12.7мм пуля втыкается в фюзеляж, бронеспинку, пилота, мотор.
    фюзеляж отнимает немного AP в счёт своих повреждений, и пропускает пулю дальше в бронеспинку. если бронеспинка имеет бронеостанавливающее свойство выше оставшейся пули, то она полностью её поглощает в своё повреждение и останавливает расчёт спицы. если нет, то пропускает в пилота. плоть так же забирает часть AP и пропускает пулю в мотор, который уже наверняка пулю остановит. если пилот не умер (а для него условно надо эдак 2*12.7), то летим дальше.

    идея №8
    не все повреждения считаются.
    во-первых просто потому, что тыкать пальцем в самолёт бесполезно (разве что совсем бумажный). ниже некоего порога пуля слегка царапает элемент без повреждения. например на больших дальностях. или растратив AP энергию внутри самолёта. короче, детали имеют иммунитет к минимальным воздействиям.

    идея №9
    нестатистические выстрелы 37, 40, 50, 57, 75мм. обычно такими попадать труднее, и стрелок осознаёт каждый факт попадания одиночного снаряда.
    по ним либо требуется другой алгоритм, либо какие-то специфические коэффициенты HE/AP. в любом случае ДМ должна соответствовать правилу "истребитель сбивается одним снарядом в любое место", поскольку таковы ожидания игроков.
    двухмоторник вероятно может выдержать 2-3*37-40,
    четырёхмоторник 3-4*37-40 или 1-2*50-57мм.

    идея №10
    а что за Incendiary фактор?
    он введён для своего особенного рассчёта. если повреждается топливный бак, то его состояние не "уничтожен", а "дал течь". такова логика клиента. например можно сделать так: при здоровье бака ниже 50% он течёт, что легко исполняет иеновский клиент. при здоровье 0% он взрывается, что сервер может исполнить отрывом крыла целиком.

    но если он течёт достаточно долго, то когда втыкается любой снаряд (по идее №3 любой снаряд имеет в среднем 1 пункт зажигательности) можно уже отрывать всё крыло по причине взрыва. тут надо медленно продумать как это сделать.

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

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

    поправка №1
    на карте повреждений тонкие элементы вроде органов управления, да и стабилизатора, из-за кубического представления раза в два-пять толще, чем в реальности. в идее №4 я упоминал, что летать без управления, отлетевшего слишком рано, будет печально. в общем трюк такой - если "тонкий элемент" в спице идёт первым и после него что-то присутствует, то он выбрасывается из спицы.

    это результат где-то полугода размышлений когда я консультировал Франца по его табасерверу.
    такая ДМ сейчас у барзильцев на табахосте и они весьма довольны уже года три-четыре. только сейчас возник вопрос о тонкой подкрутке некоторых коэффициентов.
     
    Last edited: Aug 29, 2010
  2. gil---

    gil--- FH Beta Tester

    Joined:
    Nov 11, 2006
    Messages:
    1,977
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    Статистика про 1-2% точности по Б-17 является средней по общей массе пилотов, средний игрок арены имеет боевой налет как у топ-10 люфтваффе вместе взятых и сравнивать его со среднемассовым реальным некорректно, судя по ганкамерам с ю-туба, отличный реальный стрелок в свой удачный день был вполне сопоставим со средним виртуальным. Т.е. что-то особенно компенсировать тут нечего, все-таки это симулятор самолета, а не реального пилота с налетом в 100 - 200 боевых вылетов и 20 - 30 боев.

    При нормальном распределении вероятностей сильно изумляющие события будут иметь частоту на уровне в 10 тодов раз на всю арену у одного пилота. Как по мне так это и реалистично и вполне интересно.

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

    Крыло не может отвалиться от одной 12,7, даже в самый лонжерон, мотор уйти - запросто, хотя да, дальше по спице он ничего не пропустит, я про то ж упомянал.
    Силовой каркас крыла 190 это штуковина, выдерживающая порядка 30 тонн на плече в пару метров без особых деформаций, она и бронебойный 20 может задержать, не поперхнувшись, может и не задержать, если он удачно прошмыгнет через пустое место, но вероятность этого с ракурсов, на которых в спицу может попасть что-то еще, (т.е. в плоскости крыла) очень мала. Вообще снаряд никак не может повредить сколь-нибудь прочный объект, не потеряв адекватного количества энергии.

    Я тоже подумав над реализацией HE и пришел к тому, что статистика справится сама, как минимум для 20мм, там нужный расклад получается сам собой. Только придется немного скорректировать с учетом таки возможности прописать зависимость от дистанции, но вероятность "промазать", не повредив деталь даже при формальном попадании я б таки оставил, все-таки наличие в самолете пустот довольно существенный фактор, влияющий на реальный разлет в зависимости усилия на атаку/результат.

    Согласен, это в самый раз.

    Согласен.
     
    Last edited: Aug 29, 2010
  3. isaev

    isaev Well-Known Member

    Joined:
    Dec 7, 2007
    Messages:
    6,166
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    Попал фугас, разнёс бронеспинку. Точнее, элемент брони, закрывающий бронеспинку от попаданий под прямым углом. Сейчас у нас что-то похожее и есть.
    (в авиации броня не такая как на танках, в авиации она "одноразовая")
    Сейчас у нас отключается управление. Не самое удачное решение, но из-за ограничений движка пока никто ничего лучше не придумал. В принципе наверное никто не будет против если это выключить. Ы?
     
  4. gil---

    gil--- FH Beta Tester

    Joined:
    Nov 11, 2006
    Messages:
    1,977
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

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

    Я за, отрубать управление это вполне себе вариант, тогда можно сразу не убивать :)
     
  5. isaev

    isaev Well-Known Member

    Joined:
    Dec 7, 2007
    Messages:
    6,166
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    Очень спорное утверждение. Раз на раз не приходится, да и пилоты все разные и тогда и сейчас...

    Не понимаю кому мешает датчик случайных чисел. Спору нет, есть игры и без него, вот DOOM например... ;)
    Поробовать конечно можно, но лично меня устраивает рэндом который сейчас есть. Да и "истеричности" добавляет, всё-таки пушка не лазер...
    Но если большинству пилотов он так сильно мешает - убирайте.
     
  6. isaev

    isaev Well-Known Member

    Joined:
    Dec 7, 2007
    Messages:
    6,166
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    Пиллота это кстати сильно раздражало.
     
  7. gil---

    gil--- FH Beta Tester

    Joined:
    Nov 11, 2006
    Messages:
    1,977
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    Хмм, если у ред-аута есть какоенить промежуточное значение с полупрозрачной заливкой, можно врубать ее, чтоб было понятно, что это с управлением :).
     
  8. gil---

    gil--- FH Beta Tester

    Joined:
    Nov 11, 2006
    Messages:
    1,977
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

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

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    перечисли, плз.
     
  10. sonar-

    sonar- Well-Known Member

    Joined:
    Feb 16, 2001
    Messages:
    6,702
    Location:
    Russia
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    А ведь, вроде как, количество переносимых G до ред/блэкаута можно с сервера задавать? Чтобы чуть за управление дёрнул - рэдаут. Если так можно делать, то ранение имитировать выставлением жутких ограничений на перегрузку. Чуть рулём дёрнул - сразу в рэдаут влетел.
     
  11. gil---

    gil--- FH Beta Tester

    Joined:
    Nov 11, 2006
    Messages:
    1,977
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    1. Избавляет от необходимости компенсировать завышенные размеры повреждаемых зон завышенным разбросом и/или завышенной прочностью. ( http://forum.wbfree.net/forums/showthread.php?t=619 )
    2. Позволяет дать пулям шанс на поражение объектов внутри самолета, не занижая восприимчивость планера к оружию без фугасного действия.
    3. Позволяет адекватно реализовать повреждаемость всяких хлипких объектов, не влезающих в оригинальную ДМ.
    4. Позволяет с бОльшим основанием позиционировать игру как симулятор.
    А то сначала кому-то не нравится, что раз в год шальная пулька может ченить заклинить, а потом начнутся жалобы, что health bar не отображается и дамаг оружия качнуть нельзя. Т.е. наверняка можно сделать ДМ, которая безо всяких рнд даст тот же результат, что ДМ с рнд в среднем за ндцать попаданий, но помойму это скука смертная, типа "так, у меня хиспана в крыле, значит до отрыва мне еще одна хиспана и 20...., не, 22 7.7"

    И еще, это конечно мое субъективное ощущение, но помойму проще подогнать настраиваемые параметры модели под близкий к реальному процессу результат, если алгоритм модели ближе к реальным особенностям процесса.
     
    Last edited: Aug 29, 2010
  12. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

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

    это в отличие от чего? от моей модели? в моей модели как раз пули проходят внутрь.

    каких объектов? прицел разбить? и как моделировать? или выбить 4 из 12 цилиндров? и это как моделировать? или перебили тросик заслонки дросселя. вообще что ты можешь поразить такого внутреннего, чтобы адекватно смоделировать на клиенте?

    в отличие от чего?

    он и сейчас отображается через "0.5sq.m hole"

    судя по репликам автора дм он весьма далёк от реальности. там просто рандом, запрятанный под жонглирование заумными параметрами.
     
  13. gil---

    gil--- FH Beta Tester

    Joined:
    Nov 11, 2006
    Messages:
    1,977
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

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

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

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

    В отличие от модели, которая не предполагает использования случайных величин.
    Небольшая вероятность заклинить руль высоты одной пулькой с Д5 гораздо реалистичнее невозможности такого события.
     
  14. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    1)вроде как в мемуарах советские истребители прыгали после попадания 1-2 снарядов 20мм. предполагаю потому, что самолёт приобретал нелетабельное состояние, даже не аннигилировав или хоть бы потеряв крыло.
    но я понимаю, что ты хочешь именно этого.

    2)в таком случае покажи четыре примера расчёта одной мг151 против як9 в конкретных цифрах, а не в мямлении.

    а)элеватор-стабилизатор-рфюз-бронеспинка
    б)закрылки-топливо-крыло-пулемёт
    в)цфюз-масло-мотор
    г)киль-рфюз-закрылки-правоекрыло
     
  15. noisul2008

    noisul2008 Banned

    Joined:
    May 2, 2010
    Messages:
    510
    Re: Ошибки FHL1.68открытая-бета

    А у семейства Б-25 бомбы точно соответствуют заявленной мощности?
    Касательно загрузки 2х1600 лб 6х250 лб?
    Такое ощущение, что они как бы все по 250 лб. Потому как 1600 лб (640 кг) закрывает ангар на 600 сек (точно так же как пешкины 250 кг).
    Или эти 1600 лб не такие, как 1600 лб у Б-24?
     
  16. bimbom

    bimbom FH Beta Tester

    Joined:
    Jan 19, 2006
    Messages:
    7,431
    Location:
    Moscow, Russia
    Re: Ошибки FHL1.68открытая-бета

    лог давай
     
  17. noisul2008

    noisul2008 Banned

    Joined:
    May 2, 2010
    Messages:
    510
    Re: Ошибки FHL1.68открытая-бета

    А сейчас на Ф9 проверил - все нормально.

    12:45:34 noisul(Private): Hit [Wall] from d51.407
    12:45:34 noisul(Private): [GPB_1600lb] hit [Wall] (274) arial [302] EE=[152925.8]
    12:45:34 noisul(Private): [Wall] destroyed for [2000] sec from d51.407
    12:45:34 noisul(Private): Hit [Wall] from d51.254
    12:45:34 noisul(Private): [GPB_1600lb] hit [Wall] (290) arial [302] EE=[63938.6]
    12:45:34 noisul(Private): [Wall] destroyed for [1776] sec from d51.254
    12:45:34 noisul(Private): Hit [Hangar] from d51.330
    12:45:34 noisul(Private): [GPB_1600lb] hit [Hangar] (276) arial [302] EE=[74960.0]
    12:45:34 noisul(Private): [Hangar] destroyed for [2000] sec from d51.330

    чудеса какие-то...

    Вечером "домашний" лог посмотрю.
     
  18. noisul2008

    noisul2008 Banned

    Joined:
    May 2, 2010
    Messages:
    510
    Re: Ошибки FHL1.68открытая-бета

    разобрался я в чем дело.
    2х1600 лб надо кидать на радиорубку-мачту и ангар точно в следующем порядке: сначала на АНГАР, а потом уже на радиопарочку.
    если в обратном порядке, то первая 1600-ка убивает и то и другое, но ангар - на хилое время: т.е вторая бомба попадает уже в убитый ангар с нулевым эффектом.
    а в первом случае вырубка на 2000 секунд для данных билдингов обеспечена.
     
  19. Bobby

    Bobby Well-Known Member

    Joined:
    Oct 19, 2001
    Messages:
    9,755
    Location:
    Almaty, Kazakhstan
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    По поводу ДМ. Нужно будет еще и учесть какая будет ФМ в результате.
    Поясню, с той инерцией, что нам сделали сейчас, я попробовал сделать один вылет на мыше в офлайне, попадать стало сложнее. Можно предположить, что если реакция на рули останется такой же, то и количество попаданий снизится, тогда можно сделать оружие точнее и мощнее.
     
  20. fas---

    fas--- Дремучий патриархал

    Joined:
    Jun 4, 2006
    Messages:
    11,601
    Location:
    Российское Царство
    Re: эмоции про damage model (фишка сервера, а не fhlauncher)

    Джой завести не проще?