image

Quick search

Brood War is a Mystery

avatar

MiG.Silent

flag race

30

min

|

68

sup

|

0

gas
forum image

Brood War это сплошная тайна!

Человек не идеален, так же и у машин, порой, происходят сбои. В компьютерных играх их называют багами. Таким образом, после более детального разбора сборника "Brood War is a mystery part 4", все еще остаются 1, 2 и 3 части, которые мы вам сегодня и покажем:



Часть 1





Объяснение: Это просто еще одна вариация сбоя целевого переключателя.

Давайте разберём всё по порядку.

Зилот назначает ближнего марина в качестве цели и проходит через свой цикл атаки iscript (iscripts-это скрипты, кодирующие последовательность спрайтов из запускаемых событий во время анимации на кадровой основе). Для зилота это такая последовательность действий атака #1 – ожидание – атака #2 – (повторение после оставшейся перезарядки).

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

Вторая атака поражает (и убивает) второго пехотинца, потому что, проверка дальности применяется только перед началом атаки iscript, а не во время ее выполнения.



Правка: Еще один интересный пример сбоя:







Примечание: Также обратите внимание на то, что танки явно не самоуничтожаются!





Часть 2





Объяснение в данном случае довольно тривиальное. Давайте понаблюдаем за последовательностью событий:

Арбитр входит и атакует SCV, поэтому мы знаем, что он щелкнул правой кнопкой мыши и находился в состоянии атаки.

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

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



Вывод: Выдача новой команды движения слишком рано отменила выполнение. Для реколла на полпути - всегда используйте команду shift – после выдачи команды заклинания.

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





Часть 3





 



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



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





Часть 4





 



Итак, вот все, что вы никогда не хотели знать о личинках, любезно предоставленная инфа от Ankmairdor:

На SSCAIT discord он написал:

На самом деле все гораздо сложнее.

Существует массив с 4-х сторон, по одному с каждой стороны хаты (слева, сверху, справа, снизу). Каждый раз, когда возвращается урожай минералов, он вычитает 1 (если больше 0) из всех значений и добавляет 25 (если меньше 100) к стороне хаты, в которую он вернул минералы.



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



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



В противном случае каждая сторона получает два места зарождаемости, по одному на каждом конце этой стороны хаты, и процесс повторяется в такой же последовательности. Для каждой стороны сначала проверяется самая левая или самая верхняя сторона.



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



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



Трюк с личинками работает, устанавливая состояние заказа на 0, что соответствует обозначению блуждания для левой стороны инкубатория. Более конкретно, команда stop мгновенно завершает обновление заказа, которое всегда сбрасывает это состояние. Блуждание личинок никогда не заканчивается.



Ankmairdor на SSCAIT discord написал:

Если у них нет движущейся цели, личинка выбирает одну из четырёх случайных диагональных положений, чтобы блуждать в этом направлении. Если в конце этого блуждания они окажутся на расстоянии более 10 от хаты, то сразу же вернутся обратно. Для этого глюка 2 строки/столбца (могут быть только внизу) плитки должны быть схожи (Ползучесть, Инкубатор, нет ползучести):

C H H H H C

C N N N N C

В этом примере личинка может частично занимать плитки H. Таким образом, они могут перемещаться по диагонали от H до угла C над N. Хотя и они замечают плитку N только тогда, когда возвращаются к плитке H, всё равно отдаляются слишком далеко.

Ankmairdor на SSCAIT discord написал:строка 6246 в bwgame.h- это то, как ведёт себя личинка



"Я искренне надеюсь, что все ваши ответы будут подвергнуты сомнению".



А вот вам ещё несколько примеров для обсуждения того, как такое вообще может быть:



KwarK:





chillzzz:





Так отреагировали на это некоторые игроки:



KogeT: "Так вот в чем секретный ингредиент для террана! Просто удерживайте свои танки на холде, чтобы они могли удвоить дальность стрельбы".



Freaking: "Однако вам нужно иметь цель с более низким приоритетом, чем ту, которую вы хотите поразить в радиусе действия".



И в заключении продемонстрируем ещё один интересный баг:



LML:





Freaking дал этому эпизоду своё обьяснение:



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



Что к этому можно добавить?

Это может быть связано с вылезающими единицами через барьер местности от производственного здания

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

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



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

Comments

avatar Фряпсик flag race

17

min

|

5

sup

|

0

gas
19:00 27.03.2021
Круто :)
avatar Rus_Brain flag race

15190

min

|

731

sup

|

2500

gas
07:08 28.03.2021
Вообще дичь 
avatar fr)yoda flag race

259

min

|

61

sup

|

0

gas
17:01 28.03.2021
весьма занимательно 

Add a comment

Log in to post a comment

» Registration
Recommended
Vote
Svg Vector Icons : http://www.onlinewebfonts.com/icon
New users

TOP 10 minerals

50506 m

flag race

41000 m

flag race

33552 m

flag race

31529 m

flag race

28215 m

flag race

24999 m

flag race

23222 m

flag race

TOP 10 gas

last replay of the week
Country: flag vs flag
Race: Zerg vs Terran
Map: Hidden Track
map