Если большинство современных игр достигают гигантских размеров, то Bouncing Beholder, созданная Марейном Хавербеке, идёт в обратном направлении и помещается всего в один килобайт кода. Это JavaScript-платформер с классическими элементами жанра: плавной анимацией, цепляющей физикой, случайно генерируемыми уровнями и коллекционными предметами.
Особенность игры — прыгающий мяч, которым игрок управляет с помощью клавиш со стрелками, стараясь собрать как можно больше монет и не угодить в ловушки. Случайная структура уровней делает каждый запуск уровня неповторимым.
Первоначально автор создал её для конкурса кодеров JS1K в далёком 2010 году. Но недавно о неё снова вспомнили, в частности, благодаря строгому ограничению на размер файла.
Чтобы вместить все эти возможности в 1024 байта, разработчику пришлось пойти на массу хитроумных ухищрений. Он сократил длинные имена переменных, представил игровые объекты через математические формулы вместо прямого хранения данных и даже добился того, что стандартные методы HTML5 Canvas API записываются в сокращённом виде, например qt()
вместо canvas.quadraticCurveTo()
.

Монеты также расставляются по особому принципу. Они появляются только на платформах, высота которых делится на шесть. А если взять монету, она исчезает вместе с частью платформы, слегка уменьшая её высоту. Такой подход к генерации позволяет обойтись без громоздких таблиц данных.
Интересно, что, несмотря на популярность инструментов сжатия кода, Bouncing Beholder устроена так, что они чаще вредят, чем помогают: современные программы вроде Closure Compiler в итоге увеличивают размер итогового файла, а не уменьшают его.
Сам программист признаётся, что подобная разработка не предназначена для «производительного программирования», но открывает простор для фантазии и самых нетипичных хаков. Полный исходный код игры доступен в его блоге, а факт существования такого платформера ещё раз напоминает: гениальные идеи и умелые трюки способны поместить целый виртуальный мир в один крохотный килобайт.
Ещё по теме:
- 10 февраля 2025: День очистки компьютера
- Гурман: новый iPhone SE появится «на этой неделе»
- «Разделение» остаётся на вершине стриминговых рейтингов в США