Pull to refresh

Comments 101

UFO just landed and posted this here
<зануда stat="on">Мой дед называл этот анекдот бородатым.</зануда>
UFO just landed and posted this here
И что? найдутся те, кто читает впервые.
«И что дед таки разбился? Не он задолбал прыгать туда-сюда, пристрелили нафиг»
Вот интересно. Вы реверс-инжинирингом смогли выловить и пофиксить баг. Неужели при всех нынешних мощнейших средствах отладки разработчики игры не могут докопаться до этой проблемы самостоятельно уже несколько лет (Origins вышел в 2013ом). Противная же проблема, играть мешает жутко.
UFO just landed and posted this here
Средства отладки со временем становятся только хуже. В релизе из-за все более умного компилятора дебаггер показывает что угодно, но только не значения переменных и не ту строку, которая сейчас исполняется. В дебаге, программа просто работает в 100 раз медленнее и нужно очень долго ждать загрузки (да и удастся ли вообще повторить баг при паре fps?).

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

Каждое исправление плохо воспроизводимого бага — это мини-подвиг.

По разному 1000 раз прыгнуть с крыши — это работа отдела тестирования. Можно и автоматизировать, если баг есть.
По поводу низкого FPS в дебаге — ну, вы не правы. При нормальном подходе можно и тестовую сцену собрать, которая FPS не будет садить и даст проверить физику. В общем — проблема не в средствах отладки, а в лени и жадности — скорее выпустить продукт, не потратив времени и денег на толковых специалистов.
А при чём тут средства отладки? Это коммерческий продукт: купоны сострижены, никто больше никому ничего не должен, разработчики заняты N+1 игрой.
Ну а что вы хотите? Вот я вчера акриловую ванну устанавливал… с ней крепления шли родные. Знаете, сколько там багов?

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

Вобщем, вместо прогнозируемого 1 часа потратил 4

Это наводит на мысли, что проблема не в технологиях, а всё же в людях, а именно, в организации производства продукта.
Владелец фирмы вовсе не заботится о качестве продукта, который его фирма производит. Видимо, прибыль есть и им этого достаточно.
Думаю потому что у них в голове сотни других конструкций до которых еще никто из третьих лиц не дошел.
Ссылку на пост им в саппорт кинуть, исправят утверждениями.
А вы думаете у них больше тасков нет? Есть процесс разработки, и никто не даст вам времени сидеть и ковыряться с багом который всплывает иногда, при опреределенных обстоятельствах, не факт что эти обстоятельства нашли и определили. Возможно у них этот баг висит в багтрекере, но до него еще руки не дошли.
В играх от 3-го лица мышку лучше вообще не трогать — для них есть геймпад.
минусуют те, кто не смог купить геймпад. зря. они недорогие — а удовольствие от игры несравнимо другое.
вы просто в GTA: Vice City не играли ;)
Не играл. Играл в 4-ю часть. Геймпад отложил и играл мышью. Это же шутер. А прицеливаться удобнее мышью.
А вот Ведьмак, серия AC, серия Arkham, файтинги — это не шутеры, быстрое прицеливание не нужно — зато нужно быстрое движение персонажа и быстрое нажатие кропок. Мышь преимуществ не даёт, а у клавиатуры преимуществ вообще нет.

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

А в такие игры как Ori или Super Meatboy вообще почти невозможно без пада играть, о чём честно предупреждают.
Кстати в AC преимущество джойстика заметно больше всего — возможность прыгать с места в любую сторону, независимо от направления взгляда, на клавиатуре вообще не воспроизводима

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

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

Кроме того на геймпаде можно играть откинувшись в кресле — это огромный плюс.
Кстати описанный баг не проявляется при игре с геймпадом. По крайней мере за 20 часов игры я с ним не сталкивался.
Играю на геймпаде только в фут сим и гоночки, больше ни на что он не пригоден. Мне не в кайф играть с автоприцелом.
Любопытство разобрало — а что такое фут сим? Не нашел в поисковике.
Футбольные симуляторы, наверное.
Симулятор ступни (англ. foot simulator). Правым стиком двигаете правую ступню, левым — левую. На кнопки — шевеление пальцами. При наступании на детальку от лего геймпад вибрирует.
Главная задача, провести Мизинец (не тот, что Петир Бейлиш) среди полного опасностей мира Мебели.
Коллега, мы изобрели новый жанр!
Я бы на вашем месте перестраховался и сначала бы выложил готовую игру в Стим. Представляете как бы она была популярна у летсплееров на ютюбе :D
Автоприцела в бенмене нет.
Ну у меня есть два геймпада, они и правда недорогие. В файтинги/Trine с женой или другом поиграть, например.
Но я все равно играю почти во все игры с мыши и клавиатуры. Даже в некоторые файтинги! Лично мне гораздо удобнее управляться таким образом. Но я не кричу на каждом углу «Вы меня минусуете, потому что не можете купить нормальную клаву/мышь/геймпад/руль/джойстик».
Когда у меня временно не было своего места для компьютера, меня спас длинный HDMI кабель, телевизор и Dual Shock 4. С ними я прошел GTA 4 и Fallout: New Vegas прямо сидя на диване :-) Свои плюсы есть. Конечно, есть игры, где намного больше удовольствия с клавиатурой и мышью (с джойстиком там просто будет мучение).
Удовольствия от мыши, может, и правда меньше — но в начале каждого третьего прохождения игры на ютубе я слышу фразу: «в этот раз я играю с геймпада, поэтому в игре могу тупить, не обращайте внимания».

Конечно, это дело привычки — но новые игры выходят регулярно, перепроходить их, как правило, не интересно, — и у каждой свое управление. Если для клавиатуры WASD уже стандарт — то назначение стиков геймпада каждая игра понимает по-своему.
А в каких играх от 3-его лица назначение стиков отличается от «левым ходить, правым смотреть» — не подскажете?
Есть игры от третьего лица в которых мышь необходима. Взять хотя бы StarConflict с его догфайтами в кучах астероидов.
И да, спасибо за минусовую карму. Все мои публикации на хабре распубликованы. Они не пропадут, перенесу в другое место.
Да уж, система «саморегулирования» Хабра как всегда «на высоте». Я, скажем честно, тоже не согласен с вашим мнением насчет игровых контроллеров, но за что тут сливать карму — вообще не понимаю. Ну, немного заносчиво высказались, ну подумаешь — немного же. Без какой-нибудь ругани или там истерики или политических высказываний. Зачем вам минуса в карму отправлять — хоть убей, не пойму, как не пойму и в чем тут положительный эффект системы «саморегулирования».
Что бы убирать неугодных, если ты думаешь не так как все, то тебя сольют, что бы ты не высказывал своего мнения.
В других местах с доводами о том, что для многих игр контроллер подходит лучше, чем клавиатура, охотно согласятся.
Карма была слита за оскорбления. Мне вот, к примеру, неприятно читать, будто бы я просто «не смог» купить геймпад. А для кого-то это может оказаться и вовсе больным местом…
На тот момент мой первый нейтральный комментарий про геймпад уже набрал -20
Потому что он написан в пассивно-агрессивной манере и касается вкусовщины. А о вкусах, как правило, спорить нет никакого смысла.
для того кто реально не может по причине крайней бедности — у меня есть логитековский клон контроллера xbox 360, готов подарить.
По-моему, для выражения мысли «мне не нравится ваше мнение» нужно использовать минусы на комментарии. И автору коммента будет понятно, что его мнение как минимум не находит общественной поддержки, и из общественной жизни Хабра он за это мнение не «выключится».
«Выключать» хабрапользователя надо за оголтелую неадекватность и прямые оскорбления.
Иначе все это похоже на систему доносов при тоталитарном государстве. «Мне не нравится мнение соседа — пусть его посадят с глаз долой».
Пост про высший пилотаж — правку гейзенбага без исходников, зачем тут комменты «минусуют те, кто не смог купить геймпад»?
Здесь вообще не место холивару геймпад/клава, тем более в таком тоне.
Ну и мне на хабре тоже не место — так решило сообщество, поэтому мои публикации, добавленные в избранное тысячами человек, и имеющие больше сотни тысяч просмотров (я не хвалюсь, это просто статистика), переезжают в другое место.

Этого бага при игре на геймпадах нет.
… к вопросу о том, что все что не лежит у вас на жестком диске — может пропасть…
Обычно любят утверждать противоположное — что из интернета ничего нельзя удалить.
Из интернета и правда ничего нельзя удалить — если ставить целью именно удаление некоторой информации из всего интернета.

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

Мне кажется, что это не самый удачный вариант. Прямая обратная реакция в этом случае неуместна.
Более правильным был бы подсчет «индекса мизантропии». И учет этого индекса при начислении баллов кармы.
Другими словами: чем больше ты минусуешь — тем меньше ты сам получишь от чужих плюсов в свою карму.
В этом случае нет прямой зависимости от конкретного действия. Ведь минусы бывают вполне оправданными. Но есть глобальное воздействие если ты склонен минусовать постоянно.
На мой взгляд, очень даже уместна. Минусить человеку карму, это плохо, это демотивирует человека, портит ему настроение и лишает возможности и желания общаться через комментарии. Проблема в том что хаюроюзеры в целом не понимают, что минус в карму это последнее дело и его надо ставить, когда вы для себя решили что человек мудак и вы тут его не хотите видеть. Часто бывает что у человека и статьи есть и комменты в целом положительные и все равно ему сливают карму за один комментарий, как вышестоящему товарищу, просто потому что этот комментарий не понравился или просто следуя тупому стадному инстинкту. Хотя если не понравился комментарий, нужно ставить минус комментарию.
В результате, надо 100 раз подумать прежде писать комментарий, который не следует общему мнению, даже если ты положительный товарищ с положительной оценкой комментариям и статьям, так как тебя легко могут слить в большой минус вот такие вот не сознательные или в комплексом вахтера.
мде, сочувствую нужно скопипастить ваши статьи на всякий, а то тут куча народа толкового уже свалила или ушла в инактив(не пишут статей) а если еще и статьи удалять начнут нахрен этот хабр вообще тогда нужен, особенно доставляет как ребят минусуют на -70 в статьях про политику
Да я уже скопипастил, см. в профиль
В профиле написано «В связи с», но где же эта связь?
Ага. Лучше бы сами статьи про политику так же минусовали…
Все мои публикации на хабре распубликованы.

Тут вы тоже не правы. Например, я не могу поставить вам плюс в карму для компенсации минусов за неудачный комментарий, потому что плюсование кармы пользователей без опубликованный статей невозможно.
Окей, одну запубликую обратно. :)
А вот минусованию вижу это не помеха, карма ещё просела.

Такой режим саморегуляции Аристотель называл охлократией.

И да, слова насчёт недорогих геймпадов беру обратно, заказал вчера за 3000 р. контроллер Xbox One, недорогим он мне не показался.
Геймпады пригодны только для платформеров и файтингов, во все остальное играть мучительно больно.
С данным багом не сталкивался(сейчас прохожу ее), но фризы при загрузке мира заметны очень :)
Может разработчикам написать? Хотя проигнорируют скорее всего, но вдруг.
Я думаю, что если, как пишет автор, игру сняли в продаж, то тех разработчиков там уже может и не быть.
Нее.Они выпустили ее летом. Из-за багов сняли с продаж. Сейчас делаю патч. Как сделают, тогда снова выпустят в продажу. Они же еще дополнения делать будут. Там season pass есть даже.
Со стороны действия в статье похожи на магию. Очень интересно, спасибо!
PS. На PS4 с багом действительно ни разу не сталкивался
Очень занимательно, спасибо!
Можно предположить, что в мире игры очень много состояния, и какие-то области памяти содержат значения, которые в разное время растут и убывают. Сильно мешали подобные значения при поиске скорости персонажа? Или прием с «увеличили, потом уменьшили» отсек большинство мусора?
Верно. Даже после 2-3 циклов «увеличили-уменьшили» осталось несколько сотен значений, и все они синхронно меняются со скоростью. Для поиска единственного правильного существуют и другие методики, типа наблюдения за ними в реальном времени, отсечения заведомо неправильных, перебор в конце концов.
Мда, «эффективный» менеджмент Warner Bros запарывает уже вторую игру о бэтмене из пока лучшей серии.
Не знаю, уместно ли здесь такое, но все же..
Я понял, нужно было написать «Снимаю шляпу»
Снимаю шляпу. Патчить физику на уровне ассемблера… просто нет слов.
Снимаю шляпу, очень сильно. При прочтении создавалось впечатление поиска иголки в стоге сена. Впрочем, так оно и есть.
UFO just landed and posted this here
Статья крутая! Проясните, пожалуйста пару моментов.
Это оказалась середина длиннющей подпрограммы, почти наполовину состоящей из вычислений с плавающей точкой. Видимо это и есть код, полностью определяющий весь полёт Бэтмена. Начнём потихоньку его изучать. Как нам сообщил отладчик, скорость изменяется при выполнении команд, выделенных зеленым, значит она содержится в [rdi+0000144C], а перед этим вычисляется в регистре xmm8 (выделено красным).

Как вы сходу определили что нужные инструкции лежат по адресам 56F5CD и 56F5DD? а например не по 56F5E8? Или сходу — это только в статье, а на самом деле после отладки?
Как исправить ошибку? Например, для Arkham Knight перед вычислением корня добавим команду «maxps xmm2,xmm9» (максимум), так как в xmm9 у нас ноль, результат всегда будет положительным. Для Origins используем команду «fabs» (модуль). Запускаем игру и убеждаемся, что глюков больше нет: Бэтмен не дёргается, а летит куда нужно.

А что лежит в xmm9? Почему вы уверены что там всегда 0? Или это регистр вообще не используется?

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

2. Немного ранее если посмотреть по коду в xmm9 заносится 0. Я конечно не могу быть полностью уверенным, что каким-нибудь условным переходом мы не попадём сюда с другим значением в xmm9, но если это случится, можно будет исправить ;)
Этот труд стоит того чтобы перевести и ткнуть носом издателей\разработчиков. Пользы для общества с рускоязычной статьи почти что 0, а вот такая же на реддите или блоке cynical brit'a может сильно изменить доверие к предзаказам громикх AAA игр вообще и к студии-разработчику в частности. Используя аргументы воде «вот, тут человек без исходников понял что происходит», а эти ребята до сих пор бананы пинают… А тут может и издатель подтянется, мол «а мы и не знали» :)
UFO just landed and posted this here
Согласно российскому законодательству это весьма спорный пункт, разве нет? Статья 1280 ГК РФ. Особенно в случае, если лицензия приобретена а) законно б) указанный баг нарушает функционал продукта.
В России можно. Законодательство прямо разрешает :)
Во Франции право расковыривания программ превыше любого соглашения и зашито в законе. Поэтому компания, которая работает во Франции должна это учитывать.
Это актуально в том случае, если копия у автора — лицензионная :)))
Ибо если автор принял лицензионное соглашение — то вы правы. Если нет — то это уже другая статья :)
Пункты лицензионного соглашения противоречащие законодательству — ничтожны =)
Вот у меня, пока я читал статью, в голове звучал вопрос. Почему же чудесная компания, выпускающая этот чудесный продукт, не наймет толковых людей? Таких как автор статьи.
так им и платить надо толково…
Потому что им нужно штамповать больше одинаковых игр, а не баги править.
Только теперь это оказалась не мышь, а сам Бэтмен
В этом месте на секунду случился когнитивный диссонанс =)

Отличная статья, спасибо!
Шикарно!
Если не секрет, сколько времени у вас примерно ушло, чтобы обнаружить и пофиксить баг?
Это происходило в течение нескольких дней, поэтому трудно сказать. Где-то 5-10 часов. Я тут очень кратко всё описал, в основном удачные моменты. Если рассказать о всех фейлах, которые были в процессе поиска, возможно, будет даже интереснее. Это было действительно похоже на детектив. Например, я записывал видео со множеством полётов, и потом анализировал запись, пытаясь определить, при каких условиях появляется баг. Много времени ушло на то, чтобы докопаться до смысла вычислений. Чтобы можно было не просто написать «я тут нашёл, они берут корень из отрицательного числа», а что именно они делают, и почему.
Вот это вот всё что Вы проделали, это для меня кажется чем-то из разряда квантовой хромодинамики и теории струн. Браво брависсимо!
Статья на 5. Особенно порадовал не столько сам поиск ошибки, но и записанные ролики с помежуточными результатами.
А бесконечный полет бэтмена — так вообще заглядение!
Ну что, ура! :)
Our October patch was focused on a large number of functional and stability-related bug fixes, including issues reported by the community. Outside of adding PC support for the Season Pass DLC & Photo Mode features, the following noteworthy PC bugs were addressed:

Fixed a bug where Batman’s glide would glitch causing him to flip upside down due to negative numbers in glide speed calculations – shout out to uns3en and ID_Daemon
...
Sign up to leave a comment.

Articles