For the complete documentation index, see llms.txt. This page is also available as Markdown.

Solución de problemas

Soluciones para problemas comunes

Problemas al ejecutar preview

Problema: No se puede ejecutar ninguna preview de la escena, el mensaje de error dice menciona Permisos denegados o EACCES

Tu sistema operativo no te permite editar los permisos de la carpeta donde quieres ejecutar el proyecto. Al ejecutar la escena, algunas dependencias deben instalarse, pero está prohibido. Necesitas configurar los permisos de la carpeta para permitir que tu cuenta de usuario de Windows/Mac/Linux edite los archivos en ella.

Recursos útiles:

Problema: No se puede ejecutar la preview de una escena en particular, el error dice Error: Error al construir el proyecto

Si estás ejecutando una escena que te compartieron, asegúrate de que esta escena no se haya compartido incluyendo una node_modules o carpeta bin o un package-lock.json archivo. Estos archivos contienen dependencias que usan versiones específicas para tu sistema operativo y máquina; deberían generarse al ejecutar la escena por primera vez. Elimina estas carpetas y archivo manualmente, luego ejecuta npm run start de nuevo.

Problema: Ejecutar npm run start se ejecuta, no hay mensaje de error, pero no se abre ninguna ventana del navegador y no aparece ninguna URL en la salida para abrir la preview

Asegúrate de que tu versión de Node esté actualizada. Debe ser 16 o más reciente.

Problema: Ejecutar npm run start abre una pestaña del navegador, pero la pantalla de carga nunca termina de cargar, o veo una banda de error roja que dice "critical error".

  • Asegúrate de tener instalada la última versión del SDK de Decentraland en tu proyecto. Ejecuta:

    npm i @dcl/sdk"latest

Problema: La escena se ejecuta, en la consola veo Dependencias cíclicas advertencias.

Esto se refiere a archivos de tu escena que se referencian mutuamente entre sí. Esto no es necesariamente un problema, pero no es un patrón recomendable para escribir software, ya que puede provocar condiciones de carrera difíciles de depurar y otros problemas. Es probable que tu escena funcione bien a pesar de estas advertencias.

Idealmente, la carga del código en tu escena debería seguir un orden secuencial claro. El código que tiene dependencias cíclicas puede sufrir el problema del huevo y la gallina, donde el compilador no sabe cuál iniciar primero. A menudo esto se resuelve sin problemas, pero es una buena práctica evitarlo.

Para corregir estas dependencias, a menudo debes recurrir a llamar funciones o constructores de objetos pasando referencias a entities/objects ya instanciados en los argumentos de la función; en lugar de codificar referencias a estas entities/objects en la función, que pueden o no estar ya instanciados.

Problemas al desplegar

Problema: No tienes permisos para desplegar en estos parcels

  • Asegúrate de que el scene.json archivo de tu escena enumere correctamente las coordenadas donde quieres desplegar.

  • Asegúrate de que Metamask esté correctamente configurado para usar el wallet correcto para firmar la transacción. Este puede ser el wallet que posee los tokens LAND, o puede tener permisos de operador otorgados por el propietario.

Problema: Ejecutar npm run deploy falla

  • Revisa los spawn points de tu escena, las tres coordenadas x,y,z de un spawn point deben ser un número o un rango. O las tres son números o las tres son rangos. No se admite tener rangos para algunas y números para otras.

    Por ejemplo, esto no es compatible:

    "position": {"x": [1,4], "y": 0, "z": [1,4]}

    Esto sí es compatible:

    "position": {"x": [1,4], "y": [0,0], "z": [1,4]}

  • Es posible que el servidor catalyst predeterminado al que se te asignó desplegar esté caído o tenga problemas. Puedes forzar el npm run deploy comando para desplegar en un servidor catalyst específico en su lugar. Para desplegar en un servidor específico en el Decentraland Editor:

    1. Abre tu escena y haz clic en Publish

    2. Selecciona la opción Publish to a different server en la parte inferior.

    3. En el desplegable, selecciona Custom Server

    4. Introduce la dirección del servidor, por ejemplo peer-testing.decentraland.org

    5. Haz clic en Publicar en servidor personalizado

    6. Aprueba la transacción como en un despliegue normal.

    Para hacerlo mediante la CLI:

    npm run deploy -- --target-content <server-name>

    Por ejemplo:

    npm run deploy -- --target-content peer-ec1.decentraland.org

    Consulta catalyst-monitor para comprobar el estado de todos los servidores en la red catalyst. También puedes copiar las direcciones de cada uno desde la parte superior de cada tarjeta.

  • Revisa el package.json. Un problema común es que haya un bundleDependencies y también un bundledDependencies (d extra). Esto a veces puede resultar de ejecutar diferentes versiones de Node en el mismo proyecto en distintos momentos, o de compartir el proyecto entre personas que lo ejecutaron con diferentes versiones de Node instaladas. Elimina bundleDependencies, que se relaciona con versiones más antiguas de Node.

Además, asegúrate de tener tu versión de Node actualizada, al menos la versión 16.

Problema: Ejecutar npm run deploy o npm run build reporta errores de tipo

Tu escena puede tener errores de tipo reportados por TypeScript, por ejemplo indicando que una determinada variable podría ser de tipo cualquier o que undefined o null no están permitidos. Al ejecutar npm run deploy, también se ejecuta npm run build, que es un poco más estricto con estas comprobaciones que npm run start.

A diferencia de JavaScript, TypeScript aplica un tipado estricto a todas las variables. Aunque tu escena esté escrita de tal manera que, por ejemplo, un cierto valor nunca será undefined, TypeScript necesita saber qué ocurriría en ese escenario, o necesitas aclarar explícitamente que el valor solo puede ser, por ejemplo, una string.

Como alternativa, puedes ejecutar npm run deploy --skip-build para omitir la ejecución de npm run buildy evitar que se ejecuten estas comprobaciones.

Problema: Desplegué mi escena pero no veo los cambios cuando entro a Decentraland

  • Ten en cuenta que puede tardar unos minutos en que el contenido nuevo se propague por todos los servidores de la red catalyst; dale un poco de tiempo.

  • Consulta Verificar que el despliegue fue exitoso para obtener instrucciones sobre cómo puedes asegurarte de que el contenido se propagó correctamente a todos los servidores.

Problema: Una vez desplegada, faltan algunos modelos 3D

  • Asegúrate de que todos los modelos 3D estén dentro de los límites de la escena, incluso sus cajas delimitadoras. Si alguna parte de tus modelos se extiende más allá de estos límites al ejecutar una preview, estas partes que se extienden se recortarán y no se renderizarán, tanto al ejecutar una preview como en la escena publicada.

Problema: Una vez desplegados, mis modelos 3D se ven diferentes

  • Si las texturas se ven diferentes, ten en cuenta que las texturas en modelos 3D tienen un tamaño máximo de 512x512 píxeles. Esta conversión se realiza para garantizar que Decentraland funcione sin problemas para todos.

  • Si los modelos se ven diferentes, podría haber un problema con la conversión de los modelos a asset bundles. Lee más sobre la compresión de asset bundle aquí.

    Para validar esto, intenta ejecutar la escena con el parámetro de URL &DISABLE_ASSET_BUNDLES. Si los modelos se ven bien con esta bandera, el problema debe estar relacionado con un error en la conversión del modelo.

    Ten en cuenta que la generación de versiones comprimidas de asset-bundle de tus modelos es un proceso que requiere tiempo de los servidores (aproximadamente una hora). Puedes comprobar si los modelos se están cargando como asset bundles comprimidos o no escribiendo el siguiente comando en la ventana del chat /detectabs. Los modelos comprimidos aparecen teñidos de verde; los no comprimidos, de rojo.

Problema: Mi escena tiene un FPS bajo en producción, aunque funciona sin problemas en preview.

El rendimiento de tu escena podría verse afectado por escenas vecinas que siguen malas prácticas, ya que también se ejecutan en paralelo. Puedes validar que ese es el caso abriendo la configuración y estableciendo la línea de visión al mínimo, de modo que solo se cargue 1 parcel alrededor de tu escena actual.

Puedes reducir aún más la línea de visión ejecutando tu escena con el parámetro &LOS=0, para no cargar ninguna escena circundante en absoluto.

Si acabas de desplegar tu escena, la carga al cargar la escena también podría reducirse una vez que los servidores conviertan los modelos 3D de la escena en asset bundles comprimidos. Puedes comprobar si los modelos se están cargando como asset bundles comprimidos o no escribiendo el siguiente comando en la ventana del chat /detectabs. Los modelos comprimidos aparecen teñidos de verde; los no comprimidos, de rojo.

Reportar un bug

Si encuentras un problema que no está en tu scene, sino en el SDK de Decentraland en general, consulta Reportar un bug.

Última actualización