Учитывая наши ожидания от игр для Xbox, вы можете подумать о написании игры в пределах 13 КБ, что является слишком жесткой проблемой для ежегодного конкурса js13K. Его результаты теперь опубликованы и доказывают, что можно создать игру, в которую приятно играть.
Еще во времена загрузки ленты и на платформах игры вроде Commodore64 имели размер 4K или меньше. В качестве доказательства концепции, вот список нескольких таких игр 4K, скопированных из архива Lemon64:
Шаг в сторону пришельца
Bug Crusher
Точка Gobbler
Близкие контакты
Точка Gobbler v2
Гридраннер
Лазерные циклы
Мариос пивоварня
Космическое действие
Космический Рикошай
Танковые войны
Хесмон64
Ретро мяч
Перенесемся в настоящее время, когда Javascript пожирает мир, делая всевозможные приложения или игры доступными для всех через среду браузера, делая ненужными выделенные платформы и операционные системы, 13 КБ достаточно, чтобы упаковать оба игрового процесса. И классная графика благодаря продвинутым движкам браузера и HTML5.
js13kGames — это соревнование, которое пытается ответить на два связанных вопроса:
Имеет ли смысл рассматривать разработку игр размером с байты в мире широко доступных широкополосных соединений?
Как вы думаете, возможно ли просмотреть все записи данного игрового джема и найти шаблоны, которые вы могли бы использовать в любом другом соревновании, независимо от ограничений или языка программирования?
В этом году соревнования длились с 13 августа по 13 сентября, но обо всем по порядку; почему фиксация с числом 13? почему не 23 или 53? что означает 13? Ответ исходит от самого ведущего js13kGames Анджея Мазура:
Я хотел что-то оригинальное, а не популярное в то время 1k / 4k / 10k, и подумал, что 13 может быть хорошим хитом, также учитывая тему «невезения».
В течение этого месячного периода участники должны были создать игру, которая следовала установленной в этом году теме «проигрыш» и придерживалась набора правил. Вот самые важные:
1. Как уже было сказано, размер пакета должен быть меньше 13 КБ или 13 312 байт в сжатом виде. Это усложняется из-за правила 2.
2. Никаких внешних библиотек или служб. Вы не можете использовать какие-либо библиотеки, изображения или файлы данных, размещенные на сервере, или службы, которые предоставляют любые типы данных — например, использование шрифтов Google запрещено. Ваша игра должна работать в автономном режиме, запустив файл index.html в браузере (категории Desktop и Mobile, не относящиеся к серверу), и все игровые ресурсы должны соответствовать ограниченному размеру пакета. Если вам удастся сжать вашу любимую библиотеку ниже 13 килобайт, включая сам код, вы можете использовать все, что захотите, просто помните о пределе в 13 килобайт.
3. Два источника — читаемый и сжатый. Предоставьте два источника вашей игры — первый должен быть уменьшен и заархивирован, чтобы соответствовать лимиту 13 КБ, а второй должен быть в удобочитаемой форме с описательными именами переменных и комментариями и размещен на GitHub.
4. Лицензирование У вас должны быть права на все ресурсы, используемые в вашей игре. Помните, что представленные игры будут опубликованы и доступны для всеобщего обозрения.
5. Только новый контент. Не отправляйте старые игры или демоверсии, принимается только свежий контент.
6. Ошибки и поддержка браузера. Ваша игра должна работать и воспроизводиться как минимум в двух браузерах: Firefox и Chrome, и не должно быть ошибок.
7. Есть несколько категорий, в которых вы можете принять участие. Это:
Рабочий стол
Мобильный
Сервер
A-Frame, мощная веб-платформа с открытым исходным кодом для создания возможностей виртуальной реальности, которая в сочетании с WebVR позволяет веб-разработчикам принимать участие.
В этом году было ошеломляющее количество заявок — 253 во всех комбинированных категориях, и хотя было много достойных внимания заявок, те, которые действительно выиграли, также действительно того стоили.
Например, победителем в мобильной категории «LOSSST» стала игра о долгом путешествии по поиску пропавшего ребенка, которая включала 75 головоломок и 3 различных умопомрачительных механики.
Используя другой подход, кибер-триллер «Затерянные в КИБЕРПРОСТРАНСТВЕ», победитель категории A-Frame, включал в себя как сложный сюжет, так и игровой процесс:
Lost in CYBERSPACE — это кооперативная игра, рассчитанная на 2 игроков, каждый из которых играет на отдельном устройстве. Единственное, что вам нужно между собой, — это ваш голос. Вы можете находиться в одной комнате или в другой части мира, если вы слышите друг друга.
Один игрок играет роль ХАКЕРА, заблудившегося в лабиринте CYBERSPACE корпоративной сети. Им нужно перемещаться по CYBERSPACE, считывать коды доступа к НАВИГАТОРУ и находить узел TARGET, чтобы взломать его. Но будьте осторожны! Взлом неправильных узлов облегчит вам поиск, и вы потеряетесь в CYBERSPACE, когда истечет время!
Другой игрок играет роль НАВИГАТОРА, который использует терминал для декодирования кодов доступа, полученных от ХАКЕРА, читает карту CYBERSPACE и помогает ХАКЕРУ найти путь к узлу TARGET.
Несмотря на установленный лимит в 13 КБ, разработчики использовали новейшие веб-технологии HTML5, CSS3, JavaScript и другие дополнительные инструменты / библиотеки / фреймворки / методы, необходимые для работы.
Примерами являются библиотеки, подобные Kontra (используются для предварительной загрузки игрового цикла и ресурсов) и TinyMusic, фреймворки, подобные Brevis.js, инструменты, такие как самодельный js13k-toolkit, транспиляторы, такие как babel для компиляции кода ES6 в Chrome и Firefox, Webpack для модульного JS-кода, минификаторы для CSS и HTML, а также графические методы, подобные raymarching с помощью функций Signed Distance Functions.
Победители разыграли призы — от игры в Steam до платных планов GitHub и личных учетных записей с неограниченным количеством частных репозиториев до подарочных сертификатов Amazon.
В конце концов, используя открытые стандарты и общедоступный код, js13k вдохновил и заставил разработчиков игр серьезно задуматься как над геймплеем, так и над методами оптимизации кода, чтобы коллективно улучшить свою …. игру!
Что касается остальных из нас, он предлагает множество оправданий для того, чтобы проводить время в сети, играть, экспериментировать и получать удовольствие от всех этих игр!