Пушыстый (_winnie) wrote,
Пушыстый
_winnie

Category:

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

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

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

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

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

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


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






Редактор:




см. так же про то, как удобней сделать интерфейс рисования спрайтов
Tags: imaging, release, soft-dev, tips
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 54 comments