13:41 Представление значений урона в Diablo III | |
Те, кто занимается разработкой программного обеспечения, — будь то ПО для бизнеса, развлечений или ваши любимые игры — знают: у простых задач далеко не всегда простые решения. Практически любая игра — сложный механизм, состоящий из многих тысяч взаимодействующих частей. Малейшее изменение в любой из них может вызвать непредсказуемые результаты и потребовать многих недель отладки и откатов к предыдущим сборкам. Со стороны кажется, что все очевидно: «Почему просто не исправить то-то и то-то?» Но спросите, например, булочника: почему бы не класть в тесто вместо сахара, скажем, какую-нибудь сукралозу? Ответ в обоих случаях будет один — потому что на самом деле все это совсем не просто. Итак, числа — как все это работает? В Diablo III игрок постоянно получает множество информации. Значительная часть этой информации представлена числами. Вы их видите буквально на каждом шагу. Они присутствуют в описании вашего снаряжения, в характеристиках персонажа — целые вереницы сменяющих друг друга цифр мелькают над головой вашего героя, когда вы ведете бой. И за каждым числом стоит целая сложная технология, благодаря которой оно отображается именно так, а не иначе. Первоначально мы хотели выделять цветом верхние 5% значений урона, нанесенного вашим героем за последние несколько секунд. Однако этот подход оказался не слишком удачным, поскольку существует масса вариантов развития всех классов, и каждый из них имеет свою уникальную схему распределения наносимого урона во времени. Одни специализации выдают высокие значения урона за небольшие промежутки времени, другие поддерживают более-менее стабильный постоянный урон. Кроме того, этот первоначальный подход не принимал в расчет возможные ожидаемые флуктуации урона. Например, столп силы на некоторое время значительно усиливает наносимый героем урон. Но после того как его действие закончится, игрок все равно должен получать информацию о том, что какое-то из его умений нанесло особенно высокий урон — а при таком подходе эти значения неизбежно остались бы «за кадром». Где мои миллиарды? — Трудности перевода Если вы уже играли в Diablo III после выхода последнего обновления, возможно, вы уже видели аббревиатуры в значениях урона. Многие игроки (преимущественно англоговорящая аудитория) спрашивали нас, почему мы измеряем урон в миллионах, но не используем аббревиатуру для миллиардов. Слева: отображение чисел в английской версии игры. Справа: отображение чисел в корейской версии игры. Вот пример того, как «простой» на первый взгляд перевод внезапно оказывается совсем не таким уж простым. В некоторых языках, например, испанском или французском, не существует отдельного общеупотребительного термина для «биллиона». Для обозначения этого числа вместо отдельного слова там обычно используется конструкция, которая переводится буквально как «тысяча миллионов». С точки зрения этимологии это является результатом того, что в американском и британском английском слово «биллион» постепенно обрело значение «тысяча миллионов», хотя слово это имеет французское происхождение, и изначально оно обозначало «миллион миллионов». Дополнительные сложности вносит и пунктуация. Не во всех языках в качестве разделителей в числах используются запятые. В Европе, например, распространено использование в качестве разделителей точек вместо запятых; в некоторых языках разделители не используются вообще. Слева: количество золота в корейской версии игры. Справа: количество золота во французской версии игры. Числа в Diablo III становились все более громоздкими, и мы решили ввести пунктуацию, но нам нужен был способ, позволявший корректно использовать пунктуацию во всех локализованных версиях игры. В нашем программном коде используется библиотека ICU — International Components for Unicode. Это исключительно полезный инструмент для локализации программного обеспечения. ICU имеет множество применений, но в нашем конкретном случае мы воспользовались поддерживаемой ею возможностью взять любое число и региональные стандарты (например, американский английский, французский или корейский языки) и получить на выходе число, отформатированное в полном соответствии с этими региональными стандартами (включая знаки пунктуации). Наш отдел локализации также сверяется со специальной таблицей, в которой сведена информация о том, какой формат отображения чисел принят в каждом из регионов и как должен выглядеть конечный результат. Пример одной из таких таблиц, где указано, на какой стадии происходит усечение отображаемого числа в каждом из языков. В различных локализациях аббревиатуры используются в большей или меньшей степени; преимущественно это происходит из-за культурных особенностей. Существует определенная психологическая связь между длиной отображенного значения урона и степенью удовлетворенности игрока, который видит его; здесь свою роль играют и вышеупомянутые культурные особенности, и индивидуальные особенности восприятия. Так, например, в английской версии игры мы решили не сокращать значения порядка нескольких миллионов, потому что число «1,000,000» смотрится гораздо солиднее, чем «1М». Кстати, отказавшись от аббревиатуры для биллиона (миллиарда), мы, можно сказать, одним выстрелом убили двух зайцев, поскольку, опять же, «1,000М» выглядит куда солиднее, чем всего лишь «1B». Разумеется, помимо размера отображаемых чисел мы должны были принять в расчет и ряд других факторов: визуальное представление, цвет, движение — все это очень важно. Всплывающие значения — шлифовка визуальных эффектов Для нас было очень важно сделать так, чтобы игрок, увидевший некое число, мог сразу понять, что за ним стоит и что это означает применительно к текущей обстановке. В обновлении 2.4.0 мы собирались предоставить игрокам еще больше информации о бое. Выделение значений критических ударов должно было помочь в этом. Только взгляните на этот шикарный крит! Один из способов наглядно представить эту информацию — просто использовать другой цвет. Однако мы обсуждали множество различных вариантов отображения значений особо мощных ударов. Может быть, взять более крупный шрифт? Изменить траекторию движения всплывающего значения? Задействовать эффект мерцания? Увеличить задержку перед исчезновением числа с экрана? Или же просто отображать эти числа другим цветом? Как понять, какой из этих вариантов является оптимальным? Когда речь заходит об изменении цветов в нашем интерфейсе, у наших художников есть возможность «поиграться» с тремя параметрами: тон, насыщенность и светлота. Это координаты так называемого цветового пространства HSL, общепринятого цифрового представления цветового круга. Когда мы хотим вызвать у игроков определенные эмоции или получить новую реакцию, добиться этого можно, варьируя соответствующий параметр. Нужно изменить настроение? За это отвечает тон. Если мы, например, хотим сделать какое-то изображение менее сочным, следует уменьшить насыщенность. Нужно привлечь внимание к какому-то объекту или, наоборот, отодвинуть его на задний план? Это достигается манипуляциями со светлотой. И, наконец, все вместе Когда речь заходит о команде создателей Diablo III, большинство игроков в первую очередь видит разработчиков, занимающихся балансом классов, изобретением новых предметов и реализацией в игре новых интересных возможностей. Именно эти аспекты игры находятся на виду и оказывают наибольшее влияние на игровой процесс. Однако Diablo III — это не только экипировка вашего героя, и не только умения в его арсенале. Наши художники, инженеры, локализаторы и другие специалисты проделывают огромную работу над тем, чтобы игра выглядела безукоризненно для всех наших игроков по всему миру. | |
|
Всего комментариев: 0 | |