Skip to main content
Frostbite games organize content into three primary asset types: EBX (entity data), RES (resources), and Chunks (binary data). These assets are packaged into bundles and managed by the AssetManager.

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:
From AssetManager.cs:353.

EBX File Format

EBX files use a binary format with reflection metadata:
From EbxReader.cs:48.

EBX Field Types

From EbxReader.cs:18.

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:
From AssetManager.cs:379.

Resource Types

From AssetManager.cs:13. Each resource type has specific handling logic.

Resource Metadata

RES assets have type-specific metadata:

Adding Resources

From AssetManager.cs:1049.

Chunks (Binary Data)

Chunks store large binary blobs referenced by resources. ChunkAssetEntry Structure:
From AssetManager.cs:394.

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

From AssetManager.cs:1089.
Chunk GUIDs have specific bit patterns - the LSB of the last byte is set to 1 for chunks. Don’t generate random GUIDs without this marker.

Bundles

Bundles group related assets together. BundleEntry Structure:
From AssetManager.cs:100 and 114.

Bundle Organization

Assets maintain bundle membership:
From AssetManager.cs:168.

Asset Linking

Assets can be linked to track dependencies:
From AssetManager.cs:244. Common Linking Patterns:
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

From AssetManager.cs:92 and 125.

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 modifiedOnly flags 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