В коментах было много вопросов про эти 13 кб, с учетом того, что всякие картинки и ассеты весят намного больше, а сам выкачанный гитхаб весит под пол мегабайта. Давайте попробуем разобраться правда ли он смог уместить свою игру в заданном правилам размере.
Первым делом запустим файл, который предоставляет сам разработчик - build.sh
Помимо всего прочего вывода, команда выводит список файлов из папки build
Окей, у нас есть куча файлов, но что теперь? Вон есть index.html. Запускаем его и видим в браузере игру. Что же происходит при этом в консоли?
На данном скрине нас интересует только самая правая колонка - это размер подгружаемого элемента. Можно даже не пользоваться калькулятором, ведь и невооруженным взглядом видно, что 9.6 + 4.8 уже больше 13. А там еще и шрифты на целый ценный килобайт. А ведь это еще только размер передаваемый от сервера браузеру, а реальный размер того же индекса - 12 кб
Хотя, строго говоря, подгрузив все вот эти файлы на ~20кб игра полноценно функционирует что на мой взгляд очень неплохо. Но недостаточно хорошо для js13k.
Что, кстати, говорят его правила на этот счет?
All your code and game assets should be smaller than or equal to 13 kilobytes (that's exactly 13,312 bytes, because of 13 x 1024) when zipped. Your .zip package should contain index.html file in the top level folder structure (not a subfolder) and when unzipped should work in the browser
Ваш код и игровые ресурсы должны быть меньше 13 кб в сжатом виде. Ваш zip пакет должен содержать index.html и после распаковки работать в браузере.
Мало того, что мы
1. Прогнали обе карты запаковщиком, написанным на C. (файл l на 1 и 2 скринах)
2. Запаковали все текстуры запаковщиком, написанным на php (файл m на 1 и 2 скринах). Я кстати, так и не понял почему один запаковщик реализован на C, а другой на php. В гитхаб тоже подвезли требование разнообразия?
3. Прогнали весь код компрессором UglifyJS. (73 кб -> 26 кб)
4. После этого весь код прогнали специальной тулзой, которая специально была разработана для js13k - https://lifthrasiir.github.io/roadroller/ (26 кб -> 12 кб)
Так еще и запаковали зипом.
И на выходе получаем следующее (см 1 скрин)
Как видно, размер получившегося архива - 13296 байт. А 13кб это 13312 байт а не 13000. Об этом кстати в правилах написано :)
Вот так вот у нас и получаются те самые 13 кб.
По сути в данном соревновании разработчики меряются своими инструментами архивации. Но это не умаляет того, что https://github.com/phoboslab/ написал относительно неплохую игруху, которая без сжатия весит тоже не слишком много.
Да, раньше писали игры на ассемблере. Да, раньше играм для запуска не нужны были тонны оперативки. Да, раньше сахар был слаще, а вода мокрее. Но теперь у нас есть простые маленькие игрушки, в которые можно скачать и запустить за пару кликов без до оборудования.