Убей себя об стену рандомно!

1 Суть: При столкновении с твердотельным объектом, на одном и том же корабле, под одними и теми же углами и скоростями, цифры входящего урона абсолютно непредсказуемы.
2. Считаю, что урон, при указанных условиях, должен быть одинаковым или с небольшой погрешностью.
3.1. Баг воспроизводится постоянно.
3.2. Взять любой корабль и провести серию столкновений с любым препятствием.
4. Пояснения.

Цифры урона при последовательных столкновениях с препятствием:

1951

953

963

966

552

601

1930

557

1937

600

276 (тут я перед столкновением отпустил кнопку скорости, можно не считать.)

1921

541

973

600

1931

итого, разброс минимум от 541, до максимум 1951 НР

а так же прослеживаются закономерности урона в районе 1930, 950 и 570ти с небольшим разбросом.
5. Скрины + логи + видео.

Видео:

логи:

Баг столкновений.rar

 

За помощь в тестах и открытии бага, выношу благодарность Disly

[Баг столкновений.rar](< base_url >/applications/core/interface/file/attachment.php?id=145927)

Судя по цифрам, скорее всего, иногда наносилось 2 удара вместо одного (там где цифры >1000)
если учесть это, то цифры должны получиться

975 + 975953963966552601965 + 965557968 + 968600960 + 960541973600965 + 965

Разброс урона составляет, таким образом, 541 - 975 единиц.

 

Это выглядит правдоподобно, учитывая тот факт, что столкновения не всегда происходят под прямым углом (про урон в 541 ед это четко видно на видео)

 

Откуда может взяться 2-й удар?
Из-за сложной формы корабля и стены может приходить 2 сообщения о контакте. Это нормальная ситуация. В качестве иллюстрации можно привести кубик, упавший на ровный пол: если кубик падает не строго перпендикулярно, то сначала будет контакт пола с одной вершиной куба, затем другой. В случае более сложной геометрии контактов придет много.

 

У нас в игре фильтруются такие случаи, и учитываются только самые “сильные” контакты, между которыми прошло не менее 100 мс. Очевидно, в вашем случае между крайними эпизодами серии коллизий, происходящих при столкновении, иногда проходит более 100 мс - и эти эпизоды оказались достаточно “сильными”.

 

Теперь о разбросе урона. Говоря упрощенно: на величину угла столкновения, использующуюся в расчете урона, заметно влияет форма сталкиваемых объектов. Поэтому фронтальный удар в неровную поверхность может дать в результате угол столкновения, отличный от нормали.

 

Резюме: бага не выявлено.

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

 

Кроме того, если поставить имплантант 9-3, заставляющий щит принимать на себя урон от столкновений, мы наблюдаем туже картину:

1925
1923
1926
701
456

Там-то какие могут быть грани, если имеем дело со сферой?

 

Всё же если это и не баг, то недоработка.

 

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

 

 

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

 

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

А еще многочисленный урон в довольно малый промежуток времени можно получить от транспортников (десант киберов) в миссии “Алая мгла”, если встать на их пути. Разбиться можно буквально за секунду-две!

Вспомнил момент! Я был на заграде в неизвестном пространстве, сидел в нычке, убил несколько охотников и решил выгрузить топливо, чтоб подобрать лут. Выкинул топливный контейнер или два. Решил оттолкнуть их подальше. Уперся в них носом и полетел вперед (без форсажа). Умер через мгновение, корпус тут же просто в 0 улетел :slight_smile: Оформлять тогда не стал, некогда было. Возможно, при этом еще поцарапапался об стенки нычки, но все равно - я еле полз параллельно стенкам, и практически ваншот получил. Подозреваю, что это были именно множественные удары об контейнер, но там сила соприкосновения, по логике, была минимальна - но корпус слетел в один момент.

Кстати в некоторых случаях при ударе об острые объекты на 150-250м\с можно словить до 7к урона даже при полном хп и щите, компенсаторах и имплантанте  на поглощение урона щитом.

Насколько я понимаю -  это срабатываем механизм при соприкосновении с острыми гранями объектов и урон из-за этого может полностью разрушить корабль?

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

Мы имеем дело с коллизиями. Множественные коллизии - неизбежное явление, и их как-то надо обрабатывать.

Там-то какие могут быть грани, если имеем дело со сферой?

Откуда сфера, если щит не коллизится? Столкновение идет по корпусу, просто урон списывается со щита.

Мы имеем дело с коллизиями. Множественные коллизии - неизбежное явление, и их как-то надо обрабатывать.

надо, но не двукратными же цифрами?! Когда ты бросаешь стальной кубик в деревянную стену, на стене останется только ОДНА крупная вмятина от первого соприкосновения. Дополнительные вмятины, если и будут, то ощутимо меньше. Так и тут - первое стокновение(одно!) надо отрабатывать на полную, но все последующие, в рамках одной коллизии, надо отрабатывать с учетом погашеного импульса.

 

Блин, да я просто не знаю, как еще пояснить так, что б было понятно, что это баг! Создается ощущение, что вы меня тролите :slight_smile:

 

банальные примеры:

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

 

если машина на 150км/ч влетает в защитное ограждение, столкновение так же происходит разово.

 

В нашем же случае, после падения человека, его труп снова взлетает на 10ый этаж и падает повторно. А машина, искореженая первым столкновением в груду метала, снова откатывается, разгоняется на 150км/ч и еще раз влетает в то же ограждение.

 

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

 

Ну как еще пояснить-то? Это ж банальная инерционная физика за 7ой класс, когда мы на уроке сталкивали тележки с брусками. Это настолько очевидно, что даже непонятно, почему вызывает какие-то сомнения. Это как спрашивать - почему камень падает на землю в силу сил гравитации? Просто потому, что так устроены законы вселенной!

 

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

 

Откуда сфера, если щит не коллизится? Столкновение идет по корпусу, просто урон списывается со щита.

:jerfacepalm:

Более подходящего места не нашел, а новую тему решил не создавать. Вообщем:

 

  1. Разбился об стену, пролетая ее почти параллельно. Ну почти.

  2. Стоял компенсатор и врезался не перпендикулярно стене.

  3. Диверсант, стоит белый компенсатор. Врезался в стену и разбился, урон почти 4к. Примечание: взял артефакт на скорость, т.е. моя скорость была равна 700. Видео, скриншоты логи ниже:

 

В логах вот что написано:

17:46:31.848 CMBT | Damage n/a -> FifthRom 144.19 (crash) TRUE_DAMAGE|COLLISION 17:46:31.848 CMBT | Damage n/a -> FifthRom 3853.85 (crash) TRUE_DAMAGE|COLLISION|IGNORE_DAMAGE_SCALE|IGNORE_SHIELD

Потом пробовал на той карте, беря артефакт, врезаться, максимум урона - около 1000. Но это было перпендикулярно. А тут параллельный урон, с компенсатором.

 

Кстати в том бою я побил ракзу из ЕСБ ![:P](<fileStore.core_Emoticons>/emoticons/004.png)

http://youtu.be/iPGhLqog-Vs?t=9m53s

 

По кадрово:

Момент смерти:

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

Скорее всего, вы на очень короткое время (1-2 кадра) случайно превысили максимальную скорость и так совпало, что именно в этот момент произошло столкновение. А т.к. ваша скорость в этот момент была выше (на чуть-чуть) критической, то и система восприняла это событие примерно как “столкновение при варп-прыжке”, и соответственным образом это событие обработала.

 

Не баг.