Оптимизация размера графики в казуалках

May 28, 2011 23:20

В казуалках есть одна штука, в которой есть месту техническому теку - это пайплайн, хорошо сжимающий графику. Кто-то считает что необоснованно "пользователю всё равно сколько скачать, 10 мегабайт или 100, он не разбирается", кто-то считает что важно "+10 % к размеру - минус 1% пользователей", ну и видел даму которая не скачивает игры с большим размером "потому что долго ждать".

В mahjongg artifacts встала задача засунуть в небольшой объём много графики - 50 бэков и комиксов 1024x768, плюс всё остальное (музыку, графику, exe).

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


Ну, атласинг - это типично.

Ещё один трюк: rgb-канал - жмется в jpg, а альфа канал - в 64 отенках серого png. Для rgb-канала применяется особый трюк, который продолжает rgb-канал в область прозрачности, таким образом сжатие в jpg не портит резкие границы (границы в rgb размываются, и остаются только в альфа-канале):


И ещё один ультимейт-трюк: в комиксах при выставлении максимального jpeg-сжатия (0% в фотошопе) комикс выглядит в 80% части нормально. Но в некоторых важных местах для человеческого зрения - глаза, губы, пальцы, сюжетные элементы - ужасно. jpeg-изображение состоит из блоков 16x16. Не вопрос, пишем тулзу в которой указываем какие квадратики 16x16 надо сжимать хорошо, и в игровом коде рисуем эти квадратики-заплатки поверх плохого Jpeg:
Как выглядят патчи:





Редактор:



см. так же про то, как удобней сделать интерфейс рисования спрайтов

tips, imaging, release, soft-dev

Previous post Next post
Up