Wolf 5k strikes back

Забавная была игрушка «Wolf5K». Это игра на JavaScript, занимающая пять килобайт (!). Был такой конкурс когда-то — «The 5K», цель — уместить что-нибудь толковое в 5 килобайт.

Скриншот интерфейса игры: слева — счёт (Score), в центре — количество оставшихся врагов (Enemies Remaining), справа — здоровье (Health).

Ребята произвели фурор тогда, они уместили в этот размер небольшую псевдотрёхмерную бродилку. Никаких CANVAS! Хитрость в том, что вся графика (кроме кровищи) делается в формате XBM и передаётся тегу IMG через схему «javascript». Игрушка работала в IE5, IE6, Mozilla 1.1+ и Netscape 4.77 для Мака.

Формат XBM — это текстовый формат чёрно-белых картинок (я даже когда-то делал библиотеку для PHP Image::XBM). Его удалили из IE в SP2, работает ли это до сих пор в Gecko-браузерах я не знаю (у меня сейчас не установлен FF, а ставить лень), а «Опера» не читает графику через схему «javascript», так как никогда не делает попыток угадать контент по содержанию. Только по MIME-типу.

В общем, захотелось мне почему-то вспомнить эту игрушку, а она у меня не работает. Ну, делов-то. Заменить схему «javascript» на чуть доработанную «data». Вот патч, нужно открыть окно игры, скопировать его в строку браузера и нажать «Enter»:

javascript:void(eval(X.toString().replace(/"j.*?;"/, '"data:image/x-xbitmap," + encodeURI(im)')))

В IE по-прежнему работать не будет (в нём нет XBM), в «Хроме» тоже не должно, в «Опере» — заработает. Если у кого-нибудь установлено что-то ещё, попробуйте и скажите получилось ли.

Добавлено утром: читатели сообщают, что в «Сафари» тоже работает.

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

baranov-ra (baranov-ra.livejournal.com) № 3
Сафари на Айфоне — кажется, с патчем работает. Правда ничего нельзя сделать в игре, но после применения патча картинка стала такой, какой должна быть.
Евгений Степанищев (bolknote.ru) автор № 6
Сафари на Айфоне — кажется, с патчем работает. Правда ничего нельзя сделать в игре, но после применения патча картинка стала такой, какой должна быть.

Забавно, я думал WebKit не понимает XBM.

fantaseour (fantaseour.livejournal.com) № 4
Линукс убунту 10.04 опера 10.6 (6383 — Approaching 10.60 Final).

Работает с патчем.

Супер!
unno (unno.ru) № 8
Комментарий для Евгения Степанищева:

Пожалуйста, кстати, в Chrome (6.0.447.0 dev) и Opera (10.54) под той же MacOS (10.6.4) тоже работает, а вот Firefox 3.6.3 отказывается.
mr-simm (mr-simm.livejournal.com) № 9
У меня в Opera 10.00 build 1750/Win32 оно работает и без патча.
Евгений Степанищев (bolknote.ru) автор № 11
У меня в Opera 10.00 build 1750/Win32 оно работает и без патча.

Дико забавно.

Евгений Степанищев (bolknote.ru) автор № 10

Комментарий для unno.ru:

кстати, в Chrome (6.0.447.0 dev) и Opera (10.54) под той же MacOS (10.6.4) тоже работает, а вот Firefox 3.6.3 отказывается.

Видимо, под MacOS всё несколько иначе работает.

mr-simm (mr-simm.livejournal.com) № 12
Комментарий для Евгения Степанищева:

Ага — сейчас проверил на работе — та же сборка оперы — не пашет. Вроде отличий никаких — и на работе, и на нетбуке — XP.
Евгений Степанищев (bolknote.ru) автор № 13
На FF 4.0b2pre не работает — этот браузер не поддерживает XBM.
my.opera.com/fatal № 15
Регрессия произошла между сборками Оперы 10.5 (3236 — 3273)
Уже известил о столь печальном событии разработчиков.
Евгений Степанищев (bolknote.ru) автор № 16
Мне кажется, править не будут. Смысла в этом мало.
my.opera.com/fatal № 17
В Опере гиков полно, -- исправят :-) Пару лет назад же исправили, а теперь сломалось в том же месте.