Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Wolf 5k strikes back

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

Wolf5k (0.81КиБ)

Ребята произвели фурор тогда, они уместили в этот размер небольшую псевдотрёхмерную бродилку. Никаких 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 комментарий
sema.in 2010

У меня нигде не работает, даже в Опере (10.54).

sema.in 2010

А, извиняюсь, не прочитал, что нужно открыть их сайт ещё.

baranov-ra (baranov-ra.livejournal.com) 2010

Сафари на Айфоне — кажется, с патчем работает. Правда ничего нельзя сделать в игре, но после применения патча картинка стала такой, какой должна быть.

fantaseour (fantaseour.livejournal.com) 2010

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

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

Супер!

unno (unno.ru) 2010

В последнем Сафари (Version 5.0 (6533.16)) под MacOS (10.6.4) работает с патчем.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для baranov-ra.livejournal.com:

Сафари на Айфоне — кажется, с патчем работает. Правда ничего нельзя сделать в игре, но после применения патча картинка стала такой, какой должна быть.

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

Евгений Степанищев (bolknote.ru) 2010

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

Спасибо!

unno (unno.ru) 2010

Комментарий для Евгения Степанищева:

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

mr-simm (mr-simm.livejournal.com) 2010

У меня в Opera 10.00 build 1750/Win32 оно работает и без патча.

Евгений Степанищев (bolknote.ru) 2010

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

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

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

Евгений Степанищев (bolknote.ru) 2010

Комментарий для mr-simm.livejournal.com:

У меня в Opera 10.00 build 1750/Win32 оно работает и без патча.

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

mr-simm (mr-simm.livejournal.com) 2010

Комментарий для Евгения Степанищева:

Ага — сейчас проверил на работе — та же сборка оперы — не пашет. Вроде отличий никаких — и на работе, и на нетбуке — XP.

Евгений Степанищев (bolknote.ru) 2010

На FF 4.0b2pre не работает — этот браузер не поддерживает XBM.

Евгений Степанищев (bolknote.ru) 2010

Firefox 3.6 и выше не поддерживает XBM: http://en.wikipedia.org/wiki/X_BitMap

my.opera.com/fatal 2010

Регрессия произошла между сборками Оперы 10.5 (3236 — 3273)
Уже известил о столь печальном событии разработчиков.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для http://my.opera.com/fatal:

Мне кажется, править не будут. Смысла в этом мало.

my.opera.com/fatal 2010

В Опере гиков полно, -​-​ исправят :-) Пару лет назад же исправили, а теперь сломалось в том же месте.

- 2010

Почему же более востребованную Execute program до сих пор не исправили (лишние кавычки)?

Евгений Степанищев (bolknote.ru) 2010

Комментарий для -:

Что? Не понял.

- 2010

Это был ответ http://my.opera.com/fatal​.

Если в menu.ini прописано такое:
Item, «Download»=Execute program, «dmaster.exe»,«%l %u»

То при запуске качалки урл и реферер будут указаны как один аргумент:
dmaster.exe « http://site.com/file.zip http://site.com/page%22

В 10.10 работает нормально, в свежих — нет.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для -:

А, понятно.