Asus Xtionstore developer guideline
Developing the application
General
Gesture-controlled (aka “motion-sensing”) devices are changing the way people interact with games and apps. You can take part in the gesture-controlled revolution by joining the appside marketplace. We know how important distribution and monetization are; since we are pre-installed on consumer electronics devices, we work to get you market access so you can offer apps and games across many gesture-controlled platforms. We are happy to work with you in this exiting market.
Making It Professional
Sometimes the line between an app that looks like a ‘hack’ and an app that looks ‘professional’ are some simple user experience and interface implementations. If you’re aspiring to get placement in the AppSide Marketplace, you’ll need these extra touches so that end-users will be willing to pay for your creation. The easiest is to look to your favorite iOS or Casual PC games for inspiration: At launch, display a sequence of Splash Screens showing:
- Your name / your developer name, including a Logo if you have one
- The OpenNI logo
- Then the Main Menu
- Think of how a movie’s opening credits look; that’s what you’re shooting for.
- On the Main Menu:
- Prominently display the name of the game, presented as a logo if you have one.
- Show several easily ‘selectable’ looking buttons to choose from:
- New Game, or Play, or Start
- If applicable: “Continue Game”
- Load Game (if applicable)
- New Player (or Change Player if already defined)
- Options
- Credits
- Exit
Minimum Requirements
- Processor: Intel core i3 or above.
- System Memory: at least 2GB.
- OS: Win 7
- Available USB 2.0 high-speed port.
- Development Environment: Microsoft Visual Studio 2005, 2008 or 2010.
- Graphics Card: HD5450/1G or GeForce 210/1G or above
Requirements
- Windows Clone Mode display support
- Application Name - The name of the application installation folder you are developing should be unique. If an application with the name you selected already exists in the Appside marketplace you will need to select a different name. If you select a name that is already used by another application, you will be notified by Appside and you will need to select a different name.We will refer to this as AppName in the rest of the doc.
- Structure -This section describes the structure of the application for Windows OS.
- The application you develop should consist of one or more binary files (exe, dll, lib, fla, jar etc.) and many more files such as xml, image files, text files, config files, sound files etc.
- Binary files
- All binary files must be under %ProgramFiles%\AppName
- (Win 32 bit – “C:\Program Files\AppName”
- Win 64 bit – “C:\Program Files (x86)\AppName”)
- They may be installed directly or under another sub folder such as bin.
- Binaries should be compiled to run on 32 bit devices.
- Data files
- All other files should be under “%ProgramData%\AppName” (“C:\ProgramData\AppName”) in any structure.
- Alternatively, config files that get written at INSTALL time but not for user updatable data can be written under “C:\Program Files (x86)\AppName”
- User specific files
- Files holding user specific data such as settings must be written under “%appdata%\AppName” (“C:\Users\username\AppData\Roaming\AppName”).
- Updatable Files
- Files written by the game during run time must be written under “%ProgramData%\AppName” or “%appdata%\AppName”
Submitting the Application
Test the application
Before submitting the application, test the game thoroughly. Buggy Applications and Applications that do not meet the Appside Marketplace standards will be rejected.
Create store images
In order to display the game in the Appside Marketplace you will need to create icons, thumbnails and screenshots in the following manner:
- Create one square icon as a png file 512×512 pixels.
- Create one rectangle thumbnail as a png file with aspect ratio of 3:4 and minimum dimension of 400×300 pixels.
- Create several (up to 4) screenshots of selected parts of the application. These should be jpg files with aspect ratio of 3:4 and minimum dimension of 1200×900 pixels.
- Optional movie file.
Each image should be smaller than 300KB.
Submit to Appside Marketplace
Submitting the developed game requires 3 steps:
- Create one folder with the name of the application and it’s version (AppName_V1.0), under this folder Create 4 folders:
App – all files that reside under “C:\Program Files (x86)\AppName”
ProgramData – all files that reside under %ProgramData%\AppName”
AppData – all files that reside under “%appdata%\AppName”
StoreImages – icons, thumbnails and screenshots used by appside marketplace.
- Zip the root folder using the application name and version (AppName_V1.0.zip)
- Fill in the AppSide configuration XML (see below appendix 2)
Segmentation
General
A Segment is defined as a group of devices and users targeted to receive a certain look, feel or functionality of the Application.
The best example of a segment is users from a certain country speaking a certain language. It is possible that the developer will want messages and texts displayed in the native language of the user.
Implementation
For each game instance which includes a different set of files a new zip file should be provided with all the files.
Each such build will have its own set of files and targeting section in the confi.xml.
Best Practices
In order to support segmentation, the developer should create the Application in such a way that there is one copy of the Application which can display itself differently according to different configuration settings or inputs from the user.
Example:
The Application can contain a folder called languages.
Under that folder there can be a folder for each language.
Each language folder will contain all text, configuration, image and sound files with language specific content.
Upon user selection of language or automatically recognizing the OS locale, the application will use the files form the relevant language folder.
It is best minimize the use of image and sound files for segmentation and try to use configuration and text files instead.
Example:
Inserting a title into an image file is not recommended; instead the Application should draw the title over the image.
In such implementation, there will be one image with many text files with the translated title instead of many copies of the same image thus dramatically reducing the size of the Application.
Versioning
General
Each time an application build is uploaded to the appside Marketplace it will receive a version.
This version is important for communication between the developer and appside Marketplace and should be remembered by the developer.
Upgrades
General
Similar to submitting the Application.
Give the game files and some parameters to appside. Appside will handle the DRM, packaging and upgrading of the Application.
Please refer to the “Submitting the Application” section for submitting a new version of the Application
Appendix 1 – List of Locales
| Locale ▾ | Language code |
LCID string |
LCID Decimal |
LCID Hexadecimal |
|
| Afrikaans | af | af | 1078 | 436 | |
| Albanian | sq | sq | 1052 | ||
| Amharic | am | am | 1118 | ||
| Arabic – Algeria | ar | ar-dz | 5121 | 1401 | |
| Arabic – Bahrain | ar | ar-bh | 15361 | ||
| Arabic – Egypt | ar | ar-eg | 3073 | ||
| Arabic – Iraq | ar | ar-iq | 2049 | 801 | |
| Arabic – Jordan | ar | ar-jo | 11265 | ||
| Arabic – Kuwait | ar | ar-kw | 13313 | 3401 | |
| Arabic – Lebanon | ar | ar-lb | 12289 | 3001 | |
| Arabic – Libya | ar | ar-ly | 4097 | 1001 | |
| Arabic – Morocco | ar | ar-ma | 6145 | 1801 | |
| Arabic – Oman | ar | ar-om | 8193 | 2001 | |
| Arabic – Qatar | ar | ar-qa | 16385 | 4001 | |
| Arabic – Saudi Arabia | ar | ar-sa | 1025 | 401 | |
| Arabic – Syria | ar | ar-sy | 10241 | 2801 | |
| Arabic – Tunisia | ar | ar-tn | 7169 | ||
| Arabic – United Arab Emirates | ar | ar-ae | 14337 | 3801 | |
| Arabic – Yemen | ar | ar-ye | 9217 | 2401 | |
| Armenian | hy | hy | 1067 | ||
| Assamese | as | as | 1101 | ||
| Azeri – Cyrillic | az | az-az | 2092 | ||
| Azeri – Latin | az | az-az | 1068 | ||
| Basque | eu | eu | 1069 | ||
| Belarusian | be | be | 1059 | 423 | |
| Bengali – Bangladesh | bn | bn | 2117 | 845 | |
| Bengali – India | bn | bn | 1093 | 445 | |
| Bosnian | bs | bs | 5146 | ||
| Bulgarian | bg | bg | 1026 | 402 | |
| Burmese | my | my | 1109 | 455 | |
| Catalan | ca | ca | 1027 | 403 | |
| Chinese – China | zh | zh-cn | 2052 | 804 | |
| Chinese – Hong Kong SAR | zh | zh-hk | 3076 | ||
| Chinese – Macau SAR | zh | zh-mo | 5124 | 1404 | |
| Chinese – Singapore | zh | zh-sg | 4100 | 1004 | |
| Chinese – Taiwan | zh | zh-tw | 1028 | 404 | |
| Croatian | hr | hr | 1050 | ||
| Czech | cs | cs | 1029 | 405 | |
| Danish | da | da | 1030 | 406 | |
| Divehi; Dhivehi; Maldivian | dv | dv | 1125 | 465 | |
| Dutch – Belgium | nl | nl-be | 2067 | 813 | |
| Dutch – Netherlands | nl | nl-nl | 1043 | 413 | |
| Edo | 1126 | 466 | |||
| English – Australia | en | en-au | 3081 | ||
| English – Belize | en | en-bz | 10249 | 2809 | |
| English – Canada | en | en-ca | 4105 | 1009 | |
| English – Caribbean | en | en-cb | 9225 | 2409 | |
| English – Great Britain | en | en-gb | 2057 | 809 | |
| English – India | en | en-in | 16393 | 4009 | |
| English – Ireland | en | en-ie | 6153 | 1809 | |
| English – Jamaica | en | en-jm | 8201 | 2009 | |
| English – New Zealand | en | en-nz | 5129 | 1409 | |
| English – Phillippines | en | en-ph | 13321 | 3409 | |
| English – Southern Africa | en | en-za | 7177 | ||
| English – Trinidad | en | en-tt | 11273 | ||
| English – United States | en | en-us | 1033 | 409 | |
| English – Zimbabwe | en | 12297 | 3009 | ||
| Estonian | et | et | 1061 | 425 | |
| FYRO Macedonia | mk | mk | 1071 | ||
| Faroese | fo | fo | 1080 | 438 | |
| Farsi – Persian | fa | fa | 1065 | 429 | |
| Filipino | 1124 | 464 | |||
| Finnish | fi | fi | 1035 | ||
| French – Belgium | fr | fr-be | 2060 | ||
| French – Cameroon | fr | 11276 | |||
| French – Canada | fr | fr-ca | 3084 | ||
| French – Congo | fr | 9228 | |||
| French – Cote d’Ivoire | fr | 12300 | |||
| French – France | fr | fr-fr | 1036 | ||
| French – Luxembourg | fr | fr-lu | 5132 | ||
| French – Mali | fr | 13324 | |||
| French – Monaco | fr | 6156 | |||
| French – Morocco | fr | 14348 | |||
| French – Senegal | fr | 10252 | |||
| French – Switzerland | fr | fr-ch | 4108 | ||
| French – West Indies | fr | 7180 | |||
| Frisian – Netherlands | 1122 | 462 | |||
| Gaelic – Ireland | gd | gd-ie | 2108 | ||
| Gaelic – Scotland | gd | gd | 1084 | ||
| Galician | gl | 1110 | 456 | ||
| Georgian | ka | 1079 | 437 | ||
| German – Austria | de | de-at | 3079 | ||
| German – Germany | de | de-de | 1031 | 407 | |
| German – Liechtenstein | de | de-li | 5127 | 1407 | |
| German – Luxembourg | de | de-lu | 4103 | 1007 | |
| German – Switzerland | de | de-ch | 2055 | 807 | |
| Greek | el | el | 1032 | 408 | |
| Guarani – Paraguay | gn | gn | 1140 | 474 | |
| Gujarati | gu | gu | 1095 | 447 | |
| HID (Human Interface Device) | 1279 | ||||
| Hebrew | he | he | 1037 | ||
| Hindi | hi | hi | 1081 | 439 | |
| Hungarian | hu | hu | 1038 | ||
| Icelandic | is | is | 1039 | ||
| Igbo – Nigeria | 1136 | 470 | |||
| Indonesian | id | id | 1057 | 421 | |
| Italian – Italy | it | it-it | 1040 | 410 | |
| Italian – Switzerland | it | it-ch | 2064 | 810 | |
| Japanese | ja | ja | 1041 | 411 | |
| Kannada | kn | kn | 1099 | ||
| Kashmiri | ks | ks | 1120 | 460 | |
| Kazakh | kk | kk | 1087 | ||
| Khmer | km | km | 1107 | 453 | |
| Konkani | 1111 | 457 | |||
| Korean | ko | ko | 1042 | 412 | |
| Kyrgyz – Cyrillic | 1088 | 440 | |||
| Lao | lo | lo | 1108 | 454 | |
| Latin | la | la | 1142 | 476 | |
| Latvian | lv | lv | 1062 | 426 | |
| Lithuanian | lt | lt | 1063 | 427 | |
| Malay – Brunei | ms | ms-bn | 2110 | ||
| Malay – Malaysia | ms | ms-my | 1086 | ||
| Malayalam | ml | ml | 1100 | ||
| Maltese | mt | mt | 1082 | ||
| Manipuri | 1112 | 458 | |||
| Maori | mi | mi | 1153 | 481 | |
| Marathi | mr | mr | 1102 | ||
| Mongolian | mn | mn | 2128 | 850 | |
| Mongolian | mn | mn | 1104 | 450 | |
| Nepali | ne | ne | 1121 | 461 | |
| Norwegian – Bokml | nb | no-no | 1044 | 414 | |
| Norwegian – Nynorsk | nn | no-no | 2068 | 814 | |
| Oriya | or | or | 1096 | 448 | |
| Polish | pl | pl | 1045 | 415 | |
| Portuguese – Brazil | pt | pt-br | 1046 | 416 | |
| Portuguese – Portugal | pt | pt-pt | 2070 | 816 | |
| Punjabi | pa | pa | 1094 | 446 | |
| Raeto-Romance | rm | rm | 1047 | 417 | |
| Romanian – Moldova | ro | ro-mo | 2072 | 818 | |
| Romanian – Romania | ro | ro | 1048 | 418 | |
| Russian | ru | ru | 1049 | 419 | |
| Russian – Moldova | ru | ru-mo | 2073 | 819 | |
| Sami Lappish | 1083 | ||||
| Sanskrit | sa | sa | 1103 | ||
| Serbian – Cyrillic | sr | sr-sp | 3098 | ||
| Serbian – Latin | sr | sr-sp | 2074 | ||
| Sesotho (Sutu) | 1072 | 430 | |||
| Setsuana | tn | tn | 1074 | 432 | |
| Sindhi | sd | sd | 1113 | 459 | |
| Sinhala; Sinhalese | si | si | 1115 | ||
| Slovak | sk | sk | 1051 | ||
| Slovenian | sl | sl | 1060 | 424 | |
| Somali | so | so | 1143 | 477 | |
| Sorbian | sb | sb | 1070 | ||
| Spanish – Argentina | es | es-ar | 11274 | ||
| Spanish – Bolivia | es | es-bo | 16394 | ||
| Spanish – Chile | es | es-cl | 13322 | ||
| Spanish – Colombia | es | es-co | 9226 | ||
| Spanish – Costa Rica | es | es-cr | 5130 | ||
| Spanish – Dominican Republic | es | es-do | 7178 | ||
| Spanish – Ecuador | es | es-ec | 12298 | ||
| Spanish – El Salvador | es | es-sv | 17418 | ||
| Spanish – Guatemala | es | es-gt | 4106 | ||
| Spanish – Honduras | es | es-hn | 18442 | ||
| Spanish – Mexico | es | es-mx | 2058 | ||
| Spanish – Nicaragua | es | es-ni | 19466 | ||
| Spanish – Panama | es | es-pa | 6154 | ||
| Spanish – Paraguay | es | es-py | 15370 | ||
| Spanish – Peru | es | es-pe | 10250 | ||
| Spanish – Puerto Rico | es | es-pr | 20490 | ||
| Spanish – Spain (Traditional) | es | es-es | 1034 | ||
| Spanish – Uruguay | es | es-uy | 14346 | ||
| Spanish – Venezuela | es | es-ve | 8202 | ||
| Swahili | sw | sw | 1089 | 441 | |
| Swedish – Finland | sv | sv-fi | 2077 | ||
| Swedish – Sweden | sv | sv-se | 1053 | ||
| Syriac | 1114 | ||||
| Tajik | tg | tg | 1064 | 428 | |
| Tamil | ta | ta | 1097 | 449 | |
| Tatar | tt | tt | 1092 | 444 | |
| Telugu | te | te | 1098 | ||
| Thai | th | th | 1054 | ||
| Tibetan | bo | bo | 1105 | 451 | |
| Tsonga | ts | ts | 1073 | 431 | |
| Turkish | tr | tr | 1055 | ||
| Turkmen | tk | tk | 1090 | 442 | |
| Ukrainian | uk | uk | 1058 | 422 | |
| Unicode | UTF-8 | 0 | |||
| Urdu | ur | ur | 1056 | 420 | |
| Uzbek – Cyrillic | uz | uz-uz | 2115 | 843 | |
| Uzbek – Latin | uz | uz-uz | 1091 | 443 | |
| Venda | 1075 | 433 | |||
| Vietnamese | vi | vi | 1066 | ||
| Welsh | cy | cy | 1106 | 452 | |
| Xhosa | xh | xh | 1076 | 434 | |
| Yiddish | yi | yi | 1085 | ||
| Zulu | zu | zu | 1077 | 435 |
Appendix 2 – Config.xml example
Config.xml
This is a sample of the config.xml provided by the developer when submitting an application
<?xml version=”1.0″?>
<Game xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
<!– Application Description –>
<!– default names, used for each languages unless specifically defined in the language section –>
<Name>Bubble Pop</Name>
<Description>Pop Bubbles!</Description>
<Version>1.0</Version>
<Developer>John Anderson</Developer>
<Manufacturer>Company Name</Manufacturer>
<!– A relative path to the file executed by the client (.exe, .bat, etc.) –>
<ExectionFile>bin\BubblePop.bat</ExectionFile>
<!– List of processes that are running.–>
<!– Needed for upgrade process and to avoid two instances running simultaneously –>
<Processes>
<Process>BubblePop.exe</Process>
<Process>Launcher.exe</Process>
</Processes>
<!– List of files that need to be unlocked after purchase. Without these files game cannot run –>
<ProtectedFiles>
<file>LauncherData\Game\BubblePop.exe</file>
<file>LauncherData\Launcher.exe</file>
</ProtectedFiles>
<!– System Requirements –>
<OpenNIVersion>1.2.0.7</OpenNIVersion>
<OS>Windows</OS>
<!– service pack, version, –>
<Sensor>Xtion</Sensor>
<!– Store Images –>
<InstallerName>setup-BubblePop-version-1.3</InstallerName>
<Images>
<Icon>BubblePop-icon-125X125.png</Icon>
<Thumbnail>BubblePop-Thumb-309X229.png</Thumbnail>
<Screenshot>screen01.jpg</Screenshot>
<Screenshot>screen04.jpg</Screenshot>
<Screenshot>screen07.jpg</Screenshot>
<Screenshot>screen08.jpg</Screenshot>
</Images>
<Video>BubblePopPromo.avi</Video>
<!– PROBABLY NOT NEEDED –>
<!– Needed if appside will do the packing –>
<Packaging>
<Windows>
<Registry>
<Path>HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Bubble Pop</Path>
<Entry>
<Name>PopInterval</Name>
<Type>REG_SZ</Type>
<Value>2</Value>
</Entry>
<Entry>
<Name></Name>
<Type></Type>
<Value></Value>
</Entry>
<Entry>
<Name></Name>
<Type></Type>
<Value></Value>
</Entry>
</Registry>
</Windows>
</Packaging>
<Languages>
<Language>
<Locale>French – France</Locale>
<Name>BubblePop</Name>
<Description>Pop Bubbles!</Description>
<Header></Header>
</Language>
<Languages>
