К содержимому
Изображения и шрифты
На этой странице

Изображения и шрифты

Какие картинки грузятся, какой размер разумен и почему встроенная фигура почти всегда лучше картинки

Главное

  • Если можно обойтись фигурой - берите фигуру
  • Для мобильного уровня потолок картинки - 2048, вообще - 4096
  • Делайте картинку примерно того размера, каким она будет на экране. Округляйте вверх до степени двойки

Форматы и размер

Грузится всё, что движок умеет декодировать из байтов файла. На практике это png и jpg

Размер файла игра не ограничивает, ограничивает железо:

УстройствоНаибольшая сторона
Android, гарантированно4096
Android, обычно8192-16384
настольный ПКдо 32768

Память

Реальный предел - память. В памяти картинка хранится как сырые пиксели, сколько бы ни весил файл. png занимает 4 байта на пиксель. jpg - 3, потому что прозрачности у него нет

РазмерПамять (png)
512 на 5121 МБ
1024 на 10244 МБ
2048 на 204816 МБ
4096 на 409664 МБ
8192 на 8192256 МБ
Внимание

Текстура 8192 - это четверть гигабайта на одну картинку. На телефоне это не медленно, это вылет

Что решает игрок

Три пункта в настройках графики у каждого игрока решают, сколько памяти займёт картинка:

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

Телефон по умолчанию сжимает картинки и режет их по 2048. Настольный ПК держит картинку целиком и режет по 4096

Ваша часть - одно поле у картинки: что на ней изображено. Поле стоит рядом с картинкой в списке ресурсов. Фотография лучше всего переживает уменьшение и сжатие. Рисунок с резкими краями - хуже

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

Мип-карты

Мип-карты не дают мелкой картинке мерцать. Это уменьшенные копии, которые рисуются вместо полной картинки, пока она мала на экране. Они стоят на треть больше памяти

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

Картинка 4096, которая занимает на экране 200 пикселей, стоит в 256 раз больше памяти, чем она же, заранее уменьшенная до 256

Фигура раньше картинки

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

На телефоне это заметно. На среднем мобильном чипе сцена из 1000 объектов тратит 95-97% времени видеокарты на закраску пикселей. Фигура занимает 29.4% своего прямоугольника. Остальное в квадрате с текстурой - прозрачный мусор

Картинка нужна, когда нужно именно изображение: логотип, фотография, нарисованный вручную арт. Для геометрической формы берите фигуру. Нужной нет - нарисуйте её в Редактор фигур

Шрифты

Шрифты грузятся в ttf, otf, ttc. Без своего шрифта текст рисуется тем, что нашлось в системе, а на разных устройствах это разное

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

Дальше: Бюджет уровня, Мобильные устройства