Как стать автором
Обновить

Комментарии 11

А что будет если, я в китае, смартфон китайский, но я хочу играть на русском?

Хороший вопрос! Все зависит какой язык стоит у игрока в ОС, если китайский, тогда игра будет на нем и придется делать возможность переключения языка.

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

В бандлы нужно паковать шрифт и качать тот что нужен.

Конечно, так можно и нужно делать, но при условии, чтобы бандлы не хранились в билде. В лучшем случае, те ~25 МБ о которых говорится в статье, можно сжать до 10 МБ, что так же много для мобильной игры.

Хороший проект!

А что насчет эмоджи? Есть возможность использовать родные эмоджи от платформы?

Отличный вопрос!
Эмоджи не пробовал грузить (такой задачи пока что не было), но знаю что в iOS есть такой шрифт с расширением ttc и весит он не мало, называется AppleColorEmoji-160px (гляньте в списки шрифтов).

Думаю через шрифты такое не получится сделать, но через TMP_SpriteAsset имеет смысл попробовать! Хорошая идея продолжить статью:)

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

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

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

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

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

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

Вводные:
-атлас 2048х2048
-emoji 64х64
-в iOS 1427 emoji

1427/(2048/64)^2 = ~1.4 (кол-во атласов)

Выходит нам хватит примерно ~1.4 атласа, а это совсем не много места в памяти, около 18мб (без компрессии и без альфа канала). Сжать можно до 3 мб примерно, что выглядит не много.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории