Diablo III: представление значений урона

автор

опубликовано

23/01/2016 2:02

поделиться

Комментарии

33

Diablo3_Damage_Numbers_01_header

Вам было интересно, что это за новые оранжевые цифры, вылетающие при нанесении урона после патча 2.4? Запись Blizzard Entertainment рассказывает о глубоких деталях за этим, на первый взгляд, небольшим улучшением боевого интерфейса.

Официальная цитата Blizzard (Источник)

Те, кто занимается разработкой программного обеспечения, — будь то ПО для бизнеса, развлечений или ваши любимые игры — знают: у простых задач далеко не всегда простые решения. Практически любая игра — сложный механизм, состоящий из многих тысяч взаимодействующих частей. Малейшее изменение в любой из них может вызвать непредсказуемые результаты и потребовать многих недель отладки и откатов к предыдущим сборкам. Со стороны кажется, что все очевидно: «Почему просто не исправить то-то и то-то?» Но спросите, например, булочника: почему бы не класть в тесто вместо сахара, скажем, какую-нибудь сукралозу? Ответ в обоих случаях будет один — потому что на самом деле все это совсем не просто.

Итак, числа — как все это работает?

В Diablo III игрок постоянно получает множество информации. Значительная часть этой информации представлена числами. Вы их видите буквально на каждом шагу. Они присутствуют в описании вашего снаряжения, в характеристиках персонажа — целые вереницы сменяющих друг друга цифр мелькают над головой вашего героя, когда вы ведете бой. И за каждым числом стоит целая сложная технология, благодаря которой оно отображается именно так, а не иначе.

Многие игроки в своих комментариях жаловались на то, что всплывающие значения урона слишком громоздки, и в динамичном бою их сложно воспринимать. Раньше игроки радовались «большим числам», поскольку те действительно выделялись на фоне остальных. Как же сохранить эту эмоциональную составляющую, при этом не создав у игроков ощущения, что их герой стал слабее?

В обновлении 2.4.0 появилось несколько новых возможностей, которые должны были решить эту задачу. Во-первых, в настройках игры теперь можно выбрать режим отображения значений урона в сокращенном формате с использованием аббревиатур. Во-вторых, теперь самые высокие значения урона отображаются другим цветом и сразу привлекают к себе внимание. Каждое из этих нововведений в реализации оказалось далеко не таким уж и простым: многие варианты были не слишком удачными с точки зрения игрового дизайна; от нас требовалось учитывать все тонкости, связанные с локализацией, ну и, разумеется, итоговый результат должен был быть приятен глазу.

Diablo3_Damage_Numbers_02_th

Первоначально мы хотели выделять цветом верхние 5% значений урона, нанесенного вашим героем за последние несколько секунд. Однако этот подход оказался не слишком удачным, поскольку существует масса вариантов развития всех классов, и каждый из них имеет свою уникальную схему распределения наносимого урона во времени. Одни специализации выдают высокие значения урона за небольшие промежутки времени, другие поддерживают более-менее стабильный постоянный урон. Кроме того, этот первоначальный подход не принимал в расчет возможные ожидаемые флуктуации урона. Например, столп силы на некоторое время значительно усиливает наносимый героем урон. Но после того как его действие закончится, игрок все равно должен получать информацию о том, что какое-то из его умений нанесло особенно высокий урон — а при таком подходе эти значения неизбежно остались бы «за кадром».

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

  • Значения урона должны превышать 10000 единиц.
  • Если значение урона, которое должно быть отображено, превышает предыдущее «оранжевое» значение, новое значение также отображается оранжевым цветом.
  • Самое большое значение урона в памяти системы каждую секунду теряет 3% от своей величины.
    • Это уменьшает вероятность возникновения ситуации, когда вы на протяжении длительного промежутка времени не видите выделенных высоких значений урона.
  • Первые 10 высоких значений урона сбрасываются.
    • Это позволяет системе осуществить автокалибровку.
  • Если в течение 10 секунд герой не нанес урона, система возвращает все в исходное состояние.

Где мои миллиарды? — Трудности перевода

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

Тому есть несколько причин, но основная из них — тонкости локализации. Diablo III — это глобальный феномен; игра издается на 13 различных языках, поэтому, когда мы принимаем решение в области дизайна, которое как-то затрагивает написание любого слова (а в данном случае формат отображения чисел), мы должны четко представлять себе, как это изменение будет выглядеть во всех версиях игры. И если вы думаете, что нет ничего проще, чем переводить числа на другие языки, то вы глубоко заблуждаетесь.

Diablo3_Damage_Numbers_03_th Diablo3_Damage_Numbers_04_th

Слева: отображение чисел в английской версии игры. Справа: отображение чисел в корейской версии игры.

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

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

Дополнительные сложности вносит и пунктуация. Не во всех языках в качестве разделителей в числах используются запятые. В Европе, например, распространено использование в качестве разделителей точек вместо запятых; в некоторых языках разделители не используются вообще.

Diablo3_Damage_Numbers_05_Korea_th Diablo3_Damage_Numbers_06_France_th

Слева: количество золота в корейской версии игры. Справа: количество золота во французской версии игры.

Числа в Diablo III становились все более громоздкими, и мы решили ввести пунктуацию, но нам нужен был способ, позволявший корректно использовать пунктуацию во всех локализованных версиях игры. В нашем программном коде используется библиотека ICU — International Components for Unicode. Это исключительно полезный инструмент для локализации программного обеспечения. ICU имеет множество применений, но в нашем конкретном случае мы воспользовались поддерживаемой ею возможностью взять любое число и региональные стандарты (например, американский английский, французский или корейский языки) и получить на выходе число, отформатированное в полном соответствии с этими региональными стандартами (включая знаки пунктуации). Наш отдел локализации также сверяется со специальной таблицей, в которой сведена информация о том, какой формат отображения чисел принят в каждом из регионов и как должен выглядеть конечный результат.

Diablo3_Damage_Numbers_07_Index

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

В различных локализациях аббревиатуры используются в большей или меньшей степени; преимущественно это происходит из-за культурных особенностей. Существует определенная психологическая связь между длиной отображенного значения урона и степенью удовлетворенности игрока, который видит его; здесь свою роль играют и вышеупомянутые культурные особенности, и индивидуальные особенности восприятия. Так, например, в английской версии игры мы решили не сокращать значения порядка нескольких миллионов, потому что число «1,000,000» смотрится гораздо солиднее, чем «1М». Кстати, отказавшись от аббревиатуры для биллиона (миллиарда), мы, можно сказать, одним выстрелом убили двух зайцев, поскольку, опять же, «1,000М» выглядит куда солиднее, чем всего лишь «1B». Разумеется, помимо размера отображаемых чисел мы должны были принять в расчет и ряд других факторов: визуальное представление, цвет, движение — все это очень важно.

Всплывающие значения — шлифовка визуальных эффектов

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

Diablo3_Damage_Numbers_08_Crit_th

Только взгляните на этот шикарный крит!

Один из способов наглядно представить эту информацию — просто использовать другой цвет. Однако мы обсуждали множество различных вариантов отображения значений особо мощных ударов. Может быть, взять более крупный шрифт? Изменить траекторию движения всплывающего значения? Задействовать эффект мерцания? Увеличить задержку перед исчезновением числа с экрана? Или же просто отображать эти числа другим цветом? Как понять, какой из этих вариантов является оптимальным?

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

Кроме того, этот подход учитывает особенности восприятия зрительной информации людьми с нарушениями цветового зрения. На цветовом круге оранжевый цвет расположен отдельно от других цветов, задействованных нами в данный момент для передачи информации. Так что даже игроки, страдающие нарушениями цветового зрения, обратят внимание на новые «большие числа»!

Diablo3_Damage_Numbers_09_ColorWheel_th

Когда речь заходит об изменении цветов в нашем интерфейсе, у наших художников есть возможность «поиграться» с тремя параметрами: тон, насыщенность и светлота. Это координаты так называемого цветового пространства HSL, общепринятого цифрового представления цветового круга. Когда мы хотим вызвать у игроков определенные эмоции или получить новую реакцию, добиться этого можно, варьируя соответствующий параметр. Нужно изменить настроение? За это отвечает тон. Если мы, например, хотим сделать какое-то изображение менее сочным, следует уменьшить насыщенность. Нужно привлечь внимание к какому-то объекту или, наоборот, отодвинуть его на задний план? Это достигается манипуляциями со светлотой.

Например, количество получаемого вами лечения является очень важной информацией. Лечение — это, по сути, ваша жизнь, и мы хотели сделать эту информацию максимально наглядной. Именно поэтому для ее передачи мы задействовали яркие цвета. В случае с критическими ударами мы решили использовать тот же подход, поэтому много экспериментировали с уровнями светлоты для уверенности в том, что игроки не пропустят момент нанесения пикового урона.

И, наконец, все вместе

Когда речь заходит о команде создателей Diablo III, большинство игроков в первую очередь видит разработчиков, занимающихся балансом классов, изобретением новых предметов и реализацией в игре новых интересных возможностей. Именно эти аспекты игры находятся на виду и оказывают наибольшее влияние на игровой процесс. Однако Diablo III — это не только экипировка вашего героя, и не только умения в его арсенале. Наши художники, инженеры, локализаторы и другие специалисты проделывают огромную работу над тем, чтобы игра выглядела безукоризненно для всех наших игроков по всему миру.

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

  • Имя Настоящее

    Когда-то Близзард просто хотела делать крутые игры. А теперь… Нам рассказывают про Юникод и кааак сложно подписать циферку. Может и сложно. Но как-то грустно, что, видимо, более рассказать не о чем.

    • Почему бы не рассказать о разном. Теперь — нердовское вдавание в детали.

    • Unplayed

      Не нам. Изначально блог был направлен североамериканцам из САСШ, которые удивлялись отсутствию в игре САСШ-версии биллиона. На что им сначала заявили, что их биллион никудышний по сравнению с европейским, и потом вообще намекнули про Азию, и только потом уже разродились стеной текста. И во всём виноват североамериканский менталитет подростков из САСШ.

      Кстати, в табличке меня удивило сокращение «12345» в «12,3» для нашего клиента. Они точно буковку «х» забыли…

  • В GD разделение по цвету крита было изначально, а тут это целая фича. И да, как и в случае с ВоВ, урон в миллионах/миллиардах это лицоладонь.

    • Unplayed

      Криты изначально были жёлтыми. Теперь же про нововвведённое оранжевое и прочее красивое написали %)

      Хотя мне бы понравилось не двух-трёхцветие, а плавный цвет от серого у самых слабых ударов и далее через белый-жёлтый-оранжевый-красный-пурпурный к самым-самым. Ну и эффекты по области вокруг перса при огогогошных ударов.

      • Arching

        тут вам не корейская гриндилка, а американская)))))))

  • ZaryaDva

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

    • BATYA

      В новом аддоне, в вове то уже пофиксили.

    • Huk

      В идл играх уже давно введены буковки, вместо циферок для чисел до 180 степени включительно.

    • Vegas

      Выключаем числовые значения в игре.
      Радуемся.

  • serg

    Лучше бы рассказали о сете призывателя и урону по области. До сих пор никто не знает, работает ли урон по области с этим сетом. На английском форуме пишут, что даже физурон не увеличивает урон от шипов… А близзы расписывают механику отображения урона. Нет слов!

    • «На английском форуме пишут, что даже физурон не увеличивает урон от шипов…»

      Должен. Вот здесь часть про механику (откройте твит полностью, там в ответах еще): https://twitter.com/candlesan/status/664555835960332288

      Если не увеличивает, тогда это баг.

      • serg

        Смотрел видео, где круз стоит возле моба, которые его бьет… что с физуроном, что без него от шипов вылетает один и тот же урон. Может если с руки бить, то урон увеличивается… Но суть моего поста была в том, что механику никто толком не знает… одни догадки. И гребанные близзы могли бы эту ситуацию прояснить.

        • Именно про изнанку игры, брекпоинты, diminishing return, отмену анимации ( http://glasscannon.ru/2016/01/diablo-iii-obzor-blyupostov-ot-14-01-16/ ) и прочие снапшоттинги ( http://glasscannon.ru/2015/11/diablo-iii-ptr-2-4-slovo-o-snepshottinge/ ) как видите, не объясняют на главной странице, где большинство читающих это простых игроков и не поймет, о чем речь. Зато отвечают на форумах и reddit, которые посещают уже более опытные игроки.

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

          Неизвестно взаимодействие шипов и AD? Кто-нибудь выяснит и получит внимание. Нет — так и останется это неизвестным параметром, но уже для всех.

  • ViD

    Что не говори, а близы знатные тролли. Пихать в блог скрин багнутых мобов -эпик (со старта не фиксят). Кто не в курсе- петы не наносят им урон. :Mosquerapeka:

    гифка 2.4метра
    https://gfycat.com/AgedFluidEuropeanfiresalamander

  • Когда больше нечем похвалиться…
    Очень грустно за близзард и некогда любимую игру.

    • А здесь кто-то чем-то хвалится? Рассказывают о процессе и деталях, о которых снаружи можно и не узнать.

  • blazan

    Почему-то народ читая подобные статьи считает, будто их выдают за великое достижение. Хотя им показывают лишь кухню — этими статьями занимаются не разработчики. То чем на самом деле занимаются разработчики вам не покажут.

    С одной стороны мы ждём новостей, но с другой стороны «дуракам полработы не показывают».

  • Увидел статью — обрадовался, Щас я пойму что за цыфири у меня выскакивают!! Прочитал и остался в том же недоумении что и был. Что больше 7234К или 27.5М?
    Ну про то что красные самые крутые то это я понял. Кстать поймать взглядом красный крит в суматохе битвы также трудно как и раньше. Так что нововведение особо не помогло. А вот идеи по измененному поведению красного крита пришлись бы мне по душе (пусть хотя бы висел 2 секунды) .

    • «И главный вопрос млрд как отображается то?»

      Наконец заметил: 1114М

    • Suh

      не прогуливал бы школу, знал бы, что 7 234 000 < 27 500 000

    • Жыраф

      Только после вашего камента понял, что красные — это криты. Я думал, это урон по мне, и никак не мог разглядеть цифры, какие-то они тонкие. Ну и зрение у меня не очень((

  • «Когда речь заходит об изменении цветов в нашем интерфейсе, у наших художников есть возможность «поиграться» с тремя параметрами: тон, насыщенность и светлота. »

    Видимо, с новой сезонной рамком переигрались)

    • Переигрались со светотой %)

  • Изначально радовала идея сокращения цифр, но поиграв, лично я снял галку и вернул огромные цифры, в массовых замесах они виднее и читабельнее, на мой вкус

    • Просто привычнее уже за столько времени глазу.

  • Госпади вот это революция в геймдизайне! А что статья маленькая такая? Я бы книгу издал об этом прорывном событии не только в видеоиграх, но и вообще в современной науке и даже философии!

    • Dunadan_777

      ))))))))

  • Хочу, чтобы мне в зарплату оранжевые цифры выскакивали. А то всё серые какие-то…

  • Arcane

    Да. Это очень серьезное дело. Я думал, что у шахтеров самая тяжелая работа.

  • Kva3imoda

    Сначала сделаем кривой геймдизайн с миллиардами урона, потом начнем героическую борьбу с этим! Ну, лишь бы цвета радуги и буквы алфавита не закончились после второго аддона. =D

  • Dunadan_777

    Спасибо за статью! но вопросы все равно остаются, ощущение что красные просто вылетают вне системы, рандомно. Желтые бывают летят больше красных, хотя по логике они должны быть красные %)