Asset Types
EBX
Entity/Object definitions
RES
Resources (textures, meshes, etc.)
Chunks
Raw binary data
EBX Assets (Entity Data)
EBX files contain structured entity and object data using Frostbite’s reflection system. EbxAssetEntry Structure:EBX File Format
EBX files use a binary format with reflection metadata:- Header
- Type Descriptors
- Fields
- Instances
EBX Field Types
Reading EBX Assets
EBX uses a sophisticated reflection system that allows runtime type discovery and manipulation without compile-time knowledge of game-specific types.
RES Assets (Resources)
RES assets are typed binary resources like textures, meshes, and audio. ResAssetEntry Structure:Resource Types
Resource Metadata
RES assets have type-specific metadata:Texture Metadata
Texture Metadata
Mesh Metadata
Mesh Metadata
Audio Metadata
Audio Metadata
Adding Resources
Chunks (Binary Data)
Chunks store large binary blobs referenced by resources. ChunkAssetEntry Structure:Chunk Usage
Chunks are primarily used for:Texture Data
Pixel data for all mip levels
Mesh Data
Vertex and index buffers
Audio Data
Compressed audio samples
Physics Data
Havok physics meshes
Adding Chunks
Bundles
Bundles group related assets together. BundleEntry Structure:Bundle Organization
Assets maintain bundle membership:Asset Linking
Assets can be linked to track dependencies:1
Texture → Chunk
TextureAsset (RES) links to texture data chunk
2
Mesh → Multiple Chunks
MeshSet (RES) links to vertex buffer, index buffer, and optional LOD chunks
3
Blueprint → EBX
BlueprintBundle (EBX) references contained blueprint assets
Asset Data Locations
Modification Workflow
1
Load Asset
2
Modify Data
3
Save Changes
4
Persist to Project
Enumeration and Filtering
Performance Considerations
Best Practices:
- Use GUID lookups for EBX assets (O(1) vs O(n) for name search)
- Cache frequently accessed assets
- Batch modifications before saving
- Use
modifiedOnlyflags when enumerating to reduce iteration - Link chunks to parent assets for proper dependency tracking
Next Steps
Architecture
Understand how AssetManager fits in the overall architecture
Plugin System
Create plugins to handle custom asset types