# Comprueba los datos de nivel antes de que lleguen al bucle del juego.

> Rechace niveles de juego con formato incorrecto antes de jugar validando la estructura, los límites numéricos, las referencias y la accesibilidad con un comportamiento alternativo claro.

- URL: https://oneshotgems.ai/es/topics/game-level-data-validation
- Categoría: Para desarrolladores de juegos
- Tipo: Guía
- Actualizado: 5 de octubre de 2026

Un archivo de nivel puede ser JSON válido y aun así describir un escenario que no se puede reproducir: una salida faltante, un punto de generación fuera de rango o una puerta que no hace referencia a ninguna clave. Trate el análisis y la validación del juego como pasos separados. El análisis comprueba que el texto tenga una gramática JSON válida; La validación comprueba si la estructura resultante satisface las reglas que espera su juego. Detecta estos problemas antes de que se conviertan en un bloqueo inexplicable durante el juego o en un jugador atrapado en una sala sin una ruta válida.

## Validar la forma y los rangos permitidos.

Defina la estructura de un nivel con los campos obligatorios, como id, width, height, tiles, spawn, exits y entities. Compruebe que las dimensiones sean enteros positivos dentro de los límites que admite el juego, que el array de tiles contenga exactamente width × height elementos y que cada tile use un tipo conocido. Valide las coordenadas de las entidades respecto de la cuadrícula y exija identificadores únicos para puertas, llaves, interruptores y objetivos. Comprobar solo que un valor sea un número no basta: rechace expresamente valores similares a NaN y valores fuera de rango.

Mantenga separados los campos opcionales y los obligatorios. Asigne un valor predeterminado a una paleta decorativa omitida, pero no invente en silencio un punto de aparición o una salida que falten si eso puede cambiar el rompecabezas. Devuelva errores con una ruta como levels[2].entities[4].x para que quien edita el contenido encuentre rápidamente el campo defectuoso.

## Comprobar relaciones e invariantes jugables.

Después de la validación estructural, verifique las reglas entre campos. Cada puerta cerrada debe hacer referencia a una llave existente; cada llave obligatoria debe estar accesible ante su puerta; una salida no debe quedar dentro de una losa sólida. Ejecute una búsqueda de ruta desde el lugar de generación y confirme que se pueden alcanzar los objetivos requeridos según las reglas de movimiento del juego. Si los enemigos o las plataformas móviles afectan el acceso, use un validador más específico o una prueba de juego en lugar de afirmar que una simple ruta de cuadrícula demuestra que todo el nivel tiene solución.

## Falla de forma segura y prueba el propio validador

MDN señala que JSON.parse lanza un SyntaxError cuando el JSON no es válido, así que captura los errores de análisis por separado de los errores de esquema. Durante el desarrollo, informa del archivo exacto y de la regla incumplida. En la versión para jugadores, carga una alternativa conocida o muestra un estado claro de nivel no disponible en lugar de iniciar con datos parciales. Mantén casos de prueba con campos ausentes, referencias incorrectas, rutas bloqueadas y un nivel pequeño válido; este último evita que un validador rechace todo.

## Preguntas

**¿Es suficiente JSON.parse exitoso para confiar en un archivo de nivel?** No. El análisis confirma la sintaxis, no la forma, los rangos, las referencias o las reglas de resolución específicas del juego. Valida cada uno de ellos antes de pasar el nivel al código de juego.

**¿Debería el juego reparar automáticamente los niveles no válidos?** Sólo para valores predeterminados seguros e inequívocos. Si reparar un objetivo o ruta faltante cambia el diseño, rechaza el nivel y usa un recurso alternativo conocido en lugar de ocultar el defecto.

## Sigue tu curiosidad

- [Prueba el contenido generado para el juego antes de publicarlo](https://oneshotgems.ai/es/topics/testing-generated-game-content): Revisa los niveles, diálogos y descripciones de objetos generados frente a reglas de contenido concretas, comprobaciones de jugabilidad y señales coherentes.
- [Escribe criterios de aceptación para un prompt de juego](https://oneshotgems.ai/es/topics/game-prompt-acceptance-criteria): Convierte una idea de juego en criterios de aceptación comprobables, con acciones, resultados y casos de fallo claros, y un alcance inicial deliberadamente pequeño.

## Más información

- [MDN JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)

---
Página canónica: https://oneshotgems.ai/es/topics/game-level-data-validation
