Сперва добейся (c)

топ 100 блогов war_tundra12.09.2015 2015-09-12 03-56-41 1.51.9.44 Як-9К дергаются рули высоты и направления - Летная модель и модель повреждений - War Thunder


1. Ошибка

Для начала докажем тезис о "самолеты и танки выдаются пользователю в неверном состоянии" в этом нам поможет следующее видео:

Видео снято на продакшен сервере, тест план выглядит следующим образом: выехать на Т26->Т26->БТ->Т26->БТ, в процессе произвести пару действий на каждом танке после чего самоуничтожиться и выбрать следующий, при просмотре наблюдаем за положением башни:



В результате теста обнаруживается очевидный косяк 1,3,4,5 танк выдаются нам в "нулевом" состоянии (орудие смотрит вперед, артудар готов к применению и т.д), вот 2-й явно "б/у" и наследует положение башни и таймер артудара от первого.

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

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

2. Серьезность проблемы.

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

К исправлению других косяков после возрождения типа отдельно летающего гака от корсара или шлейфов дыма за самолетами (была такая ошибка ЕМНИП при выходе мажора с посадками на брюхо) я не был причастен, но общая картина подозрительно похожа - косяки возникали исключительно после возрождения.

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

3. Что с этим делать?

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

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

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

4. Эпилог.

Видео в посте было записано практически год назад. Записывалось оно для багрепорта, который нонче безвести сгинул в пучинах форума, предъявлялось оно и А.Юдинцеву:
Сперва добейся (c) anton1

А К. Юдинцев выписывал после этого автору сего опуса RO:
Сперва добейся (c) todace
За это время частично поменялась механика (возрождений стало меньше, арт удар дают по иным правилам), но этот косяк естественно живее всех живых. Можете прямо сейчас сгонять в полигон на резервах и проверить.

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

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

Но как говориться "пи*деть, не мешки ворочать"(c) и мнимые повреждения встречаются регулярно:


24 секунда Do.217M нафиг сгорел, на иконке парашютик и отсутствует левый руль направления. А на 2.10 у него нормальная иконка и левый руль направления РЕГЕНЕРИРОВАЛ


Поэтому БАГТАНДЕР НАВСЕГДА!

Оставить комментарий

Архив записей в блогах:
Россиянам раскрыли цены на летний отдых в Турции В конце февраля летние путевки в Турцию можно приобрести за 160 тысяч рублей и более. Цены на отдых на популярном курорте раскрыли в Ассоциации туроператоров России (АТОР). По данным источника, туры в качественные отели ...
Ошеломительное видео. Я до сих пор не встречал настолько систематизированного взгляда на то, что происходит с маховиком репрессий в России. В первую очередь против элиты, до широких слоев населения реально репрессии ещё не дошли. Напомню, что в 30е годы все было точно также,сначала ...
Картинки кликабельны. Ничего не бронирую. Забирать по звонку: позвонили - нужная вещь есть в наличии - приехали, забрали. 1. Джинсы. Р-р 40-42. Вырван небольшой клочок из низа брючины. Можно подшить. 2. Джинсы. Р-р 42, серые. Есть потертости внизу одной брючины. 3. Кофточка. ...
В нынешнем сезоне осень-зима наша местность подверглась небывалому нашествию мышей. Про караул в погребе я писала, в результате я осталась без свёклы, с сильно повреждённой морковью и картошкой. После таяния снега по всей деревне, в огороде и в цветнике земля изрыта ...
11 тысяч ученых из разных стран мира объявили чрезвычайную климатическую ситуацию.  Ноябрь по праву считается одним из самых депрессивных месяцев в году. Но сегодня речь пойдет не о серьезном и опасном заболевании - депрессии, а о более тревожном состоянии, в котором оказалась ...