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:
  1. Prominently display the name of the game, presented as a logo if you have one.
  2. Show several easily ‘selectable’ looking buttons to choose from:
  3. New Game, or Play, or Start
  4. If applicable: “Continue Game”
  5. Load Game (if applicable)
  6. New Player (or Change Player if already defined)
  7. Options
  8. Credits
  9. 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:

  1. Create one square icon as a png file 512×512 pixels.
  2. Create one rectangle thumbnail as a png file with aspect ratio of 3:4 and minimum dimension of 400×300 pixels.
  3. 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.
  4. 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>