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"
}
}
}
The GameProject entry is a dictionary to hold all information for a single project. WAF will refer to those projects based on this name.
The code_folder entry is string containing the folder which contains the entry wscript for this project.
The vs_filter entry defines the visual studio solution explorer filter for this project.
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.
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.
The app_id entry will be emitted as directly into the Appxmanifest.xml.
The package_name entry will be emitted as directly into the Appxmanifest.xml.
The display_name entry will be emitted as directly into the Appxmanifest.xml.
The publisher entry will be emitted as directly into the Appxmanifest.xml.
The description entry will be emitted as directly into the Appxmanifest.xml.
The foreground_text entry will be emitted as directly into the Appxmanifest.xml.
The background_color entry will be emitted as directly into the Appxmanifest.xml.
The version entry will be emitted as directly into the Appxmanifest.xml.
The titleid entry will be emitted as directly into the Appxmanifest.xml. Additionally it will be written to durango_title_id.h.
The scid entry will be emitted as directly into the Appxmanifest.xml. Additionally it will be written to durango_title_id.h.
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.
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.
The orbis_settings entry is a dictionary to hold all Orbis exclusive settings for a project.
The data_folder entry defines which data folder should be used by a project.