Solución de problemas

Correcciones para problemas comunes

Problemas al ejecutar la vista previa

Problema: No se puede ejecutar la vista previa de ninguna escena, el mensaje de error menciona Permisos denegados u EACCES

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

Recursos útiles:

Problema: No se puede ejecutar la vista previa de una escena en particular, el error dice Error: Error al compilar el proyecto

Si estás ejecutando una escena que fue compartida contigo, asegúrate de que esta escena no se compartió conteniendo un carpeta node_modules u bin carpeta, o un package-lock.json archivo. Estos archivos contienen dependencias que usan versiones específicas de tu SO y máquina, deben generarse al ejecutar la escena por primera vez. Elimina estas carpetas y archivo manualmente, luego ejecuta npm run start de nuevo.

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

Asegúrate de que tu versión de Node esté actualizada. Debe ser 16 o superior.

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

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

    npm i @dcl/sdk"latest

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

Estas se refieren a archivos en tu escena que se referencian mutuamente. 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 podría sufrir un problema de la gallina y el huevo, donde el compilador no sabe cuál iniciar primero. A menudo esto se resuelve sin problemas, pero es buena práctica evitarlo.

Para arreglar estas dependencias, a menudo debes recurrir a llamar funciones o constructores de objetos pasando referencias a entidades/objetos ya instanciados en los argumentos de la función; en lugar de codificar referencias a estas entidades/objetos 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 liste correctamente las coordenadas donde quieres desplegar.

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

Problema: Ejecutando npm run deploy falla

  • Revisa los puntos de spawn de tu escena, las tres coordenadas x,y,z de un punto de spawn deben ser o bien un número o bien un rango. O las tres son números o las tres son rangos. No está soportado tener rangos para algunas y números para otras.

    Por ejemplo esto no está soportado:

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

    Esto está soportado:

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

  • El servidor catalyst por defecto al que te asignan para desplegar podría estar caído o tener problemas. Puedes forzar el npm run deploy comando para desplegar a un servidor catalyst específico en su lugar. Para desplegar a un servidor específico en el Editor de Decentraland:

    1. Abre tu escena y haz clic 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 con un despliegue normal.

    Para hacer esto vía la CLI:

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

    Por ejemplo:

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

    Ver catalyst-monitorarrow-up-right para una comprobación de 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.jsonde tu escena. Un problema común es que hay un bundleDependencies y también una bundledDependencies (con una d extra) sección. 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 antiguas de Node.

También asegúrate de tener tu versión de Node actualizada, al menos la versión 16.

Problema: Ejecutando npm run deploy u npm run build informa errores de tipo

Tu escena podría tener errores de tipo reportados por TypeScript, por ejemplo indicando que cierta variable podría ser del tipo any o que undefined u null no están permitidos. Al ejecutar npm run deploytambié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 hace cumplir el tipado estricto de todas las variables. Aunque tu escena esté escrita de tal manera que por ejemplo un cierto valor nunca será undefined, TypeScript necesita saber qué pasarí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 build, y evitar que estas comprobaciones se ejecuten.

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

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

  • Ver Verificar el éxito del desplieguearrow-up-right para instrucciones sobre cómo puedes asegurarte de que el contenido se propagó correctamente a todos los servidores.

Problema: Una vez desplegado, faltan algunos modelos 3D

  • Asegúrate de que los modelos 3D estén todos 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 vista previa, esas partes que se extienden serán recortadas y no renderizadas, tanto al ejecutar una vista previa 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 están limitadas a un tamaño máximo de 512x512 píxeles. Esta conversión se realiza para asegurar 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 bundles aquíarrow-up-right.

    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 bug en la conversión del modelo.

    Ten en cuenta que la generación de versiones comprimidas en asset-bundles de tus modelos es un proceso que le toma tiempo a 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 de chat /detectabs. Los modelos comprimidos se tintan de verde, los no comprimidos se tintan de rojo.

Problema: Mi escena tiene bajo FPS en producción, aunque se ejecute sin problemas en la vista previa.

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 este sea el caso abriendo los ajustes y configurando 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 abrir la escena también podría reducirse una vez que los servidores conviertan los modelos 3D de la escena a 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 de chat /detectabs. Los modelos comprimidos se tintan de verde, los no comprimidos se tintan de rojo.

Reportar un error

Si encuentras un problema que no es causado por tu escena, sino por el SDK de Decentraland en general, por favor consulta Reportar un errorarrow-up-right.

Última actualización