Was ist das XNB-Dateiformat?
.xnb ist eine kompilierte Binärdatei, die eine einzelne Spielressource speichert, die von der XNA Game Studio Content Pipeline erstellt wurde. .xnb ist ein Binärformat und kann Bilder, Audiodaten, 3D-Modelle, Schriftarten und viele andere Ressourcen enthalten. Quell-Assets wie .png-Texturen oder .wav-Audioclips werden zur Build-Zeit in plattformoptimierte .xnb-Dateien kompiliert, die das Spiel zur Laufzeit über Content.Load<T>() lädt.
Jede .xnb-Datei beginnt mit dem ASCII-Tag XNB, gefolgt von einem Zielplattform-Byte (w für Windows, x für Xbox 360, m für Windows Phone) und einem Formatversions-Byte. Ein optionales LZX- oder LZ4-Kompressions-Flag ist im selben Header kodiert.
XNA ist eine Sammlung von Entwicklungstools zur Erstellung von Spielen für Microsoft Windows, Windows Phone und Xbox-Systeme. Die XNA-Entwicklungsumgebung basierte auf Visual Studio Express und war kostenlos verfügbar, wobei sie ein umfangreiches Set an Tools und Funktionen für Spieleentwickler bot. Microsoft stellte XNA mit Version 4.0 im Jahr 2010 ein und beendete den Support um 2014. Die Open-Source-Frameworks MonoGame und FNA lesen und schreiben weiterhin dasselbe .xnb-Format, wodurch es für Titel wie *Terraria*, *Stardew Valley* und *Celeste* relevant bleibt, die ihre Grafiken und Audiodaten als .xnb-Dateien ausliefern.
Drittanbieter-Tools, einschließlich xnbcli und XnbExtract, können .xnb-Inhalte wieder in editierbare Quell-Assets entpacken. Zugehörige XNA-Audio-Bank-Dateien verwenden die Erweiterungen .xsb und .xwb.
Sicherheit
RISIKO: LOWEine XNB ist inerte kompilierte Spieldaten - eine Textur, ein Sound oder eine Datentabelle - ohne Skripting oder ausführbare Inhalte, daher ist das Öffnen oder Extrahieren an sich nicht gefährlich. Zwei praktische Vorsichtshinweise: Das Extrahieren oder Weiterverteilen von Spiel-Assets unterliegt dem Urheberrecht/EULA des jeweiligen Spiels (okay für persönliche Mods, nicht für die Weiterverbreitung), und Sie sollten XNB-Tools von ihren offiziellen Repositories (GitHub) herunterladen, anstatt von dubiosen „XNB Opener“-Seiten, die oft Werbe- oder PUP-Fallen sind, da kein legitimer eigenständiger Doppelklick-Viewer existiert.
Formatdetails
kurz gefasstProgramme zum Öffnen von XNB-Dateien
Technische Details
technische Spezifikation| Dateikodierung | Binär, Little-Endian-Byte-Reihenfolge |
| Magic Bytes | 0x58 0x4E 0x42 (ASCII „XNB“) bei Offset 0 |
| Header-Layout | 3-Byte ASCII-Tag „XNB“ + 1-Byte Plattformcode + 1-Byte Formatversion + 1-Byte Flags + 4-Byte Gesamtdateigröße (Little-Endian uint32) |
| Plattformcodes | „w“ (0x77) = Windows, „x“ (0x78) = Xbox 360, „m“ (0x6D) = Windows Phone/Mobile - kodiert in Byte 3 jedes Headers |
| Formatversion | Versionen 1-5; Version 5 entspricht XNA Game Studio 4.0 und ist die Version, die von MonoGame und FNA verwendet wird |
| Kompression | Optional - LZX (XNA 4.0) oder LZ4 (einige MonoGame-Builds); signalisiert durch ein Flag-Bit im Header-Flags-Byte; Nutzdaten werden oft unkomprimiert gespeichert |
| Unterstützte Inhaltstypen | Texturen (DXT1/DXT3/DXT5/Color RGBA), Audio (PCM/ADPCM), 3D-Modelle, Bitmap-Schriftarten, kompilierte Effekt-Shader, Sprite-Sheets |
| Type-Reader-Manifest | Der Header enthält eine serialisierte Liste von ContentTypeReader-Klassennamen, die die Runtime zur Deserialisierung des Asset-Objektgraphen verwendet |
| Assets pro Datei | Ein primäres Asset pro .xnb-Datei; gemeinsam genutzte Unterressourcen sind im serialisierten Objektgraphen derselben Datei verschachtelt |
| Textur-Oberflächenformate | Color (32-Bit RGBA), DXT1 (opak 4:1 blockkomprimiert), DXT3, DXT5 - GPU-native Formate, die den VRAM-Bedarf beim Laden reduzieren |
| Typische Dateigröße | Einige KB für kleine Schriftarten oder Sprites; bis zu mehreren zehn MB für hochauflösende Texturen oder unkomprimierte Audiotracks |
| Integritätsprüfung | Gesamtdateigröße als 4-Byte Little-Endian-Feld im Header zur Basisvalidierung; keine kryptografische Prüfsumme oder Hash enthalten |
| Verschlüsselung | Nicht verschlüsselt - kompilierte Assets werden als einfache Binärdaten gespeichert, die von jeder Implementierung lesbar sind, die den korrekten ContentTypeReader bereitstellt |
| MIME-Typ | application/octet-stream (kein dedizierter MIME-Typ für .xnb registriert) |
| Rolle der Content Pipeline | Runtime-Ausgabe der XNA/MonoGame Content Pipeline - Quelldateien (.png, .wav, .fbx, .spritefont) werden zur Build-Zeit in .xnb kompiliert und zur Laufzeit über Content.Load<T>() geladen |
| Bekannte Anwender | MonoGame und FNA (Open-Source XNA-Nachfolger); wird zur Auslieferung von Assets in Terraria, Stardew Valley, Bastion, Fez und Celeste verwendet |
| Veröffentlicht | 2006 (XNA Game Studio Express / XNA Framework 1.0) |
| Neueste Version | XNB format 5 (XNA Game Studio 4.0, 2010); same format reused by MonoGame/FNA |
| Spezifikation | en.wikipedia.org |
XNB-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu XNB-Dateien.