Наш опыт разработки шрифтов и локализации игры

Привет всем! Хочется немного поделиться своим опытом по части разработки, интеграции шрифта и локализации нашей игры, которую мы разрабатываем на Unity.

Поиски бесплатного шрифта

Месяцев 7 назад мне пришлось работать над шрифтом. Ранее не доводилось работать со шрифтами (в шрифтах не специалист), так что создавал всё путем поиска наиболее подходящих, на мой взгляд, образцов. За основу нашего шрифта был взят шрифт, которым написано слово "МОЛОКО":

Наш опыт разработки шрифтов и локализации игры

Далее проводились бесконечные попытки начертания глифов в тетради в клетку и их перенос в растровый формат. Перенос глифов в растровый формат - это моя большая ошибка. Правильнее было бы сразу все делать в векторе. Ниже прилагаю сохранившийся материал из процесса работы над некоторыми глифами (первые наброски):

Наш опыт разработки шрифтов и локализации игры

Финальные тесты в Unity:

Наш опыт разработки шрифтов и локализации игры

Перенос шрифта с бумаги в png-файл:

Наш опыт разработки шрифтов и локализации игры

Пример стилизованного символа "Q" :

Наш опыт разработки шрифтов и локализации игры

Так выглядят текстуры наших финальных кириллических и латинских глифов/символов (растровый вариант):

Поддержка языков, проблемы

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

Разработка шрифта стала для меня большим проектом. Кроме разработки и переноса шрифта в старой системе шрифтов Unity, нужно было вручную разметить участки текстуры, которые отвечали за символы:

Наш опыт разработки шрифтов и локализации игры

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

Позже выяснилось, что ручной подход настройки отображения шрифтов изначально был негибким, не учитывали кучу особенностей символов. Основная особенность - в разных алфавитах разное количество букв. А ещё бывают весьма экзотические буквы, которые либо значительно сокращают место на карте текстуры шрифта, либо требуют особой настройки отображения из-за отличающихся габаритных размеров. Например, лигатуры и "умлауты (umlauts)":

Наш опыт разработки шрифтов и локализации игры
Наш опыт разработки шрифтов и локализации игры

Лигатуры - это символы, которые состоят из нескольких склеенных символов (как на рис. выше).

К счастью, в Unity появился бесплатный TextMesh Pro. Это очень хороший плагин, который автоматизирует процесс переноса шрифтов из ttf-формата в текстуру с настроенными параметрами отображения. Часы работы по настройке отображения каждого глифа, задания расстояний и прочего сократились до пары щелчков мышкой. Фантастика!

Зачем нам свой шрифт, когда можно взять бесплатный?

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

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

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

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

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

Давайте рассмотрим следующий пример.

Допустим, у нас игра для детей 7-10 лет, без насилия. В игре есть милые NPC, которые здороваются с вами, сажают овощи, желают хорошего дня, вечера и так далее. Что-то типа игры про весёлую ферму.

И, допустим, в этой игре дизайнер принял решение писать пожелания и все остальные фразы милого зайки-NPC красным цветом и таким шрифтом потому, что шрифт бесплатный и не было времени работать над собственным шрифтом:

Наш опыт разработки шрифтов и локализации игры

Вы прочувствовали всю доброту пожеланий?

Или вот ещё варианты передачи фраз добродушного зайчика посредством шрифта:

Наш опыт разработки шрифтов и локализации игры
Наш опыт разработки шрифтов и локализации игры

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

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

Бесплатные шрифты

Согласно моему опыту, у бесплатных шрифтов есть большие недостатки. Во-пепвых бесплатных шрифтов очень много (тысячи). Во-вторых лично мне не удалось найти в этой разнообразной тьме что-то подходящее для нашего проекта. Убив значительное время на поиски, я изрядно замучался и был поражён скудностью огромного разнообразия в бесплатном.

Среди платных шрифтов мне попалась пара подходящих вариантов. Но в этих вариантах отсутствовали либо кириллические символы, либо латинские. Цена использования каждого из таких шрифтов в коммерческих проектах (приложения) была в диапазоне по 90 - 120 тыс. руб за шрифт. Для использования на сайте цена была ниже. Ну а для личного приватного использования плата вовсе не взымалась.

Перед разработчиками стоит непростая проблема:

- либо нужно вложить 2x * много денежных средств на приобретение шрифта

- либо нужно вложить много сил и создать свой шрифтДля нас выбор был очевиден - придётся работать и создавать свой шрифт.

Создание векторного шрифта

Начну сразу с платного ПО, которое использовал. Birdfont - замечательная программа за $5 на которой мы остановили свой выбор. Программа позволила быстро перенести растровый шрифт в векторный формат.

Достоинства:

- очень дешёвая лицензия

- достаточно удобная (когда освоишься)

Недостатки:

- тормозит, есть баги, недоработки

- интуитивно непонятный интерфейс и горячие клавиши

Возможно есть ещё какие-то недостатки, которые видны профессионалам, но меня пока все устроило (особенно цена).

Тонкости создания глифов

Birdfont сильно упростил процесс создания векторных глифов и мы расширили поддержку алфавита. Добавили поддержку следующих языков (кроме английского и русского):

- немецкий

- французский

- испанский

- итальянский

- польский

- чешский

- венгерский

Кажется ничего не упустил.

В процессе работы над глифами обнаружил, что играл со шрифтами и сильно проиграл.

Ситилизация шрифтов - головная боль для дизайнера. Как можно играть с дизайном глифов и проиграть.

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

Наш опыт разработки шрифтов и локализации игры
Наш опыт разработки шрифтов и локализации игры

В конце мы передали свой шрифт друзьям-лингвистам из бюро переводов Code-Switcher, чтобы они все проверили. У них, в основном, трудятся переводчики-носители языка, они-то точно должны адекватно оценить нашу работу. Те, в свою очередь, посмотрели и отправили в ответ пренеприятное известие примерно такого содержания:

Ваши символы "A", "B", "C" стилизованы не совсем верно. Символы "D", "E", "F" содержат серьёзные проблемы.

Далее следовало уточнение о том, что неверно и почему. В целом наш шрифт вызывал бы неприязнь, отторжение у носителей языка. Забраковали работу :(

Особо отмечу, что сильно забраковали эти два символа, которые похожи на "А" и "С". Вот они:

Наш опыт разработки шрифтов и локализации игры

Заметили мелкие крючки на конце?

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

Дело в том, что испанцы сперва ставят перевернутый знак вопроса / восклицания, далее идёт предложение, а в конце ставятся обычные знаки вопроса / восклицания. И без перевернутых знаков в начале предложения никак не обойтись, просто вот совсем никак, вынь да положь.

В итоге мы учли всю критику от ребят из бюро переводов и добавили полную поддержку перечисленных выше языков.

Теперь попробуем сравнить текст на немецком и английском (наш шрифт) и текст на русском (точно не помню какой именно шрифт в примере):

Наш опыт разработки шрифтов и локализации игры

Наверно заметили, что здесь что-то не то с кириллическим русским текстом. Да, это так. Разный шрифт - разный дизайн.

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

Штош, что только не сделаешь, чтобы конечный продукт выглядел неразношорстно, в одном стиле. Наш финальный результат:

Наш опыт разработки шрифтов и локализации игры

Надеюсь мой пост был полезен и интересен. Всем хорошего дня :)

1818
10 комментариев

Согласно моему опыту, у бесплатных шрифтов есть большие недостатки. Во-пепвых бесплатных шрифтов очень много (тысячи).Фатальный недостаток.

У вас в итоговом варианте есть самая распространённая ошибка — у «Д» лапки внизу должны быть ниже baseline.

4
Ответить

Спасибо большое, учту!

1
Ответить

Ещё раз спасибо за критику. Вернулся на днях к шрифту, исправил ножки у 'Д' и несколько других ошибок устранил в кириллическом алфавите.

Ответить

Можно узнать, что за ААААА проект вы делаете, что заморачиваетесь со шрифтами? Вы случайно еще не думали, куда потратите первые заработанные 2 млрд долларов?

3
Ответить

Похоже, что просто два ярых перфекциониста сошлись. Так и работаем, что искры летят.

Пока всю информацию мы постим здесь, что-то публикуем в блоге (cgaleksey.blog). Ну и в соц.сетях иногда выкладываем посты: https://m.vk.com/treload или на пикабу.

Финальное название не публикуем, но техническое (между собой называем так) : cgdrones или treload

Лично я пока точно не знаю куда потрачу деньги. Но очень вероятно, что на отдых и восстановление после проекта.

Ответить

Балдежный лонг. Работа со шрифтами это порой отдельная жопоболь, респект.

2
Ответить

Кажется ничего не упустил.Китайский. Упрощенный и традиционный.

2
Ответить