WAF Project File (projects.json)

Overview

The projects.json file can be found in the _WAF_ folder and is designed as the central place to store game project specific data.

Those files are written in JSON (http://en.wikipedia.org/wiki/JSON) and use a nested data structure.

{
"GameSDK" :
    {        
        "code_folder"              : "Code/GameSDK",            
        "executable_name"          : "GameSDK",
        
        "product_name"             : "CRYENGINE SDK",
        
        "durango_settings" :
        {
            "app_id"               : "GameSDK.app",
            "package_name"         : "GameSDK",
            "display_name"         : "GameSDK display name",
            "publisher"            : "Crytek",
            "description"          : "Game description",
            "foreground_text"      : "light",
            "background_color"     : "#6495ED",
            "version"              : "1.0.0.0",
            "titleid"              : "xxxxxxxx",
            "scid"                 : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
            "appxmanifest"         : "AppxManifest.xml",
            "logo"                 : "DurangoLogo.png",
            "small_logo"           : "DurangoSmallLogo.png",
            "splash_screen"        : "DurangoSplashScreen.png",
            "store_logo"           : "DurangoStoreLogo.png"
        },
        
        "orbis_settings" :
        {
            "data_folder"          : "/data/sdk/",
            "nptitle_dat"          : "nptitle.dat",
            "param_sfo"            : "param.sfo",
            "trophy_trp"           : "trophy00.trp"            
        }
    }
} 

Entries

GameProject

The GameProject entry is a dictionary to hold all information for a single project. WAF will refer to those projects based on this name.

code_folder

The code_folder entry is string containing the folder which contains the entry wscript for this project.

vs_filter

The vs_filter entry defines the visual studio solution explorer filter for this project.

executable_name

The executable_name entry defines how the final game launcher executable will be called. A dedicated server binary will be suffixed with _Server. WAF will automatically apply the correct file ending depending on the current platform.

durango_settings

The durango_settings entry is a dictionary to hold all Durango exclusive settings for a project. Most of those are directly used when generating the Appxmanifest file.

Please see the durango documentation and generating AppManifest.xml for their exact purpose.

app_id

The app_id entry will be emitted as directly into the Appxmanifest.xml.

package_name

The package_name entry will be emitted as directly into the Appxmanifest.xml.

display_name

The display_name entry will be emitted as directly into the Appxmanifest.xml.

publisher

The publisher entry will be emitted as directly into the Appxmanifest.xml.

description

The description entry will be emitted as directly into the Appxmanifest.xml.

foreground_text

The foreground_text entry will be emitted as directly into the Appxmanifest.xml.

background_color

The background_color entry will be emitted as directly into the Appxmanifest.xml.

version

The version entry will be emitted as directly into the Appxmanifest.xml.

titleid

The titleid entry will be emitted as directly into the Appxmanifest.xml. Additionally it will be written to durango_title_id.h.

scid

The scid entry will be emitted as directly into the Appxmanifest.xml. Additionally it will be written to durango_title_id.h.

appxmanifest

The appxmanifest entry defines the name of the Appxmanifest.xml template within the Resource Folder.

The logo entry will be emitted as directly into the Appxmanifest.xml. It must also match a file in the Resource Folder, which is then copied to the output folder.

The small_logo entry will be emitted as directly into the Appxmanifest.xml. It must also match a file in the Resource Folder, which is then copied to the output folder.

splash_screen

The splash_screen entry will be emitted as directly into the Appxmanifest.xml. It must also match a file in the Resource Folder, which is then copied to the output folder.

The store_logo entry will be emitted as directly into the Appxmanifest.xml. It must also match a file in the Resource Folder, which is then copied to the output folder.

orbis_settings

The orbis_settings entry is a dictionary to hold all Orbis exclusive settings for a project.

data_folder

The data_folder entry defines which data folder should be used by a project.