Всем привет, я здесь, чтобы поделиться сюрпризом, который мы приготовили для 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! Вы можете подписаться на меня в твиттере, чтобы узнать о других крохотных приключениях по программированию.