Wonderbricks è ora Open Source
Wonderbricks è iniziato come un progetto di produzione: un’esperienza WebXR completa che potessimo distribuire e indicare quando qualcuno ci chiedeva “come appare in pratica un grande progetto con Wonderland Engine?”.
Oggi stiamo rilasciando l’intero codice sorgente e le risorse su GitHub insieme ai nostri partner Novelab.
Repository: https://github.com/WonderlandEngine/wonderbricks
Cosa ottieni
- Codice sorgente completo del progetto (MIT)
- Risorse creative (CC-BY)
- Un riferimento funzionante per progetti VR e MR (incluso il supporto tracciamento mani su visori compatibili)
L’obiettivo è facilitare i sviluppatori nel comprendere come strutturare un grande progetto e come le varie funzionalità di Wonderland Engine si integrano tra loro.
Struttura del repository
Wonderbricks è un progetto standard di Wonderland Engine con alcune convenzioni che scalano bene quando un prototipo si trasforma in un’app distribuita.
js/— codice dell’applicazione (gameplay, interfaccia utente, audio, utility)models/— modelli 3Dtextures/— texture e texture atlasshaders/— shader personalizzatistatic/— risorse servite a runtime (font, musica, effetti sonori)raw/— risorse audio sorgente (prima dell’elaborazione)WonderBricks.wlp— file del progetto nell’Editor di Wonderland
Punto di ingresso
Il file js/index.js è il punto di ingresso generato utilizzato nei progetti di Wonderland Engine. È utile aprirlo per primo perché rende evidente la composizione dell’app:
- importazione e registrazione dei componenti (generato da ciò che viene utilizzato nell’editor)
- opzioni di runtime (generate dalle impostazioni nell’editor)
- caricamento della scena principale
Se stai cercando di capire “da dove inizia l’app?”, questo è il file da guardare.
Gameplay, UI, audio
Il codice sotto js/ è suddiviso per responsabilità:
js/gameplay/contiene il ciclo di costruzione (posizionamento blocchi, griglia / snapping, interazioni, prefab, particelle)js/ui/contiene l’interfaccia utente nel mondo (pannelli montati su braccio, selettori, pulsanti)js/sound/contiene un piccolo sistema audio ed emettitori specifici per azionijs/utils/contiene piccoli aiuti (tag, helper per i materiali, ecc.)
Questa separazione non è una regola, ma mantiene il progetto leggibile quando più sistemi evolvono in parallelo.
Shaders
shaders/ contiene shader frammento personalizzati che dimostrano alcune caratteristiche rivolte all’editor:
- attivazione/disattivazione di funzionalità dello shader
- richiedere solo gli input necessari
- dichiarare una struttura
Materialaffinché l’editor possa generare l’interfaccia utente per le proprietà del materiale negli shader personalizzati
Se stai costruendo rendering personalizzati su Wonderland Engine, è un riferimento utile.
Costruire il progetto
Wonderbricks è completamente costruito tramite l’editor. Inizia eseguendo il checkout del progetto (o scaricando lo ZIP da GitHub):
1git clone https://github.com/WonderlandEngine/wonderbricks.gitQuindi premi la freccia verde in alto per lanciarlo nel browser.
Per eseguirlo su un Meta Quest:
- Abilita la modalità sviluppatore sul tuo Meta Quest
- Collegalo tramite cavo USB
- Nell’Editor di Wonderland seleziona il Meta Quest nel menu a discesa del dispositivo in alto
- Premi la freccia verde per avviare il browser sul Quest (il port forwarding è già configurato per te).
Perché rilasciarlo open source
Un progetto di riferimento ben rifinito risponde a domande che la documentazione non può coprire completamente:
- come strutturare un progetto più grande
- come mantenere la logica di gioco, l’interfaccia utente e le risorse separate da diventare un unico blocco
- come appare un setup “pronto per la distribuzione” con Wonderland Engine da cima a fondo
- come imparare a usare il motore senza dover leggere tutta la documentazione (alla fine, è il modo più divertente per imparare.)
Se stai valutando Wonderland Engine, questo ti offre qualcosa di concreto da ispezionare. Se lo stai già utilizzando, è un insieme di modelli che puoi copiare (o ignorare) in base a cosa si adatta meglio al tuo progetto.
Note
Se costruisci qualcosa basato su questo repository e vuoi condividerlo, pubblicalo nella nostra community su Discord:
https://discord.wonderlandengine.com
