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:
- Включите режим разработчика на вашем Meta Quest
- Подключите его через USB-кабель
- В редакторе Wonderland выберите Meta Quest в выпадающем списке устройств вверху
- Нажмите зеленую стрелку, чтобы запустить браузер на устройстве (Настройка переадресации порта выполнена за вас.)
Почему сделать open source
Отточенный эталонный проект отвечает на вопросы, которые документация не может полностью охватить:
- как структурировать большой проект
- как не допустить превращения логики игры, UI и активов в единый блок
- как выглядит “готовая к выпуску” настройка Wonderland Engine от начала до конца
- как изучить движок без необходимости читать документацию (в конце концов, это самый увлекательный способ учиться).
Если вы оцениваете Wonderland Engine, у вас есть что-то конкретное для изучения. Если вы уже его используете, это набор шаблонов, которые вы можете использовать (или игнорировать), в зависимости от того, что лучше подходит вашему проекту.
Замечания
Если вы создадите что-то на основе этого репозитория и захотите поделиться, разместите это в нашем сообществе Discord:
https://discord.wonderlandengine.com
