Управляйте своими настройками cookies. Вы можете включать или отключать различные виды cookies ниже. Для получения более подробной информации см. нашу Политику конфиденциальности.

Wonderbricks стал Open Source

Wonderbricks начался как производственный проект: полноценный опыт WebXR, который мы могли бы выпустить и показать, когда люди спрашивают: “как выглядит на практике крупный проект на Wonderland Engine?”.

Сегодня мы выпускаем полный исходный код и активы на GitHub вместе с нашими партнёрами Novelab.

Репозиторий: https://github.com/WonderlandEngine/wonderbricks

Что вы получаете 

  • Полный исходный код проекта (MIT)
  • Креативные активы (CC-BY)
  • Рабочий эталон для проектов VR и MR (включая поддержку ручного слежения на поддерживаемых устройствах)

Цель — упростить разработчикам обратный инжиниринг, выясняя, как может быть структурирован крупный проект и как различные функции Wonderland Engine объединяются вместе.

Структура репозитория 

Wonderbricks — это стандартный проект Wonderland Engine с несколькими соглашениями, которые хорошо масштабируются, когда прототип перерастает в выпущенное приложение.

  • js/ — код приложения (геймплей, UI, аудио, утилиты)
  • models/ — 3D модели
  • textures/ — текстуры и атласы
  • shaders/ — пользовательские шейдеры
  • static/ — активы, подгружаемые во время выполнения (шрифты, музыка, звуковые эффекты)
  • raw/ — исходные аудио файлы (до обработки)
  • WonderBricks.wlp — файл проекта в редакторе Wonderland

Точка входа 

js/index.js — сгенерированная точка входа, используемая проектами Wonderland Engine. Рекомендуется открыть его в первую очередь, так как он показывает очевидную структуру приложения:

  • импорт и регистрация компонентов (генерируется на основе того, что используется в редакторе)
  • параметры времени выполнения (генерируются из настроек в редакторе)
  • загрузка основной сцены

Если вы хотите понять, “где начинается приложение?”, это файл, который стоит посмотреть.

Геймплей, UI, аудио 

Код в js/ разделен по ответственности:

  • js/gameplay/ содержит цикл построения (размещение блоков, сетка / привязка, взаимодействия, префабы, частицы)
  • js/ui/ содержит UI в мире (панели на руках, селекторы, кнопки)
  • js/sound/ содержит маленькую звуковую систему и эмиттеры для конкретных действий
  • js/utils/ содержит небольшие помощники (теги, материалы и т.д.)

Такое разделение не является правилом, но делает проект более читабельным, когда несколько систем развиваются параллельно.

Шейдеры 

shaders/ содержит пользовательские фрагментные шейдеры, демонстрирующие несколько возможностей, доступных из редактора:

  • переключение функций шейдера
  • запрос только нужных входных данных
  • объявление структуры Material, чтобы редактор мог создавать UI для свойств материалов в пользовательских шейдерах

Если вы создаете пользовательскую отрисовку на основе Wonderland Engine, это полезный источник информации.

Компиляция проекта 

Wonderbricks полностью собирается через редактор. Начните с клонирования проекта (или загрузки ZIP с GitHub):

1git clone https://github.com/WonderlandEngine/wonderbricks.git

А затем нажмите зеленую кнопку со стрелкой вверху, чтобы запустить его в браузере.

Чтобы запустить на Meta Quest:

  1. Включите режим разработчика на вашем Meta Quest
  2. Подключите его через USB-кабель
  3. В редакторе Wonderland выберите Meta Quest в выпадающем списке устройств вверху
  4. Нажмите зеленую стрелку, чтобы запустить браузер на устройстве (Настройка переадресации порта выполнена за вас.)

Почему сделать open source 

Отточенный эталонный проект отвечает на вопросы, которые документация не может полностью охватить:

  • как структурировать большой проект
  • как не допустить превращения логики игры, UI и активов в единый блок
  • как выглядит “готовая к выпуску” настройка Wonderland Engine от начала до конца
  • как изучить движок без необходимости читать документацию (в конце концов, это самый увлекательный способ учиться).

Если вы оцениваете Wonderland Engine, у вас есть что-то конкретное для изучения. Если вы уже его используете, это набор шаблонов, которые вы можете использовать (или игнорировать), в зависимости от того, что лучше подходит вашему проекту.

Замечания 

Если вы создадите что-то на основе этого репозитория и захотите поделиться, разместите это в нашем сообществе Discord:

https://discord.wonderlandengine.com

Last Update: February 7, 2026

Будьте в курсе.