Respawn рассказала, как баг со звуком в 16-м сезоне Apex Legends произошёл из-за одной строчки кода
Как это обычно бывает, самой сложной задачей был поиск причины.
Игроки давно жалуются на проблемы со звуком в Apex Legends, но в 16-м сезоне ситуация стала ещё хуже. Из-за бага часть звуков время от времени не проигрывалась, и это нередко вводило в заблуждение, когда персонаж, например, получал урон, но игрок не мог понять откуда.
Спустя несколько месяцев Respawn смогла найти проблему. На сабреддите Apex Legends разработчики написали детальный пост о том, что послужило причиной и как им удалось устранить ошибку.
Как и со всеми багами, сразу же взяться за устранение нельзя. Сначала нужно определить, какая из систем вызывает ошибку, попытаться воспроизвести её, и уже потом приступить к решению проблемы.
Как оказалось, виновником была всего одна строчка кода, предназначенная для звука заряда новой винтовки, The Nemesis.
Каждый раз, когда сервер получает сигнал от игрока с этим оружием, используется эта строчка кода. Игроки отправляют сигнал каждый кадр, который воспроизводится на стороне их клиента, и задача сервера считывать все эти вводы со стороны игрока.
Это значит, что каждый игрок с незаряжённой винтовкой The Nemesis каждый кадр вызывал команду, заглушающую какой-то звуковой эффект. Это сразу же объяснило, почему проблема чаще возникает в лобби с игроками высокого уровня. Она напрямую связана с частотой кадров. 14 клиентов работающих в 180 fps с персонажем, владеющим The Nemesis, было достаточно для того, чтобы некоторые звуковые эффекты начали заглушаться.
Это также объясняет, почему проблему не заметили во внутренних тестированиях. У нас не было достаточного количества винтовок в матчах за раз, либо нам просто не хватало частоты кадров. Это то, что мы постараемся учитывать в будущих тестированиях.
Respawn отметила, что это яркий пример того, как игрокам может быть проще найти проблему из-за своего количества.
Одна минута игроков на общих серверах Apex Legends равна 10 тестировщикам, играющим в течение года.
В комментариях к посту игроки поблагодарили Respawn за максимально прозрачный и детальный разбор проблемы.
Студия говорит, что уже выпустила фикс, однако она продолжает наблюдать на случай, если проблема вернётся.
Одна минута игроков на общих серверах Apex Legends равна 10 тестировщикам, играющим в течение года.
Лид тестировщиков Star Wars Jedi: Survivor, когда подчиненные спрашивают сколько времени потребуется тестировать игру
Работа мечты. Пинаешь хуй годами, получаешь бабки
Нашлось решение этой проблемы - ограничить частоту кадров 30 кадрами! 😎
Я своего рода тоже разработчик🤠
10 человеко-лет = 5 256 000 человеко-минут. Значит ли это, что в Apex Legends играют 5 миллионов человек?
Одна минута DTFеров на общих серверах DTF равна 1 Ширяева, чинящий DTF в течении года
Решают отсеять и тех калек, кто до сих пор сюда заходит.