7.7.2017

Operation Health: диагноз – трудности с Hibana

Мы тщательно изучили случаи, когда устройство оперативника Hibana давало сбой, и устранили почти все неполадки. В обновлении 2.1.1, которое выйдет 11 июля на всех платформах, «ИКС-КАЙРОС» станет работать надежнее.

Предмет: уникальный дизайн Hibana

Перед началом Operation Health мы получили много отзывов о том, что «ИКС-КАЙРОС» оперативника Hibana иногда ведет себя непредсказуемо. Изучив причины неполадок, команда обнаружила, что проблема в самой архитектуре устройства. Требовалось переписать часть кода, отвечающего за обработку зарядов гранатомета. Мы поговорили с программистом анимации Алексом Басби, и он рассказал о том, каков был изначальный подход к механикам оперативника Hibana и как возникшие проблемы намереваются решить раз и навсегда.

Для начала вспомним, что именно делает оперативника Hibana уникальной по сравнению с остальными персонажами, а затем определим, почему подход к ее дизайну привел к появлению неполадок, с которыми вы, возможно, сталкивались. Устройство «ИКС-КАЙРОС» выпускает до шести зарядов, которые оперативник может взорвать в нужный момент. Создавая оперативника Hibana, команда имела дело с множеством одновременно активных сетевых объектов: частями телами, устройством «ИКС-КАЙРОС» и каждым зарядом в отдельности. Ни один из остальных оперативников не требовал столько внимания.

«У нас уже был опыт работы с Ash, однако случай с Hibana сложнее: есть фазы, когда можно выпустить снаряды несколько раз подряд – и не по одному; есть фазы, когда можно выпустить еще несколько снарядов, взорвать предыдущие или перезарядить устройство». – Алекс Басби, программист анимации

А что такое сетевые объекты? Чтобы события во время игры выполнялись, их нужно разбить на категории и при необходимости активировать вне очереди. Для этого различным процессам присваиваются разные приоритеты, чтобы происходящее соответствовало ожиданиям игроков. Мы называем эти приоритеты «Host» и «Local». Хронология событий каждой игры одновременно просчитывается и на сервере, и на компьютерах или консолях игроков. В случае конфликта «Host» учитывает данные с сервера, а «Local» – данные с компьютера или консоли. В целом все эти вычисления и сравнения происходят так быстро, что люди не успевают заметить нестыковки.

Проблема: расхождение между приоритетами «Host» и «Local»

С оперативником Hibana происходит множество событий, которые нужно отслеживать. Ее гранатомет сообщает серверу информацию о моменте выпуска заряда и траектории его движения. Должно учитываться положение Hibana относительно других оперативников и условия взаимодействия — стреляют ли в нее или просто видят. Нельзя забывать и о состоянии и местоположении шести зарядов «ИКС-КАЙРОС». Чтобы тщательно фиксировать все события, мы создали канал связи с сервером для каждого из этих объектов.

Однако после появления оперативника Hibana в игре стало ясно, что наши серверы не справляются с таким потоком информации. К примеру, когда гранатомет выпускал шесть зарядов, этот поток мог прерываться в виду сетевых задержек или слабого сигнала. Существовало много ситуаций, когда из-за ошибок приема информации могли возникнуть неполадки в работе устройства оперативника Hibana. Большая часть из них была связана с тем, каким процессам присваивали приоритеты «Host» и «Local».

Решение: стандартизация исходящей информации

Спустя месяцы усердной работы удалось упростить обработку информации. Для начала снизили количество сетевых объектов, которые нужно отслеживать. Благодаря этому уменьшилось число конфликтов между «Host» и «Local», в результате чего неполадки, вызванные рассинхронизацией, стали возникать реже.

«Эти изменения позволили присвоить приоритет „Host“ большему числу процессов и при этом сохранить высокую скорость связи и оперативность. Это было основной целью данного исправления. Мы устранили потенциальные неполадки и ошибки синхронизации и назначили приоритет „Host“ для большинства процессов, связанных с уникальным устройством оперативника». – Алекс Басби, программист анимации

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

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

Надеемся, нам удалось объяснить, какова природа неполадок, касающихся оперативника Hibana, и почему команде пришлось заняться ими во время программы «Operation Health».

Благодарим вас за непрерывную поддержку!

Посетите наши соцсети

twitter iconyoutube icontwitch icon