- PVSM.RU - https://www.pvsm.ru -
13 августа стартовал [1]13-й игровой джем js13kGames (JS13K) для разработчиков веб-игр на JavaScript. За месяц участникам предстоит написать браузерные игры, размер которых не должен превышать 13 килобайт при сжатии до формата ZIP. Темой JS13K этого года выбрали «Трискайдекафобию» — боязнь числа «13».
Организаторами джема выступают разработчик веб-игр Анджей Мазур [2] и студия по созданию инди- и мобильных веб-игр Enclave Games [3].
JS13K 2024 года включает пять категорий, которые могут пересекаться. В частности, участники смогут представить браузерные десктопные и мобильные игры, проекты для виртуальной реальности и с использованием децентрализованных платформ, а также незаконченные игры.
WebXR-игры создают [4]с использованием веб-фреймворков с открытым исходным кодом A-Frame, Babylon.js, Three.js или PlayCanvas. Запущенная в 2021 году категория Decentralized направлена [5]на изучение аспекта децентрализации веб-игр. Участникам предстоит соревноваться в четырёх конкурсах: OP Guild [6] , Avalanche [7], Thirdweb [8] и Arcadia [9]. Этот год станет первым для категории Unfinished, в рамках которой разработчики смогут поделиться [10] ходом создания своих проектов.
Победители получат различные призы, включая фирменные футболки, магнитные и лазерные диски, книги, игры и другие атрибуты, посвящённые прошедшим JS13K, а также ряд сертификатов.
Как следует из названия джема, размер кода и игровых ресурсов проекта должен быть меньше или равен 13 Кбайтам в сжатом виде. ZIP-файл должен содержать файл index.html в структуре папок верхнего уровня. После распаковки он должен запускаться в браузере. Организаторы призывают не усложнять сборку ZIP-файла, чтобы он распаковывался на любой платформе. Разработчики могут использовать инструменты, которые минимизируют исходный код JavaScript.
Участникам нужно предоставить организаторам две формы своей игры. В первом варианте нужно минифицировать и заархивировать проект, чтобы он соответствовал лимиту в 13 Кбайт, а второй должен быть опубликован на GitHub в читаемой форме с описательными именами переменных и комментариями.
Разработчикам JS13K запрещено использовать библиотеки, изображения и файлы данных, размещённых на сервере или сервисах, которые предоставляют любые типы данных. Например, шрифты Google Fonts использовать нельзя. Также запрещена аналитика и другие скрипты сбора статистики. Все игровые ресурсы должны соответствовать ограничению размера пакета, но перечисленные фреймворки для WebXR-игр не учитываются.
13 сентября после 14:00 МСК конкурс завершается. С этого момента организаторы перестанут принимать заявки, но могут быть исключения.
Участники JS13K должны располагать правами на каждый ресурс, используемый в игре. Представленные проекты будут опубликованы и станут доступны для просмотра всем. Организаторы призывают присылать только новые и оригинальные игры.
Проекты должны работать и воспроизводиться минимум в двух браузерах: Firefox и Chrome. Однако чем больше совместимых браузеров, тем лучше. Игру могут разрабатывать как один человек, так и целая команда. Отправить заявку на участие можно по ссылке [11]. Участникам разрешено отправлять на конкурс более одной игры. Обработка заявок занимает примерно два дня.
Голосование среди участников продлится три недели с 15 сентября по 4 октября, а победителей объявят 5 октября. Более 20 профильных экспертов предоставят отзывы об играх в течение тех же трёх недель. Их комментарии также опубликуют 5 октября.
JS13K прошлого года был посвящён [12] теме «XIII век». Первое место получила игра Реми Ванстиландта под названием Path Glory [13]. В этом средневековом битемапе игрокам предстоит сражаться с волнами врагов по пути к финальному боссу.
Годом ранее конкурс посвятили теме «Смерти». Победу одержала головоломка Dante [14]от Сальваторе Превити. Соревнование JS13K 2021 года сосредоточилось на теме «Космос». Его победителем стал Райан Малм со своим симулятором ходьбы в космосе Space Garden [15].
Со всеми работами, удостоившимися наград с 2012 года, можно ознакомиться по ссылкам 2023 [16], 2022 [17], 2021 [18], 2020 [19], 2019 [20], 2018 [21], 2017 [22], 2016 [23], 2015 [24], 2014 [25], 2013 [26], 2012 [27].
Один из участников JS13K за 2021 год Фрэнк Форс рассказал [28]больше про свой проект Space Huggers [29], который удостоился восьмого места в рейтинге лучших работ года. Всего в тот год подали заявки на 223 игры. Для Форса конкурс 2021 года стал уже третьим.
Space Huggers — это платформер в жанре «беги и стреляй» с процедурно генерируемым окружением и пиксельной графикой. Проект вдохновлён такими играми, как Broforce, Metal Slug и Contra. Форс рассказал, что создал игровой движок LiitleJS [30]с нуля на чистом JavaScript. Рассматривый проект использует именно LittleJS.
Перед созданием Space Huggers и других проектов для JS13K разработчик сделал более тысячи маленьких программ. В 2018 году Форс занял второе место конкурса с игрой Bounce Back [31]. Через два года его проект NoteCraft [32] победил в категориях Audio и Innovation. Позже Форс представил операционную систему OS13k [33], которая удостоилась специальной премии JS13K. В последний раз Форс заявлялся на JS13k в 2022 году с Egg Time Rewind [34].
Форс старался создать движок LittleJS максимально компактным, но высокопроизводительным. Решение использует объектно-ориентированную архитектуру, с которой легко создавать игры. Для рендеринга огромного количества спрайтов со скоростью 60 кадров в секунду LittleJS применяет WebGL. За создание звуковых эффектов отвечает инструмент ZzFX. Система ввода поддерживает клавиатуру, мышь, сенсорный экран и геймпад.
Space Huggers действительно очень похожа на Broforce от Free Lives. Оригинал вышел в 2015 году, а его прототип Rambros сделали за одни выходные для игрового джема Ludum Dare, отмечает Форс. Он добавил, что в рамках исследования для своей игры провёл несколько часов, играя как в Broforce, так и в его прототип, делая заметки.
Разработчик решил использовать процедурно-генерируемые уровни, чтобы сэкономить место и обеспечить реиграбельность. Вместо добавления множества дополнительного контента Форм сосредоточился на создании весёлого и отполированного основного игрового процесса. Для усложнения задачи автор решил добавить в Space Huggers мультиплеер на четырёх игроков — это первый такой проект на JS13K.
Для своего проекта Форс имитировал внешний вид классических 16-битных игр, поэтому Space Huggers использует спрайт-лист в стиле пиксельной графики. Большинство плиток имеют размер 16х16 пикселей, а несколько тайлов меньшего размера — 8х8. Весь спрайт-лист игры — это 16-битное изображение размером 128х48.
При разработке спрайтов для Space Huggers Форс ориентировался на таблицу спрайтов для Broforce, чтобы понять дизайн персонажей. Однако в своей игре он сократил кадры анимации персонажей до двух. Протагонист Space Huggers вдохновлён Гридо из «Звёздных войн».

Игрок имеет классический для платформера набор движений, включая возможность разбивать блоки и карабкаться по стенам, прыгая. Форс отметил, что одним из самых сложных моментов для реализации был способ взаимодействия с лестницами.
Протагонист может использовать многофункциональную способность броска для уклонений, кратковременной неуязвимости, повышения скорости и других возможностей. Основное оружие — это пистолет, который убивает большинство врагов одним выстрелом и разрушает объекты и ландшафт на уровне. Оружие имеет ограниченный радиус действия. Игроку также доступны три гранаты.
Все враги используют тот же базовый код, что и протагонист, поэтому их ИИ работает скорее как бот, чем как типичные противники в видеоиграх. На высоком уровне код отправляет входные данные общему классу персонажей так же, как и игрок. Такой подход позволяет создавать интересные и сложные боевые ситуации, одновременно уменьшая объём необходимого кода.

Дизайн врагов вдохновлён спартанцами из серии Halo. Все они использует один и тот же спрайт, но с разными оттенками и цветами визора. Враги также отличаются умениями. В игре есть и мини-боссы.
Форс использовал несколько объектов, которые объединяются для реализации сложного поведения, например, распространения огня. Некоторые из этих объектов способны загораться и поджигать близлежащие предметы. Другие объекты могут взрываться, повреждая и отталкивая предметы рядом, а также поджигать ещё больше вещей вокруг. В игре есть и бочки с водой, которые способны тушить пожары.

Все эти объекты используют только три спрайта: ящик, бочка и плита. Применяя различные оттенки и цвета, Форс смог представить множество различных типов объектов.
Респаун главных героев обеспечивают флаги после взаимодействия с ними. Разработчик также уместил в игру радарную систему в нижней части экрана. Она показывает, где находятся враги по отношению к игроку.

Чтобы придать структуру дизайну уровня, на них есть базы врагов, которые состоят из разных комнат и следуют определённому набору правил. Это включает как геометрию уровня, так и размещение врагов и объектов. Форс назвал этот момент, вероятно, самой сложной частью игры.

В качестве заднего фона Space Huggers использует многослойную систему неба. Параллакс горного пейзажа генерирует алгоритм, который создаёт ландшафт при помощи крошечного фрагмента кода. Градиент с движущимися звёздами по небу подчёркивает ощущения пребывания на другой планете.
На некоторых уровнях есть эффекты осадков, таких как дождь и снег. Это отличный способ продемонстрировать систему частиц и физику столкновений, а также добавить атмосферу, пишет Форс.
За звук отвечает инструмент с открытым исходным кодом ZzFX. Он представляет собой маленький автономный проигрыватель звуковых эффектов, который генерирует аудиосэмплы из 20 параметров. В общей сложности Space Huggers использует 11 различных звуковых эффектов, а правильность их воспроизведения потребовала множества настроек.
Форс поделился, что с Space Huggers он полностью автоматизировал процесс сборки. Разработчик создал BAT-файл для Windows, который объединяет все JS-файлы вместе и запускает Google Closure, Uglife и Roadroller для преобразования кода. Также скрипт объединяет минифицированный код в один HTML-файл и архивирует html при помощи Efficient Compression Tool.
В разные годы Фрэнк Форс работал [35]над играми Psi-Ops: The Mindgate Conspiracy, Red Faction: Guerrilla, Starhawk, Doom (2016) и Mafia III.
Автор: Travis_Macrif
Источник [36]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/395184
Ссылки в тексте:
[1] стартовал : https://js13kgames.com/
[2] Анджей Мазур: https://end3r.com/
[3] Enclave Games: https://enclavegames.com/
[4] создают : https://js13kgames.com/webxr
[5] направлена : https://js13kgames.com/decentralized
[6] OP Guild: https://js13kgames.com/decentralized#challenge-opguild
[7] Avalanche: https://js13kgames.com/decentralized#challenge-avalanche
[8] Thirdweb: https://js13kgames.com/decentralized#challenge-thirdweb
[9] Arcadia: https://js13kgames.com/decentralized#challenge-arcadia
[10] смогут поделиться: https://medium.com/js13kgames/submit-your-game-even-if-its-unfinished-dbf2b6e2905c
[11] ссылке: https://dev.js13kgames.com/submit
[12] был посвящён: https://habr.com/ru/news/768078/
[13] Path Glory: https://js13kgames.com/entries/path-to-glory
[14] Dante : https://js13kgames.com/entries/dante
[15] Space Garden: https://js13kgames.com/entries/space-garden
[16] 2023: https://2023.js13kgames.com/
[17] 2022: https://2022.js13kgames.com/
[18] 2021: https://2021.js13kgames.com/
[19] 2020: https://2020.js13kgames.com/
[20] 2019: https://2019.js13kgames.com/
[21] 2018: https://2018.js13kgames.com/
[22] 2017: https://2017.js13kgames.com/
[23] 2016: https://2016.js13kgames.com/
[24] 2015: https://2015.js13kgames.com/
[25] 2014: https://2014.js13kgames.com/
[26] 2013: https://2013.js13kgames.com/
[27] 2012: https://2012.js13kgames.com/
[28] рассказал : https://frankforce.com/space-huggers-how-i-made-a-game-in-13-kilobytes/
[29] Space Huggers: https://js13kgames.com/entries/space-huggers
[30] LiitleJS : https://github.com/KilledByAPixel/LittleJS
[31] Bounce Back: https://js13kgames.com/entries/bounce-back
[32] NoteCraft: https://js13kgames.com/entries/notecraft
[33] OS13k: https://killedbyapixel.github.io/OS13k/
[34] Egg Time Rewind: https://js13kgames.com/entries/egg-time-rewind
[35] работал : https://www.linkedin.com/in/frank-force-1305b11/details/experience/
[36] Источник: https://habr.com/ru/articles/840006/?utm_campaign=840006&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.