Following the mobile DLC support which was launched a few months back, we are happy to announce that Expansion Files are coming to Rift. Technically, the expansion files are known as Generic Asset Files on the Oculus platform and are best suited for DLC (downloadable content), and any other content which can be installed after your application has already been downloaded.
Expansion files provide the ability to expand your application size and further monetize your application. It can be used in the following use-cases:
Unity and Unreal have built-in support for DLC that directly correspond to Asset Files on the Oculus platform. Please refer to the following documentation:
The API for build uploads with expansion files, and integrating them into your app via Platform SDK is identical to the mobile apps. Please address the details on the integration in this documentation, and the blog post.
One of the Rift-specific products which is built on top of the generic asset files, is the Language Packs.
A language pack is a special type of an asset file, which can be used for automatic i18n support in Oculus app, and downloading needed i18n data on-demand.
The main two problems developer had previously with the i18n support in their apps are:
With the upcoming language packs support, developers can now extract each language into an asset file, and which can be automatically downloaded by the Oculus app. Users now have access to the generic Language Selector directly in the Oculus app (the Details section of your app), and you don't have to implement a custom in-app one.
To upload a build with language packs, you will need to use the ovr-platform-util tool.
Note: Asset files are versioned. They have to be uploaded together with the main binary.
Here is an example of how to upload a build with language packs:
(Sample code provided herein is subject to the Oculus Examples License)
--app <app-id> \
--secret <app-secret> \
--channel <channel> \
--apk <main-apk-file> \
As you can see, it is controlled by the
--language_packs_dir parameter, which is the path to a directory containing all your language pack files.
Note: we use BCP47 format for language tags, and the language pack files should be named in the
<BCP47>.lang format. Examples:
en-US.lang for American English,
de.lang for German, etc.
Once uploaded, you can manage all asset files belonging to the build in the Dashboard. Go to “Manage Builds” → from the context menu of a release channel select “View Channel Builds” → from the context menu of a build select “View Expansion Files”.
You can also find the uploaded asset files via the direct URL: https://dashboard.oculus.com/application/<app-id>/build/<build-id>/expansion-files.
Once the language packs are uploaded, and a user has selected the needed language in the Oculus app, your application can request via SDK call information about currently installed language. Please address the Asset Files, and Language Packs SDK requests for full details.
Note: users select a language in the Details section of your app in the Oculus app.
To retrieve a currently installed language, use the
ovr_LanguagePack_GetCurrent call, which returns the AssetDetails structure. From the asset structure, by using the ovr_AssetDetails_GetLanguage you get the LanguagePackInfo data.
If you decide to implement in addition in-app language selector, you can also use the
ovr_LanguagePack_SetCurrent call, which spawns the Asset Files Download request. Once the asset file corresponding to the language pack is downloaded, and installed, you can query it again using the
The Asset Files, and Language Packs support for Rift are available now in beta form. DLC support in Oculus Stores is coming soon, so users will be able to purchase, and install the downloadable content directly from Oculus app. We encourage you to experiment with it using Release Channels before pushing asset files or DLC to live users. As always, we'd love to hear your feedback.