In the event that you find your JSON files growing too much due to too much data. You can store data as a binary blob. This will work with anything that serializes to JSON.

Creating a binary blob

Here's a snippet with a game resource that stores a list of positions in a companion binary blob while the rest is in clear JSON.

// Custom Asset that will serialize MyBinaryBlob as binary data
[AssetType( Name = "My CustomResource", Extension = "res", Category = "other" )]
public partial class CustomResource : GameResource
{
	public string Title { get; set; }

	public MyBigData Data = new();
}

// This will be stored as binary data according to Serialize & Deserialize method
public class MyBigData : BinarySerializable
{
    public List<float> Data { get; set; } = [];
    
    public void override Serialize( ref BlobWriter writer )
    {
        // This layout will be what we will be deserializing, plan accordingly
        
        writer.Write( Data.Count ); // Int
        
        foreach ( var instance in Data ) // float * Data.Count
        {
            writer.Write( instance );
        }
    }
    
    public void override Deserialize( ref BlobReader )
    {
        var instanceCount = reader.Read<int>(); // Int
        
        for( int i = 0; i < instanceCount; i++ )
        {
            Data.Add( reader.Stream.Read<float>() );
        }
    }
}

Considerations

Working with binary files requires a bit more planning as it is not human readable. For example, deserializing a dynamic list is done by writing the size first so that we know how many elements to skip or read. Just like in the example above.






Created 16 Jan 2026
Updated 16 Jan 2026