Respawn рассказала, как баг со звуком в 16-м сезоне Apex Legends произошёл из-за одной строчки кода

Как это обычно бывает, самой сложной задачей был поиск причины.

Respawn рассказала, как баг со звуком в 16-м сезоне Apex Legends произошёл из-за одной строчки кода

Игроки давно жалуются на проблемы со звуком в Apex Legends, но в 16-м сезоне ситуация стала ещё хуже. Из-за бага часть звуков время от времени не проигрывалась, и это нередко вводило в заблуждение, когда персонаж, например, получал урон, но игрок не мог понять откуда.

Спустя несколько месяцев Respawn смогла найти проблему. На сабреддите Apex Legends разработчики написали детальный пост о том, что послужило причиной и как им удалось устранить ошибку.

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

Как оказалось, виновником была всего одна строчка кода, предназначенная для звука заряда новой винтовки, The Nemesis.

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

Это значит, что каждый игрок с незаряжённой винтовкой The Nemesis каждый кадр вызывал команду, заглушающую какой-то звуковой эффект. Это сразу же объяснило, почему проблема чаще возникает в лобби с игроками высокого уровня. Она напрямую связана с частотой кадров. 14 клиентов работающих в 180 fps с персонажем, владеющим The Nemesis, было достаточно для того, чтобы некоторые звуковые эффекты начали заглушаться.

Это также объясняет, почему проблему не заметили во внутренних тестированиях. У нас не было достаточного количества винтовок в матчах за раз, либо нам просто не хватало частоты кадров. Это то, что мы постараемся учитывать в будущих тестированиях.

из поста Respawn

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

Одна минута игроков на общих серверах Apex Legends равна 10 тестировщикам, играющим в течение года.

из поста Respawn

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

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

158158
114 комментария

Одна минута игроков на общих серверах Apex Legends равна 10 тестировщикам, играющим в течение года.

222
Ответить

Лид тестировщиков Star Wars Jedi: Survivor, когда подчиненные спрашивают сколько времени потребуется тестировать игру

82
Ответить

Работа мечты. Пинаешь хуй годами, получаешь бабки

2
Ответить

Нашлось решение этой проблемы - ограничить частоту кадров 30 кадрами! 😎
Я своего рода тоже разработчик🤠

6
Ответить

10 человеко-лет = 5 256 000 человеко-минут. Значит ли это, что в Apex Legends играют 5 миллионов человек?

Ответить

Одна минута DTFеров на общих серверах DTF равна 1 Ширяева, чинящий DTF в течении года

93
Ответить

Решают отсеять и тех калек, кто до сих пор сюда заходит.

16
Ответить