Matthew Noguchi, de Bungie Studios, presentó en la Game Developers Conference (GDC) 2005, celebrada el 10 de marzo en San Francisco, la arquitectura de gestión de contenidos utilizada en el desarrollo de Halo 2. La charla detalla cómo el equipo construyó un sistema de tags a medida para organizar los aproximadamente 12 GB de activos del juego distribuidos en 39.000 archivos.
Un tag es la unidad básica del sistema de recursos: corresponde a un archivo en disco y a una estructura en memoria. El modelo se inspira en XML, pero almacena los datos en formato binario y define los esquemas (tag_groups) directamente en código mediante macros de preprocesador. Sobre esta base se apoyan los tag_blocks (arrays redimensionables) y las tag_references (punteros persistentes tipados entre tags), que permiten describir jerarquías de datos arbitrarias y referencias cruzadas entre activos, como un elemento de interfaz que apunta a un bitmap en lugar de embeberlo.
El sistema incorpora postprocesado en tiempo de carga para optimizar estructuras (por ejemplo, traducir parámetros de efectos de sonido a valores de DirectSound o compilar definiciones de shaders a formatos más eficientes) y ofrece recarga en caliente de tags individuales mediante handles, sin afectar al resto de sistemas del juego. En PC se aprovecha la notificación de cambios del sistema de archivos; en Xbox, donde las rutas no pueden usarse directamente, los paths se codifican en números y se mapean mediante un índice central (tag file index), con un proceso de sincronización llamado xsync que solo copia los tags modificados.
El documento también describe el proceso de carga de niveles, basado en cargar únicamente el globals tag y el scenario tag (la representación del nivel), y cómo esta separación facilitó pipelines de lightmapping o builds de DVD, aunque complicó el desarrollo de herramientas interactivas para datos que no requieren un nivel cargado.
