¿Qué es el formato de archivo XNB?
.xnb es un archivo binario compilado que almacena un único recurso de juego producido por el Content Pipeline de XNA Game Studio. .xnb es un formato binario y puede contener imágenes, datos de audio, modelos 3D, fuentes y muchos otros recursos. Los activos de origen, como las texturas .png o los clips de audio .wav, se compilan en tiempo de construcción en archivos .xnb optimizados para la plataforma que el juego carga en tiempo de ejecución a través de Content.Load<T>().
Cada archivo .xnb comienza con la etiqueta ASCII XNB, seguida de un byte de plataforma de destino (w para Windows, x para Xbox 360, m para Windows Phone) y un byte de versión de formato. En la misma cabecera se codifica un indicador opcional de compresión LZX o LZ4.
XNA es un conjunto de herramientas de desarrollo para crear juegos para sistemas Microsoft Windows, Windows Phone y Xbox. El entorno de desarrollo de XNA se basaba en Visual Studio Express y estaba disponible de forma gratuita, ofreciendo un rico conjunto de herramientas y funciones para los desarrolladores de juegos. Microsoft descontinuó XNA con la versión 4.0 en 2010, finalizando el soporte alrededor de 2014. Los frameworks de código abierto MonoGame y FNA continúan leyendo y escribiendo el mismo formato .xnb, manteniéndolo vigente para títulos como *Terraria*, *Stardew Valley* y *Celeste*, que distribuyen su arte y audio como archivos .xnb.
Las herramientas de terceros, incluyendo xnbcli y XnbExtract, pueden despaquetar el contenido de .xnb para convertirlo de nuevo en activos de origen editables. Los archivos de bancos de audio de XNA relacionados utilizan las extensiones .xsb y .xwb.
Seguridad y protección
RIESGO: LOWUn XNB son datos de juego compilados inertes -una textura, sonido o tabla de datos- sin scripts ni contenido ejecutable, por lo que abrir o extraer uno no es peligroso en sí mismo. Dos precauciones prácticas: la extracción o redistribución de los activos de un juego se rige por los derechos de autor/EULA de ese juego (está bien para mods personales, no para redistribución), y debe descargar las herramientas XNB de sus repositorios oficiales (GitHub) en lugar de sitios aleatorios de «visor de xnb», que a menudo son trampas de publicidad/PUP ya que no existe un visor independiente legítimo de doble clic.
Detalles del formato
en pocas palabrasProgramas que abren archivos XNB
Detalles técnicos
especificación profunda| Codificación de archivo | Binario, orden de bytes little-endian |
| Bytes mágicos | 0x58 0x4E 0x42 (ASCII «XNB») en el desplazamiento 0 |
| Diseño de cabecera | Etiqueta ASCII de 3 bytes «XNB» + código de plataforma de 1 byte + versión de formato de 1 byte + indicadores de 1 byte + tamaño total del archivo de 4 bytes (uint32 little-endian) |
| Códigos de plataforma | «w» (0x77) = Windows, «x» (0x78) = Xbox 360, «m» (0x6D) = Windows Phone/Mobile - codificado en el byte 3 de cada cabecera |
| Versión de formato | Versiones 1-5; la versión 5 corresponde a XNA Game Studio 4.0 y es la versión utilizada por MonoGame y FNA |
| Compresión | Opcional - LZX (XNA 4.0) o LZ4 (algunas compilaciones de MonoGame); señalada por un bit de bandera en el byte de indicadores de la cabecera; la carga útil a menudo se almacena sin comprimir |
| Tipos de contenido soportados | Texturas (DXT1/DXT3/DXT5/Color RGBA), audio (PCM/ADPCM), modelos 3D, fuentes de mapa de bits, shaders de efectos compilados, hojas de sprites |
| Manifiesto de lector de tipos | La cabecera incluye una lista serializada de nombres de clase ContentTypeReader que el tiempo de ejecución utiliza para deserializar el grafo de objetos del recurso |
| Activos por archivo | Un activo principal por archivo .xnb; los sub-recursos compartidos están anidados dentro del grafo de objetos serializados del mismo archivo |
| Formatos de superficie de textura | Color (RGBA de 32 bits), DXT1 (comprimido por bloques 4:1 opaco), DXT3, DXT5 - formatos nativos de GPU que reducen la huella de VRAM al momento de la carga |
| Tamaño de archivo típico | Unos pocos KB para fuentes o sprites pequeños; hasta decenas de MB para texturas de alta resolución o pistas de audio sin comprimir |
| Verificación de integridad | Tamaño total del archivo almacenado como un campo little-endian de 4 bytes en la cabecera para validación básica; no se incluye suma de comprobación criptográfica ni hash |
| Cifrado | No cifrado - los activos compilados se almacenan como datos binarios planos legibles por cualquier implementación que proporcione el ContentTypeReader correcto |
| Tipo MIME | application/octet-stream (no hay un tipo MIME dedicado registrado para .xnb) |
| Rol en el Content Pipeline | Salida de tiempo de ejecución del Content Pipeline de XNA/MonoGame - los archivos de origen (.png, .wav, .fbx, .spritefont) se compilan en tiempo de construcción en .xnb y se cargan en tiempo de ejecución mediante Content.Load<T>() |
| Adoptantes notables | MonoGame y FNA (sucesores de código abierto de XNA); utilizado para distribuir activos en Terraria, Stardew Valley, Bastion, Fez y Celeste |
| Lanzado | 2006 (XNA Game Studio Express / XNA Framework 1.0) |
| Última versión | XNB format 5 (XNA Game Studio 4.0, 2010); same format reused by MonoGame/FNA |
| Especificación | en.wikipedia.org |
Conversiones de XNB
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos XNB.