В комментариях нам дали несколько очень дельных советов, которые позволили нам сэкономить еще некоторое количество драгоценных байт. Добавив к ним пару собственных оптимизаций, мы выгадали достаточно места для того, чтобы добавить в игру несколько новых фич, по прежнему оставаясь в пределах 10 Кбайт:
- Действие «Throw». Теперь вы можете кидаться едой во врагов. Попадая в монстра, она наносит ему повреждение, но при этом исчезает.
- Алхимия. Теперь можно смешивать еду с питьем в надежде получить что-нибудь новое. Так, «Jelly» + «Milk», например, даст в результате «Book of Healing» (этот рецепт вам очень пригодится на нижних этажах подземелья.)
- В битве с кроликом придётся применить смекалку. Кролик теперь не нападает сам, а мирно пасётся. Но убить его стало гораздо сложнее!
- Добавлен эффект confuse. Иногда главный герой конфузится от выпитого или в результате неудачных экспериментов.
- Новый тайл для отображения починенной трубы. По многочисленным просьбам, мы добавили его, чтобы можно было отличить починенную трубу от сломанной.
А теперь, по традиции, поделимся с хабрасообществом описанием оптимизаций, которые помогли нам все это сделать:
- whoozle переписал упаковщик в png так, чтобы он использовал greyscale png, в котором отсутствует палитра (это дало очень большую экономию, порядка 300 байт).
- Парадоксально, но факт — увеличение ширины png дало значительный эффект! Мы увеличили png до 1024x17 и сэкономили ещё. И здесь опять IE9 подложил нам свинью: он перестал правильно определять размеры png и начал возвращать в скрипт странные размеры: 127x127. Пришлось жестко прописать размеры картинки прямо в загрузчике.
- По совету bolk, мы отказались от pngcrush в пользу связки optipng+pngout, которая действительно даёт большую экономию за счёт своих продвинутых алгоритмов перепаковки.
- Также lahmatiy нам подсказал, что замена «this.» (вместо слова «this») и «.length» на 1-2 буквенные символы (` и @@ соответственно) даст ещё больший выигрыш.
- Ну и, в конце концов, мы просто переписали часть кода.
Итоговый размер игрушки остался практически прежним — 10231 байт, но играть в нее теперь стало намного веселее.
Источник: Хабрахабр - Ненормальное программирование
Оригинальная страница: Наш опыт участия в 10К Apart, часть вторая: жмем дальше
Комментариев нет:
Отправить комментарий