Всем привет, я здесь, чтобы поделиться сюрпризом, который мы приготовили для JS13k этого года. Как большинство из вас знает, все игры JS13k используют одно и то же локальное хранилище, что может быть проблематично, потому что каждой игре нужен уникальный префикс, чтобы избежать конфликтов имен. Мы превратили эту ошибку в функцию: общую систему трофеев и музыки, которую может выбрать любая игра JS13k! Если этого недостаточно, мы создали целую псевдо-операционную систему, чтобы связать ее все вместе.

Добро пожаловать в OS13k

Слышали ли вы о фэнтезийных консолях, таких как Pico-8? Что ж, лучший способ объяснить концепцию OS13k - это фантастическая ОС и крошечный игровой движок для творческих программистов. Операционная система достаточно проста в использовании и имеет несколько мощных функций для опытных пользователей.

  • Звуковые эффекты ZzFX с поддержкой звуковых семян
  • Музыкальная система, проигрыватель и визуализатор ZzFXM
  • Система трофеев со всплывающими окнами и просмотрщиком
  • Пользовательские программы HTML, Dwitter и Shadertoy с редактированием в реальном времени.
  • Графический интерфейс с диспетчером окон, панелью задач, лотком и настройками
  • Мобильная / сенсорная поддержка

Мы усердно работали над этим в течение последних нескольких месяцев, и полный исходный код теперь доступен на GitHub!

Одна из самых крутых функций OS13k - это возможность отслеживать трофеи и музыку во всех играх JS13k, и именно об этом этот пост, так что давайте приступим к делу!

Трофеи

Есть что-то действительно забавное в том, чтобы собирать трофеи во многих играх. Это дает игрокам ощущение прогресса и причину вернуться позже с минимальными накладными расходами.

Система трофеев для OS13k имитирует то, что вы ожидаете увидеть на современной игровой консоли, хотя и упрощена. Каждый трофей состоит всего из 4 частей…

  • Значок - один или несколько символов или смайлов.
  • Название игры - название вашей игры JS13k.
  • Название трофея - Название трофея.
  • Сообщение - необязательное сообщение для трофея.

Чтобы разблокировать трофей в игре JS13k, просто добавьте следующий код, заменив его информацией о вашем трофеи…

localStorage [‘OS13kTrophy, Icon, Game Name, Trophy Name’] = Сообщение

Когда другие игры JS13k разблокируют трофеи, OS13k автоматически обнаружит новые трофеи, покажет всплывающее окно, зачитает название трофея вслух и добавит его в ящик для трофеев пользователя! Он также будет отображать всплывающее окно при изменении сообщения о призах.

Это работает путем поиска в локальном хранилище ключей, которые начинаются с OS13kTrophy. Остальной ключ затем разделяется запятыми, чтобы получить параметры трофея. OS13k даже будет прослушивать события локального хранилища, чтобы обнаруживать новые трофеи при работе в фоновом режиме.

Еще несколько вещей, о которых следует знать…

  • HTML-теги и запятые нельзя использовать в строках трофеев.
  • Вы можете отслеживать данные с трофеями для разблокировки или рекордов
  • Не злоупотребляйте системой, давайте ограничим ее до 10 трофеев за игру

ZzFXM Музыка

Музыкальная система была разработана Китом Кларком и мной. Он разработан специально для игр с ограниченным размером, таких как игры JS13k. Вы можете узнать больше и послушать демонстрацию на GitHub.

На музыкальных инструментах используются звуки ZzFX. Изначально я разработал ZzFX как крошечный инструмент звуковых эффектов и использовал его для моей игры JS13k, занявшей 2-е место в прошлом году. С тех пор я добавил еще больше функций, удвоил параметры и улучшил звуковой дизайнер.

Сочетание звуковых эффектов и музыки в одной системе с песнями, которые эффективно архивируются, делает его чрезвычайно полезным для игр JS13k. Мы работаем над собственным секвенсором, который скоро будет готов, так что следите за ним.

Если вы используете ZzFXM для музыки в своей игре, необходимо выполнить небольшой необязательный шаг, чтобы зарегистрировать его в музыкальной библиотеке OS13k пользователя. Просто используйте следующий код, заменив параметры своей песней…

localStorage [‘OS13kMusic, Song Name’] = JSON.stringify (песня)

При следующей загрузке музыкального плеера OS13k он проверит локальное хранилище на наличие новой музыки, проверит, действительна ли она, и добавит ее в библиотеку пользователя! Пользователи также могут добавлять музыку вручную, нажав кнопку загрузки и вставив код.

Пользовательские программы

Опытные пользователи могут расширить OS13k, добавив собственные программы. Система автоматически определяет, какой это код: HTML, Dweet или Shadertoy. Все сохраняется в локальном хранилище на тот момент, когда пользователь возвращается, и доступно через меню.

Вы можете редактировать пользовательские программы в реальном времени и экспериментировать с творческим кодированием. Это отличная песочница, в которой можно поиграть как новичкам, так и экспертам! Все функции OS13k доступны для пользовательских программ с некоторыми дополнительными инструментами, которые помогают в редактировании, отладке и управлении файлами в реальном времени.

JS13k и не только

В настоящее время основное внимание уделяется JS13k, и все это очень экспериментально, поэтому будет интересно посмотреть, как все обернется. После JS13k мы продолжим разработку OS13k и добавим больше приложений. Я уже зацепил www.os13k.com, но пока он просто перенаправляет на GitHub.

Присоединяйтесь к нам

Я не смог бы сделать это в одиночку! Было задействовано много людей, перечисленных на странице GitHub. Прямо сейчас мы сосредоточены на создании крошечных игр для заполнения сборки JS13k. Если вы заинтересованы в помощи и присоединении к нашей группе, запись JS13k, присоединяйтесь к серверу Discord или отправьте мне запрос на перенос. В любом случае мы с нетерпением ждем возможности заработать забавные призы и услышать вашу музыку.

Спасибо за чтение и удачи во всех играх на JS13k! Вы можете подписаться на меня в твиттере, чтобы узнать о других крохотных приключениях по программированию.