Publicación

¿Cómo publicar mi proyecto?

Antes de comenzar

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 multiparcela solo se pueden desplegar en parcelas adyacentes. {% endhint %}

triangle-exclamation

Comprobar 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 bajo el minimapa, cada vez que los jugadores entran en tu escena. También aparece 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 (Suroeste).

  • 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). Úsalo para iniciar a los jugadores en una ubicación específica, o establece una región para evitar que los jugadores se superpongan 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 encontrar 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 Adolescentes o A para Adultos). Ayuda a filtrar contenido para los jugadores.

circle-exclamation

Para publicar la escena

Usando el Scene Editor en Creator Hub

El Scene Editor en Creator Hub proporciona una forma sencilla de publicar tus escenas. Asegúrate de que has instalado el Creator Hubarrow-up-right.

  1. Abre el proyecto de tu escena.

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

  3. Aparecerá un mensaje preguntando si quieres publicar en un WORLD o en LAND.

    • Selecciona PUBLISH TO WORLD para hacer tu escena disponible en uno de tus WORLDs. Luego selecciona a cuál de tus NAMEs o dominios ENS publicar.

    • Selecciona PUBLISH TO LAND si eres propietario de LAND, o te han dado permisos de despliegue por parte de 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 pruebas o en 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 navegador Metamask, 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

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

  1. Se abrirá una pestaña del navegador, mostrando en qué parcelas 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

💡 Tip: 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

💡 Tip: npm run deploy ejecuta un npm run build, que comprueba la escena en busca de errores de tipo más estrictamente que ejecutar npm run start. Si estos errores no pueden evitarse (por ejemplo: ocurren en una librería externa) y no impactan la escena, puedes usar npm run deploy --skip-build para omitir el npm run build paso 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 hará tu despliegue. Añade 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 mediante 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 parcela (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

Optar por no listar en Places

Si deseas optar por que tus Worlds no sean indexados en Places, puedes añadir la siguiente sección en tu scene.json:

Usando el Scene Editor en Creator Hub

  1. Abre el proyecto de tu 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 pedirá firmar el despliegue con tu wallet y se ejecutará un conjunto de validaciones para permitir o rechazar la escena.

Acceder a un World

Una vez que una escena se carga en el servidor de Worlds, puedes acceder a ella usando el Decentraland Explorer con la siguiente URL: decentraland://?realm=NAME.dcl.eth, donde NAME debe sustituirse 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 el chat.

Consulta Make discoverablearrow-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 redeplegando tu escena en la red descentralizada Catalyst, que es el servidor de contenido para Genesis City.

Cosas a recordar:

  • Elimina la worldConfiguration sección de scene.json

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

Publicar desde una hardware wallet

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

Si usas uno de estos dispositivos, puedes vincular la 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 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 solo es sobrescrita parcialmente por otra, todas sus parcelas se sobrescriben o se borran.

Supongamos que desplegaste tu escena A en dos parcelas [100, 100] y [100, 101]. Entonces 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, por lo que [100, 100] no mostrará ningún contenido. Debes construir una nueva versión de la escena A que ocupe solo una parcela y desplegarla únicamente 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 forma 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 vincula estos assets al parcel de LAND especificado en tu scene.json archivo. Siempre que redeployes 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 pruebas

Puedes desplegar contenido al servidor catalyst de prueba para ejecutar pruebas completas con múltiples usuarios, las escenas circundantes y un entorno idéntico al de producción. El servidor de pruebas es idéntico a todos los demás servidores catalyst. La diferencia es que el contenido desplegado en este servidor no se propaga a los demás. Sin embargo, el contenido desplegado en otros servidores sí se propaga a este servidor, por lo que las escenas circundantes deberían verse como 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 estás trabajando en un proyecto confidencial que no quieres revelar hasta el lanzamiento, ten en cuenta que el servidor de pruebas está relativamente oculto para los jugadores, pero cualquiera que use explícitamente la URL del servidor de pruebas podría potencialmente acceder a él.

Vía la CLI

Para desplegar en el servidor de pruebas, 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 hacerlo, no necesitas poseer ningún token LAND o NAME, ya que puedes configurar el servidor para usar cualquier lógica de validación que prefieras para controlar quién puede desplegar dónde. Los servidores personalizados pueden optar por incluir contenido de los servidores oficiales (que puedes sobrescribir), o empezar desde cero y publicar contenido completamente nuevo.

Consulta 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 escribir 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 se aloje.

Verificar éxito del despliegue

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

Después de que firmes para autorizar el despliegue de tu escena, la dapp de firma comenzará 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 conforman la red de contenido de Decentraland. Para cada servidor, se especifica la marca de tiempo del último cambio subido en esa parcela. Cada servidor se refiere a un realm diferente. Puedes ver cómo estos nombres de servidor se mapean a los nombres de realm en la pantalla del 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 con regularidad 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 en Decentraland.

Importante: Para que este proceso se ejecute, debes establecer la clave privada de una wallet como variable de entorno en GitHub, la cual se usa 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 esta clave privada se filtra alguna vez, puedes revocar fácilmente esos derechos de operador de la cuenta y configurar una nueva wallet.

Última actualización