Windows Phone Basic Architecture for Game Developers
Summarizing my MIX10 experience, main thing I was focused on is of course Windows Phone Series. This is huge thing for Microsoft, long expected inside the company to show that we haven’t overslept the deal totally. Device and OS shows some opportunity and I can’t wait to see how it will it shape and break into the market.
For developers it’s another chance to shine. As I recall, I think one of Capcom’s managers said that new platforms’s begining of the lifecycle is the best time to introduce new brands, IPs and products. Best time for Indies if we reffer it to game development. Best time to introduce new crazy apps if we say – any application is at stake. Microsoft promises to reveal some tools for apps promotion on its marketplace but let’s be honest. Looking at Xbox Live and PSN stores, looking at Apple’s Appstore, when you have countless number of applications it’s just not that easy to highlight yourself as at the beginning.
If you consider to start coding a few things may be important to you. First, hardware specification can help you estimate Windows Phone’s capacities:
-
Symmetric multi-touch of Capacitive type with at least 4 or more contact points.
-
Sensors – A GPS, Accelerometer, Compass, Light, Proximity
-
Camera with 5 megapixel or more , flash and a camera button
-
Multimedia – Codec acceleration
-
Memory – 256 MB RAM or more , 8 GB Flash or more
-
GPU – DirectX 9 acceleration
-
CPU – ARMv7 Cortex/Scorpion or better
-
Optional keyboard
-
3 Hardware buttons – Back, Start, Search is a must and other buttons like buttons for Volume and Power.
Phone will support two native screen resolutions:
![]()
If I understood the message correctly it seems that MS and its partners prepare to launch two types of devices. Full with 480 x 800 and some mini/small (and presumably cheaper) device with 320 x 480. That still has to be confirmed.
Screen resolution is important for designers and graphicians. As you can easily measure screen proportions are not standard, that’s what you have to mind while preparing graphical content. Zune HD for example supports 240 x 320 and 272 x 480 which means 16:9 and 4:3 proportions (just like TV sets support). On Windows Phone it’s equivalently 5:3 and 3:2.
As you see keyboard is optional so definitively prepare yourself to design touch-screen supported user interface. The only buttons you will have are below three (Back, Start and Search):
![]()
Sensors have their equivalent APIs accessible from Silverlight and Xna frameworks. These two technologies are the only ones you can pick up for your development. Positioning is as follows: Xna – strong focus on gaming, SL – any other type of application. Screens and sensors can obviously be used for application control, but interesting thing is that WP7 will have speech recognition module that you can also consider in your development. WP7 will have Push notitication service that will allow you to communicate and send messages to Phone on battery consumption efficient way. As for APIs mentioned already, Windows Phone will support Silverlight 3.0 and Xna 4.0. For gaming, if you invested your time in WritableBitmap based engine written in Silverlight and targetting Web – you can easily port it to Phone without any Xna consideration (as this feature is in SL3).
After Shawn’s lecture I found that most of buffers important in graphics (Xna) are 16bit. So we can predict how many colors will WP7 support and how big structures we can render (as for vertex/index buffers in 3d world). It also matters for texture size so putting it all shortly how much detail we can show on the screen. Xna 4.0 on WP7 will be DX9 compatible but at initial stage and release timeframe we won’t be able to develop shaders freely in HLSL. Instead Xna exposes five customizable Effects for Shading, Environment Mapping, Alpha Testing, Multi Texturing and Skinning. It’s said that future versions of OS/Xna will presumably support HLSL but it’s not said when. Shawn has released very cool demo from his MIX10 presentation where all these effects are presented (with source code). I recommend to check it out, and generally to follow his blog, currently it’s best updated and most accurate resource on anything new in Xna 4.0


