File Queue

A predictive file downloader service to help load games faster.

What is File Queue?

File Queue is a feature that allows a game to download important assets that it will need in the future in the background while the game is active. In essence, a player can start playing the game and during their play session, File Queue will pick the assets needed by the game next and download it ahead of time, therefore reducing loading times for the game and improving the overall player experience.

🚧

Feature under development

This feature is currently a work in progress; the current version allows the game to download assets randomly. While it's still better than loading all the assets up-front, a learning algorithm to intelligently sort the asset queue order is on the roadmap for the File Queue.

How it works?

File Queue reads the manifest file generated at build time. This file contains a list of all the assets required for the game to run. Given the randomness of the list being generated, this feature may decrease the loading times of your game (i.e. it happens to select the right asset at the right time randomly) or in worst-case scenarios, doesn't affect loading times (i.e. if a game needs asset2 but the queue downloaded asset1, then it will just download asset2 once it requests it just like normal).

📘

Opt-in

Currently, File Queue is an opt-in feature. This means it isn't enabled for builds by default and you need to enable it, either per build or for all builds. You can enable this feature in the Game Manager.

Activating File Queue in the Game Manager

Navigate to the Game Manager. Then, enable File Queue either for a specific build (Builds > Inspect) or the entire project (Project Settings)

1060

You can either enable File Queue for a specific build or the entire project.

Controlling File Queue through code

You can also enable or disable File Queue manually through code -- this is particularly useful in multiplayer games as it provides you with the ability to tailor the process according to your network traffic needs.

// Remember to initialize the SDK first

// To start File Queue you can call the method as shown below
private void StartFileQueue()
{
  Result result = SDK.FileKit.StartFileQueue();
  
  if(result.IsError())
  {
    Debug.Log($"An error occurred while starting File Queue: {result}");
  }
}

// To stop File Queue you can call the method as shown below:

private void StopFileQueue()
{
  Result result = SDK.FileKit.StopFileQueue();
  
  if(result.IsError())
  {
    Debug.Log($"An error occurred while stopping File Queue: {result}");
  }
}