Thursday, May 14, 2015

xna - How can I support more than one resolution/language on WP7/8?


I want that my Windows Phone game runs on the following three resolutions: 480x800, 768x1280 and 720x1280. And maybe later on 1920x1080. But in the XAP file information, it's just written "Resolution(s) WVGA". What can I support more resolutions than just WVGA?


In addition, I want to support more than one language. At the moment, I can just choose English in the Dev Center menu, but I want to support French, Spanish and German too. How can I support French, Spanish and German? I don't know how to add these languages.


I uploaded my XAP file in the Dev Center and it gives me the following informations:




Select a XAP above to view or edit its Store listing and other info.


XAP version number 1.0.0.0


XAP details detected from file


File name WindowsPhoneGame2.xap


File size 167 KB


Supported OS 7.1, 8.0


Resolution(s) WVGA


Language(s) EnglishNorthAmerica


Capabilities ID_CAP_NETWORKING



XAP's Store listing info


A XAP file can contain multiple languages. Select a language to add Store listing info specific for that language.


English


Description for the Store:




Answer



For the multi language support, you are looking for something called localization , it's a common process used almost in every software development that have more than a single language, here is a special tutorial for How to: Create a Localized Game on XNA .


For the multi resolution issue, as Homer_Simpson said (lol), you cannot use resolutions above 800x480 on windows phone with XNA, and in case you moved to MonoGame, as far as i know, there is no magic trick to make such a thing, you have to build it yourself, game engines like unity3D use something called "Virtual Resolution" (World scale and position in unity), the whole principle is about using your own resolution for the whole development, and then scale all the objects based on the target resolution, i myself always use percentage to scale and set positions, specially for GUI cause even unity3D use current screen resolution when it comes to gui,so my suggestion would be to make the whole game in 1 resolution, then calculate the percentage of each object size and position relative to your resolution,



Example :



Resolution = 800x600 Object = Width=120;Height=80;


120 = 15% of 800


80 = 13.33% of 600


based on that, you have now to change your object parameters to this :


Object.Width = (Screen.width * 15 )/100


Object.Height = (Screen.Height * 13.33)/100


if you saw some HTML or CSS codes, you'll notice that they also use percentage to place and scale everything


PS : sometimes when i was coding GUIs i needed to do the same thing for X & Y



No comments:

Post a Comment

Simple past, Present perfect Past perfect

Can you tell me which form of the following sentences is the correct one please? Imagine two friends discussing the gym... I was in a good s...