Publicación

¿Cómo publicar mi proyecto?

Antes de empezar

Asegúrate de lo siguiente:

  • Tu escena cumple con todas las limitaciones de la escenaarrow-up-right. La mayoría de estas se validan cada vez que ejecutas una vista previa de tu escena.

  • Tienes una Metamaskarrow-up-right cuenta, con tus parcelas de LAND asignadas a ella.

  • Posees la cantidad necesaria de parcelas de LAND adyacentes o un Decentraland NAME. De lo contrario, puedes comprar LAND en el Marketarrow-up-right o un NAME en el Builderarrow-up-right.

    {% hint style="warning" %} 📔 Nota: Las escenas de múltiples parcelas solo pueden desplegarse en parcelas adyacentes. {% endhint %}

triangle-exclamation

Verificar datos de la escena

Al desplegar, la CLI lee información del scene.json archivo para determinar dónde desplegar tu escena.

Abre el scene.json archivo de tu escena y completa los siguientes datos:

  • title: El título se muestra en la UI debajo del minimapa, cada vez que los jugadores entran en tu escena. También se muestra en el popup de teletransporte.

  • description: Una descripción de lo que los jugadores encontrarán en tu escena. Esto se muestra en el popup de teletransporte.

  • navmapThumbnail: Una imagen que representa tu escena. Esto se muestra en el popup de teletransporte. La imagen debe ser un .png o .jpg imagen de un tamaño recomendado de 228x160 píxeles.

  • Parcels: Las coordenadas de las parcelas que serán ocupadas por tu escena

  • Base: Las coordenadas de la parcela que se considerará la coordenada [0,0] de la escena. Si tu escena tiene múltiples parcelas, debe ser la parcela inferior izquierda (South-West).

  • spawnPoints: Un conjunto de coordenadas dentro de la escena (relativas a la parcela base de la escena) donde los jugadores aparecen. Por defecto los jugadores aparecen en la 0,0,0 ubicación de la escena (esquina inferior izquierda). Usa esto para iniciar a los jugadores en una ubicación específica, o establece una región para evitar que los jugadores se solapen entre sí cuando aparecen por primera vez.

  • tags: Un conjunto de etiquetas que describen tu escena. Estas ayudan a los jugadores a explorar Decentraland facilitando la búsqueda de contenido que les interese. Consulta la lista de etiquetas disponiblesarrow-up-right.

  • rating: Esto se usa para clasificar el contenido de tu escena según su idoneidad para diferentes grupos de edad (T para Teens o A para Adults). Ayuda a filtrar el contenido para los jugadores.

circle-exclamation

Para publicar la escena

Usando el Scene Editor en Creator Hub

El Scene Editor en Creator Hub ofrece una forma fácil de publicar tus escenas. Asegúrate de haber hecho clic en el instalado el Creator Hubarrow-up-right.

  1. Abre tu proyecto de escena.

  2. Haz clic en el Publish botón en la esquina superior derecha.

  3. Se mostrará un aviso preguntando si deseas publicar en un WORLD o en LAND.

    • Selecciona PUBLISH TO WORLD para que tu escena esté disponible en uno de tus WORLDsarrow-up-right. Luego selecciona a cuál de tus NAMEs o dominios ENS publicar.

    • Selecciona PUBLISH TO LAND si eres propietario de LAND, o te han otorgado permisos de despliegue por un propietario. Luego selecciona las parcelas donde quieres desplegarla en el mapa. Las parcelas donde tienes permiso para desplegar se muestran en rosa.

    • Selecciona Servidores alternativos para publicar en el servidor de prueba o un servidor personalizado.


  1. Esto abre una nueva pestaña en tu navegador, mostrando detalles sobre la subida. Aprueba la transacción.

    • Para LAND en una cuenta de Metamask en el navegador, confirma el despliegue. Luego aprueba la transacción en la extensión de Metamask del navegador.

    • Para LAND vinculado a una wallet que puedes usar vía Wallet Connect, haz clic en Connect wallet, luego escanea el código QR con tu dispositivo móvil y sigue los pasos en Wallet Connect.

Vía la CLI

  1. Inicia sesión en tu cuenta de Metamask con la misma dirección pública asociada a tus parcelas en Decentraland.

  2. Ejecuta npm run deploy desde la carpeta de la escena.

circle-info

💡 Consejo: Si hay archivos en tu carpeta de proyecto que no quieres desplegar, enuméralos en el archivo _.dclignore_ antes de desplegar.

  1. Se abrirá una pestaña del navegador, mostrando a qué parcelas te estás desplegando. Haz clic en Sign and Deploy.

  2. Metamask se abre, notificándote que se solicita tu firma. Haz clic en Sign para confirmar esta acción.

circle-info

💡 Consejo: Si estás implementando un flujo de integración continua, donde los cambios en tu escena se despliegan automáticamente, entonces puedes establecer la variable de entorno export DCL_PRIVATE_KEY a la clave privada de una cuenta que tenga permisos de despliegue.

circle-info

💡 Consejo: npm run deploy ejecuta un npm run build, que verifica la escena por errores de tipo más estrictamente que ejecutar npm run start. Si estos errores no se pueden evitar (por ejemplo: ocurren en una librería externa) y no afectan la escena, puedes usar npm run deploy --skip-build para omitir el paso de npm run build y desplegar la escena tal como está.

Publicar en Worlds

Para publicar tu escena en un Decentraland World, necesitas poseer un Decentraland NAME o un dominio ENS. Consulta Publishing Options para información sobre cómo obtener uno.

Configurar scene.json

Necesitas especificar bajo qué name se realizará tu despliegue. Agrega la siguiente sección en tu scene.json:

El name especificado en el scene.json puede ser un Decentraland NAME o un dominio ENS. Debe ser propiedad de la wallet que firma el despliegue, o de cualquier wallet a la que se le haya dado permiso vía Access Control Lists (ACL).

Ten en cuenta lo siguiente:

  • La wallet que firma el despliegue debe poseer el NAME especificado en el scene.json archivo

  • La escena no tiene limitaciones de parcelas (desde enero de 2023)

  • Todos los Worlds se listan automáticamente en la página Places a menos que optes por no hacerlo como se detalla a continuación

Opt-out de la lista en Places

Si deseas excluir tus Worlds de ser indexados en Places, puedes añadir la siguiente sección en tu scene.json:

Usando el Scene Editor en Creator Hub

  1. Abre tu proyecto de escena.

  2. Haz clic en el Publish botón en la esquina superior derecha.

  3. Selecciona PUBLISH TO WORLD.

  4. Selecciona a cuál de tus NAMEs o dominios ENS publicar.

Vía la CLI

Usa el siguiente comando:

Una vez que ejecutes el comando, se te solicitará firmar el despliegue con tu wallet y se ejecutará un conjunto de validaciones para permitir o rechazar la escena.

Accediendo a un World

Una vez que una escena está subida al servidor de Worlds, puedes acceder a ella usando el Decentraland Explorer con la siguiente URL: decentraland://?realm=NAME.dcl.eth, donde NAME debe ser reemplazado por el Decentraland NAME o dominio ENS al que desplegaste.

Con Decentraland ya abierto, también puedes saltar a un world escribiendo el /goto NAME.dcl.eth comando en la caja de chat.

Vea Hacer descubriblearrow-up-right para más información sobre cómo hacer tu World descubrible.

Migrar un World a Genesis City

Si eres propietario de LAND y deseas desplegar una escena World en Genesis City, puedes hacerlo redeployando tu escena a la red descentralizada Catalyst, que es el servidor de contenido para Genesis City.

Cosas a recordar:

  • Elimina la sección worldConfiguration de scene.json

  • ¡La limitación de tamaño para Worlds (dinámica según tenencias) es diferente a la de parcelas LAND (15MB por parcela), así que asegúrate de que tu escena tenga el tamaño correcto para despliegues en Genesis City!

Publicar desde un hardware wallet

En lugar de almacenar tus tokens LAND en una cuenta de Metamask, puede ser más seguro guardarlos en un dispositivo hardware wallet, como un Ledgerarrow-up-right o un Trezorarrow-up-right, que esté físicamente conectado a tu ordenador.

Si usas uno de estos dispositivos, puedes vincular el hardware wallet a Metamask para habilitar la firma de mensajes, manteniendo los tokens más seguros. Consulta este artículo de Metamaskarrow-up-right para instrucciones sobre cómo conectar tu cuenta.

Una vez que tu hardware wallet pueda usarse vía Metamask, puedes desplegar siguiendo los mismos pasos que si tus tokens estuvieran en una cuenta de Metamask.

Sobrescritura de escenas

Cuando se despliega una nueva escena, sobrescribe el contenido anterior que existía en las parcelas que ocupa.

Si una escena que ocupa múltiples parcelas es sobrescrita solo parcialmente por otra, todas sus parcelas son ya sea sobrescritas o borradas.

Supongamos que desplegaste tu escena A en dos parcelas [100, 100] y [100, 101]. Luego vendes la parcela [100, 101] a un usuario que posee tierra adyacente y ese despliega una escena grande (B) en varias parcelas, incluyendo [100, 101].

Tu escena A no puede renderizarse parcialmente en solo una parcela, así que [100, 100] no mostrará ningún contenido. Debes crear una nueva versión de la escena A que solo ocupe una parcela y desplegarla solo en la parcela [100, 100].

Qué son los servidores de contenido

Los servidores de contenido son una red de servidores propiedad de la comunidad con un sistema de archivos direccionado por contenido, lo que significa que cada archivo se identifica por su contenido, no por un nombre de archivo arbitrario.

Usamos los servidores de contenido para alojar y distribuir todo el contenido de las escenas de manera similar a BitTorrent, manteniendo la red de Decentraland distribuida.

  1. Los servidores de contenido almacenan y distribuyen todos los assets requeridos para renderizar tus escenas.

  2. El npm run deploy el comando enlaza estos assets con la parcela de LAND especificada en tu scene.json archivo. Cada vez que redeployas tu escena, la CLI actualizará tu smart contract de LAND, si es necesario, para apuntar al contenido más reciente disponible en los servidores de contenido.

La información en cada copia del servidor es verificable, ya que cada escena está firmada por el hash del propietario del LAND. Esto significa que alguien que aloje una copia del servidor no podrá manipular el contenido para mostrar algo ilegítimo. La comunidad también puede votar para aprobar o eliminar cualquiera de estos servidores usando la DAO.

El servidor de prueba

Puedes desplegar contenido en el servidor catalyst de prueba para realizar pruebas completas con múltiples usuarios, las escenas circundantes y un entorno idéntico al de producción. El servidor de prueba es idéntico a los demás servidores catalyst. La diferencia es que el contenido desplegado en este servidor no se propaga a los otros. Sin embargo, el contenido desplegado en otros servidores sí se propaga a este servidor, por lo que las escenas circundantes deberían verse como se verán en producción.

circle-exclamation

Los jugadores nunca son dirigidos a este servidor; la única forma de acceder a él es proporcionando explícitamente un parámetro URL para conectarse a él.

Si trabajas en un proyecto confidencial que no quieres desvelar hasta el lanzamiento, ten en cuenta que el servidor de prueba está relativamente oculto para los jugadores, pero cualquiera que use explícitamente la URL del servidor de prueba podría potencialmente entrar en él.

Vía la CLI

Para desplegar en el servidor de prueba, ejecuta:

npm run deploy -- --target peer-testing.decentraland.org

Para entrar al servidor de contenido, añade &CATALYST=peer-testing.decentraland.org a la URL de Decentraland

https://play.decentraland.org/?CATALYST=peer-testing.decentraland.org

Servidores personalizados

Puedes desplegar contenido en un servidor personalizado que no pertenezca a la red oficial de servidores catalyst mantenida por la DAO. Para hacer esto, no necesitas poseer ningún token LAND o NAME, ya que puedes configurar el servidor para usar la lógica de validación que prefieras para controlar quién puede desplegar dónde. Los servidores personalizados pueden elegir incluir contenido de los servidores oficiales (que puedes sobrescribir), o empezar desde cero y publicar contenido completamente nuevo.

Vea Cómo ejecutar tu propio Catalyst Nodearrow-up-right para más información sobre lo que puedes hacer con tu propio servidor y cómo configurarlo.

circle-exclamation

Los jugadores nunca son dirigidos a este servidor; la única forma de acceder a él es tecleando explícitamente la URL para conectarse a él.

Vía la CLI

Para desplegar en un servidor personalizado, ejecuta:

npm run deploy -- --target <CUSTOM SERVER DOMAIN>

La URL para entrar a tu escena desplegada en tu servidor personalizado dependerá del dominio donde esté alojada.

Verificar el éxito del despliegue

Una vez que desplegaste tu escena, estos cambios tardarán unos minutos en propagarse por los distintos servidores de contenido de la red. Si entras en Decentraland justo después de desplegar, es posible que aún veas la versión anterior de tu contenido, dependiendo del realm al que entres.

Después de que firmas para autorizar el despliegue de tu escena, la dapp de firma empezará a mostrar confirmaciones de que la nueva versión de tu contenido se ha propagado por todos los servidores de la red.

Verás una lista de cada uno de los servidores que forman la red de contenido de Decentraland. Para cada servidor, se especifica la marca de tiempo del último cambio subido en esa parcela. Cada servidor corresponde a un realm diferente. Puedes ver cómo estos nombres de servidores se mapean a nombres de realm en la pantalla de monitor de catalystarrow-up-right.

También puedes obtener esta información en cualquier momento ejecutando el siguiente comando en la consola de línea de comandos:

npx @dcl/opscli pointer-consistency --pointer 0,0

circle-exclamation

Despliegues automáticos

Si regularmente haces cambios en el contenido de tu escena y quieres implementar una canalización de publicación optimizada, puedes automatizar el despliegue de tu escena mediante una acción de GitHub.

Para ello, primero debes almacenar tu escena en un proyecto de GitHub. Luego puedes configurar una GitHub actionarrow-up-right con el siguiente script, que se ejecuta cada vez que hay un merge a la rama main . El script instala las dependencias, construye el proyecto y luego lo despliega a Decentraland.

Importante: Para que este proceso se ejecute, debes establecer la clave privada de una wallet como una variable de entorno en GitHub, que se utiliza para firmar el despliegue. Como siempre, ten mucho cuidado al mantener las claves privadas seguras. NO uses la clave privada de la cuenta que realmente posee los tokens de land, ya que eso supondría riesgos de seguridad significativos. En su lugar, delega derechos de operador a una wallet desechable que no posea tokens valiosos. Si alguna vez se filtra esta clave privada, puedes revocar fácilmente esos derechos de operador de la cuenta y configurar una nueva wallet.

Última actualización