Windows Phone 8 SDK released: Direct 3D features detailled

I just finished watching the BUILD Keynotes after coming back home from work and came to the conclusion that Steve Ballmer has become the best demo guy for Microsoft. I highly suggest you take the time to watch his keynote to because I think that it’s the best one he has ever done so far. Anyway, let’s talk about Windows Phone 8. Microsoft has finally released the final public version of the WP8 SDK today which you can download from the source link below and start using to develop Windows Phone 7.X and Windows Phone 8 applications (no surprises here, it’s quite similar to the Leaked version I showed you this summer). Microsoft has also announced that developer registration to submit apps to the Windows Store will only cost $8 instead of $99 for the next 8 Days. So hurry up and start building amazing stuff.

As an added incentive, for the next 8 days individual developers can register for a Dev Center account for just $8 (a 92 percent savings). Please note because this is a very limited time offer. You’ll be charged $99 USD or equivalent in your local currency, and we’ll refund the difference in the next 30 to 45 days. Watch for more details on Dev Center soon.

Those of you who are still wondering what is the exact Direct3D feature set supported by Windows Phone 8 should take look after the break as MS’s Shawn Hargreaves has posted an great deal of info today about this:

Continue reading Windows Phone 8 SDK released: Direct 3D features detailled →

Unity 3D Engine support for Windows Phone 8 announced

Unsurprisingly Unity Technologies CEO David Helgason announced today during the Unity 2012 conference in Amsterdam that the famed Unity 3D engine is will now support Windows Phone 8 thanks to its shared Kernel/Core with Windows 8 and Direct3D support.

“The Unity community has been asking for access to Windows Phones and have been eagerly anticipating the release of Windows 8. We’re happy to announce that we will support both.”

We are undoubtedly going to see a many more similar announcement from other Engine companies now that we are getting closer to the OS’s launch. Epic Games are already expressed its support for Windows Phone 8 several weeks ago to a formal Unreal Engine Windows Phone 8 announcement should be too far off.

Continue reading Unity 3D Engine support for Windows Phone 8 announced →

Windows Phone 7 Review

It’s now time to take an in-depth look at Microsoft’s Windows Phone 7 mobile operating system now that the project has finally seen the light of the day after years of tumultuous developments. This review is quite long so I’m first going to give you a quick history reminder about the development of the OS followed by description of the product’s features and my opinion of it.

Officially unveiled back in February 2010 during MWC in Barcelona, Windows Phone 7 is Microsoft last attempt to be relevant in the mobile market after the slow demise of Windows Mobile 6.X that took place during past few years. Contrary to popular belief Windows Mobile as we knew it wasn’t a bad OS, but it greatly suffered from Microsoft’s total lack of support and interest in its product and the only reason why it managed to survived this long was because OEMs like HTC poured R&D and money into developing alternative UIs to compete with Apple’s iPhone and later, Google’s Android. What many people don’t know is that Windows Phone 7’s development initially started back in 2004 when it was called Windows Mobile 7 (code named Photon) but because of a lack of motivation, foresight and some relatively stupid decisions taken by the Redmond company (like the Danger acquisition that later gave birth to the Kin devices) the development was a total mess and in Fall 2008 Microsoft finally decided to stop all ongoing Photon / Windows Mobile 7 development and re-start everything from scratch with a new team composed of the developers of the Zune media player and Windows Media Center.

Continue reading Windows Phone 7 Review →

The future hardware powering Windows Phone 7

As you probably already know by now all Windows Phone 7 handsets will be powered by a Qualcomm SoC. The specifics of the chipsets used are still unknown but we do know that it will have minimum click rate of 1Ghz which hints at a SnapDragon or similar architecture (the QSD8x50, MSM8x55, MSM7X30, QSD8x50A all qualify). The only reall info we have so far comes from the leaked HTC Mondrian ROM which mentions the presence of a QSDx50A chipset on board. So how is this piece of hardware interesting? Well, first off it is still unreleased and when the HTC Mondrian finally launches this fall it will probably one of the first devices to sport one. Secondly it’s the new shrunk down (45nm) version of the now famous QSD8X50 found in the majority of high-end Windows Phone and Android phones and is clocked at 1.3ghz (compared to the regular 1ghz chips shipping now). But the most interesting aspect of this new SoC is the updated GPU known as the Andreno 205 (the current SanpDragon CPU is the Adreno 200 aka AMDZ430). This new unit has been tweaked to have better OpenVG and Flash perfomance as well and improved shader performance:

This GPU features dedicated 2D Open VG graphics hardware along with 3D hardware which provides faster, higher-quality 2D rendering, simultaneous use of 2D and 3D, and lower power use.

•Hardware-accelerated SVG and Adobe Flash®
•Significant improvements in shader performance over Adreno 200 GPU
•Streaming textures that can combine video, camera, SVG and other image surfaces with 3D graphics
Supported APIs:

OpenGL ES 2.0, OpenGL ES 1.1, OpenVG 1.1, EGL 1.3, Direct3D Mobile, SVGT 1.2, Direct Draw, GDI. Concurrent CPU, DSP, graphics, and MDP

Continue reading The future hardware powering Windows Phone 7 →

Confidential Windows Phone 7 Development Guides leaked

Remember the Windows Phone 7 OEM customization and native application development info that leaked a while ago? And the Architecture guide ? Well both documents are now leaked and available to download in PDF format:


The OEM and MO Application Guide for Windows Phone 7 provides guidance on developing applications for a Windows Phone 7 (PDF).

The Architecture Guide provides fundamental technical information about Windows Phone 7. It serves as a roadmap to the components and core fundamentals of the Windows Phone P7 architecture (PDF).

The Customization Guide for Windows Phone 7 provides information about customizing the user interface and other system functionality (PDF).

Leaked document details Windows Phone 7 architecture


The Dutch boys at Tweakers.net got the hands on an internal Windows Phone 7 document detailing the architecture of the new OS. This Architecture Guide for Windows Phone 7 OS is the source of the info that was leaked here right before the official announcement at MWC10.

The first slide posted shows the Kernel architecture of the OS. As you can see WP7 is composed of two distinct layers: the user Space & the Kernel Space. Inside the User Space you have the OS services, the shell etc. The Kernel Space on the other hand contains the Kernel itself, the file system, graphics rendering, radio, drivers etc.
Continue reading Leaked document details Windows Phone 7 architecture →

XNA Game Studio 4: Profiles comparison

Microsoft’s Shawn Hargreaves posted a really handy table comparing the Reach & HiDef profile available in the XNA Game Studio 4.0 development toolkit.

  • The features listed in black are required and supported consistently across all platforms and hardware
  • The few features which are not 100% consistent are listed in red
  • HiDef is a strict superset of Reach
  • If you run a Reach game on a HiDef platform, the framework will still enforce Reach rules. This lets you test your phone game on Xbox 360 or a high end Windows PC, and get helpful exception messages if you accidentally try to use a feature that is not supported on the phone.
 

Reach

HiDef

Supported platforms Windows Phone 7 Series, Xbox 360, and any Windows PC with a DirectX 9 GPU that supports at least shader model 2.0 Xbox 360, and any Windows PC with a DirectX 10 (or equivalent: see below) GPU
Shader model 2.0  (but Windows Phone does not support custom shaders) 3.0+  (Xbox 360 supports custom shader extensions such as vfetch, which are not available on Windows)
Max texture size 2048 4096
Max cubemap size 512 4096
Max volume texture size Volume textures are not supported 256
Non power of two textures Conditional: cannot use wrap addressing mode, mipmaps, or DXT compression when the size is not a power of two Yes
Non power of two cubemaps No Yes
Non power of two volume textures Volume textures are not supported Yes
Max primitives per draw call 65535 1048575
Index buffer formats 16 bit 16 and 32 bit
Vertex element formats Color, Byte4, Single, Vector2, Vector3, Vector4, Short2, Short4, NormalizedShort2, NormalizedShort4 All of the Reach formats, plus HalfVector2, HalfVector4
Texture formats Color, Bgr565, Bgra5551, Bgra4444, NormalizedByte2, NormalizedByte4, Dxt1, Dxt3, Dxt5 All of the Reach formats, plus Alpha8, Rg32, Rgba64, Rgba1010102, Single, Vector2, Vector4, HalfSingle, HalfVector2, HalfVector4. Floating point texture formats do not support filtering.
Vertex texture formats Vertex texturing is not supported Single, Vector2, Vector4, HalfSingle, HalfVector2, HalfVector4
Render target formats Variable (see below) Variable (see below)
Multiple render targets No Up to 4. Must all have the same bit depth. Supports alpha blending and independent write masks per rendertarget.
Occlusion queries No Yes
Separate alpha blend No Yes
Blend.SourceAlphaSaturation Only for SourceBlend, not DestinationBlend Yes
Max vertex streams 16 16
Max stream stride 255 255

As you can see the Reach profile is the one used to develop Windows Phone 7 applications/games. Programmable shaders on WP7 are not supported yet in this version of XNA, but Microsoft is providing 5 predefined Shaders for developers (BassidEffect, DualTexttureEffect, AplhaTestEffect, SkinnedEffect & EnvironementMapEffect) check them out in action here:

BassicEffect:
- 0-3 Directional lights
- Blinn-Phong Shading
- Optional Texture
- Optional Fog
- Optional Vertex Color

DualTextureEffect:
- For lightmaps, detail textures, decals
- Blends two textures
- Separate texture coordinates
- Modulate 2X combine mode
- Good visuals at low pixel cost

AplhaTestEffect:
- For billboards & imposters
- Adds alpha test operations (pixel kill)
- Standard blending is free with all effects
- Only need alpha test if you want too disable depth/stencil writes

SkinnedEffect:
- For animated models and instancing
- Game code animates bones on GPU
- Vertex skinning performed by the GPU
- Up to 72 bones
- One, tow or four weights per vertex

EnvironementMapEffect:
- Oh Shinny!
- Difuse Texture + cube environement map
- Cheap way to fake many complex lights
- Frsnel term simulates behaviour when lights reaches a surface and some reflects, some penetrates

Don’t forget to follow Shawn’s awesome blog here .

All Windows Phone 7 MIX10 Sessions Part 2

Below are the rest of the Windows Phone 7 Series MIX10 session made that have currently been made available.

Building Windows Phone Applications with Silverlight, Part 1:

PowerPoint Presentation: Click

Continue reading All Windows Phone 7 MIX10 Sessions Part 2 →

All Windows Phone 7 Series MIX10 Sessions Part 1

Here are all the Windows Phone 7 Series MIX10 sessions currently available online.

Changing our Game – an Introduction to Windows Phone 7 Series:

Continue reading All Windows Phone 7 Series MIX10 Sessions Part 1 →

3D rendering effects overview on Windows Phone 7 Series with video

Microsoft demonstrated all the new effects available in the XNA Game Studio 4.0 release during a GDC session and my pal Chuong from Pocketnow had the chance to capture it on video. The first video principally covers the new guidelines and resolutions supported by WP7 (WVGA & HVGA). Microsoft is also suggesting to developers that developing intensive 3D games at WVGA isn’t really recommended. Using the build-in hardware scaler seems to be the preferred solution. For example, a game can be rendered by the GPU at 600×360 & then upscaled to 800×480 by the scaler (same aspect ratio) to achieve greater framerate. I’m guessing that this is what Apple is implementing on the iPad (iPhone apps are upscaled for “free”) and feature higher-res iPhone phones.

Tse second video is an overview of the 5 new effects added to the XNA 4.0: BassidEffect, DualTexttureEffect, AplhaTestEffect, SkinnedEffect & EnvironementMapEffect:

Here’s description of each one of them:

BassicEffect:
- 0-3 Directional lights
- Blinn-Phong Shading
- Optional Texture
- Optional Fog
- Optional Vertex Color

DualTextureEffect:
- For lightmaps, detail textures, decals
- Blends two textures
- Separate texture coordinates
- Modulate 2X combine mode
- Good visuals at low pixel cost

AplhaTestEffect:
- For billboards & imposters
- Adds alpha test operations (pixel kill)
- Standard blending is free with all effects
- Only need alpha test if you want too disable depth/stencil writes

SkinnedEffect:
- For animated models and instancing
- Game code animates bones on GPU
- Vertex skinning performed by the GPU
- Up to 72 bones
- One, tow or four weights per vertex

EnvironementMapEffect:
- Oh Shinny!
- Difuse Texture + cube environement map
- Cheap way to fake many complex lights
- Frsnel term simulates behaviour when lights reaches a surface and some reflects, some penetrates

Windows Phone 7 Series will support WVGA & HVGA resolutions, no programmable shaders (at launch)


Microsoft’s Shawn Hargreaves just announced that 2 screen resolutions will be supported on Windows Phone 7 Series: 800×480 (WVGA) at launch and 480×320 later (possibly in Q1 2011?):

The phone features an image scaler which allows games to render to any size backbuffer they like, and have it automatically stretched to fill the display, with black bars along the edges if the backbuffer and display have different aspect ratios (an idea that will be familiar to Xbox developers). This scaling is handled by dedicated hardware, so does not consume any GPU resources, and it uses a high quality image filter that gives much better results than bilinear filtering like you would get if you did this yourself on the GPU. The scaler is important for two reasons:

At launch, all phones will have a 480×800 (WVGA) display resolution, but we will add 320×480 (HVGA) in a future update. Of course you can detect the native resolution and program your game to adapt to this if you want, but the scaler allows games to pick just one resolution, always render at that fixed size, and still run correctly on phones with different native screen sizes. For bonus points, we automatically scale touch input to match your chosen resolution.

480×800 is a lot of pixels! This is a great resolution for displaying text, browsing the web, etc, but it can be a challenge for intensive 3D games to render so much data at a good framerate. To boost performance, some games may prefer to render at a lower resolution, then scale up to fill the display.

The other piece of info reveiled yesterday is that XNA Gmae Studio 4.0 won’t expose programmable shaders because of the tight developement scheduled for WP7. but this fuctionality should be included in a future update:

The phone supports full hardware accelerated 3D, but we are not exposing programmable shaders in this release. Charlie Kindel summed up the reason for that in a great article about focus and priorities:

“We will do a few things and do them very, very well; we are better off not having a capability than doing it poorly. There are always future versions.”

Instead of programmable shaders, we augmented the existing BasicEffect with four new configurable effects: SkinnedEffect, EnvironmentMapEffect, DualTextureEffect, and AlphaTestEffect. These are designed to run efficiently on the mobile GPU hardware, and I think do a good job of providing enough flexibility for developers to create awesome looking games, while also meeting our goals of being able to ship a robust and well tested product on schedule.

This may disapointing to some devs given that the GPU inside of the SnapDragon chipset (AMD Z430) features a unified pixel & vertex shader pipeline (based on the Xbox 360 Xenos GPU). I guess that Microsoft still needs some time to update Direct3D Mobile. Hopefully updates will be released soon after the initial launch this fall.

All about Xbox Live on Windows Phone 7 Series

Microsoft’s Andre Vrignaud live-tweeted the Xbox Live on WP7 session that took place at GDC today.

  • Q: Will games have to go through cert? Or just XBL games? A: all games go through cert, XBL games will have a few more reqs.
  • Other resources: Windows Azure – microsoft.com/windowsazure
  • Other resources: pitch your Xbox LIVE-enabled game: wpgames@microsoft.com
  • Wrapping up… get the dev tools at creator.xna.com, go to MIX10 for more next week!
  • Focusing on asynch (turn-based) “mobile minute” friendly gaming at launch. No ad-hoc local WiFi/Bluetooth gaming initially.
  • Most APIs are present on all platforms – make it easier to write clear, crossplatform code.
  • Why Push? Efficent battery util, low memory/CPU use, simple model, no persistent connection required, web 2.0 friendly.
  • @smartyp Yes, these WP7/XBL capabilities are available to both Silverlight and XNA-based games.
  • Push Notif. to Tile: Allows you to push visual notif. to pinned tiles on user’s home page. See at a glance what’s up in game.
  • Notifications not guaranteed delivery – best effort.
  • Notifications: Raw (cloud notifies app), Tile (user pins notif. to quick launch menu), Toast (Cloud sends a title and sub)
  • Extend games with HTTP: consume 3PP web services (weather, shopping), connect to own WS. We will have policies, need to talk with us.
  • Game Invites handled through email; player chooses email recipients.
  • Avatars: 2D avatars for launch, via web service.
  • Trial Mode: developer owns trial experience. Simple check, can be simulated to test. Send player to Marketplace to purchase.
  • XBL Leaderboard data blob is 4KB – place to store ghosts, races, game data, etc. Some cool stuff you could do here with this!
  • Leaderboards: Track friends, score or time-based, fixed set of columns, game defined blob of data, paging, easy API.
  • Think I see a blog post ahead about Achievements best practices, recommendations, and learnings we’ve had over the years…
  • Achievements: real achievements, real gamerscore. Up to 20 achievements, 200 GS max.
  • Profile: your WP7 phone knows you by your Windows LIVE ID (associated with your Gamertag). Use existing WLID, or create new.
  • XBL conn. opt: HTTP req/resp, push notifications, XBL features (2D avatars, invites, profile, achievements, lb, trials)
  • XBL at fingertips with WP7. Games Hub = where XBL meets WP7 OS. Profile, game library, turn notifications, browse spotlight.
  • Some aditional XNA Game Studio 4.0 information was also posted by Charlie Kindel:

    XNA Game Studio 4.0

    •  
      • Power: XNA Game Studio 4.0 includes powerful audio and graphics tools that allow developers to create all types of games, from casual 2-D games to 3-D games with high-quality graphics.
      • Productivity: XNA Game Studio 4.0 is a managed code platform, which means that Microsoft has done the back-end work that will save developers time in the coding process. It allows developers to be more productive and focus on gameplay and design.
      • Portability: XNA Game Studio 4.0 makes it possible for developers to adapt games built on previous versions of XNA Game Studio to work on Windows Phone 7 Series without re-coding the entire game. Also, once a developer has created a Windows Phone 7 Series game, they can use some of that code in XNA Game Studio 3.1 to adapt that game for Xbox 360, Windows or Zune.
    • XNA Game Studio 4.0 is a set of software tools that will be used by developers to create games for Windows Phone 7 Series. This updated version of XNA Game Studio will allow game developers to create better mobile games faster by providing:

      Pedigree: Microsoft has invested in XNA Game Studio for the past four years to make it one of the most comprehensive and trusted tools for developers. There have been over 1 million downloads of previous versions of XNA Game Studio since its initial release in December 2006

    Game Development on Windows Phone 7 Series

    •  
      • Collect Achievements and build your Gamerscore
      • View Xbox LIVE leaderboards
      • See your Xbox LIVE Avatar
      • Access Spotlight feeds
      • Add Xbox LIVE friends to your friends list while out on the go
    • Windows Phone 7 Series is a whole new approach to phone software, distinguished by smart design and truly integrated experiences. It offers users new ways to find and play games, including:

      The games hub. The games hub will contain all the games an individual has acquired through the Windows® Phone Marketplace. We are partnering with a select group of publishers to create great Xbox LIVE games for the games hub. The Xbox LIVE features include the ability to:

      The marketplace hub. Windows Phone 7 Series includes the Windows® Phone Marketplace, where apps and games will be sold. Both independent and professional developers can offer games as apps via Marketplace, giving consumers a wide array of games to choose from.

    GDC isn’t finished yet so we can expect more WP7S info in the coming days (and next week at MIX). Stay tuned…

    Microsoft unveils first 3D games on Windows Phone 7 Series


    Following theannouncment of XNA Game Studio 4.0Microsoft just unveiled the first screenshots of 2 3D games currently being developed for Windows Phone 7 Series. The first one is The Harvesta Diablo-like action game featuring destructible 3D environments developed by Luma Arcade. The second one, Battle Punks developed by Gravity Bear, is a sword-fighting Facebook game. Microsoft also confirmed what I told you guys in my WP7 article: Direct3D is going to be only 3D API supported on Windows Phone 7 Series. So OpenGL apps/Games will have to be ported. Suffice to say that Microsoft is going hard at the competition (Apple/Android). Engadget also had a short XNA/3-screens dev demo at the GDC (basically the same thing we saw a few days ago):

    Windows Phone 7 Series development infromation and Q&A


    Microsoft’s Charlie Kindel has just posted a little blurb on what developers can expect in Windows Phone 7 Series. As expected (and leaked here in early February) the main development tools will be XNA and Silverlight (via Explression Blend):

    I mentioned in my last post that one of our principles was “to build upon the shoulders of giants; where possible integrate instead of create.” It won’t come as a surprise to many to learn that the Windows Phone 7 developer experience builds upon the following GIANTS (among others):

    .NET
    Silverlight
    XNA platform
    Microsoft’s developer tools
    Web 2.0 standards

    The expertise and familiarity with our tools is not lost. If you are a .NET developer today your skills and much of your code will move forward. If you are Silverlight or XNA developer today you’re gonna be really happy. New developers to the platform will find a cohesive, well designed API set with super productive tools.

    He also confirmed that their will be no backward compatibility with previsou and current Windows Mobile applications. You can check out his full post here

    If you are not faimilair with XNA or Silverlight I suggest you go check out the offical site here & here.

    The Windows Phone 7 Series Dev Team is running a Q&A session on Twitter right no. To follow it just click here or follow the #WP7DEV tag.

    Windows Phone 7 Series sessions at GDC 2010


    If you still think that Microsoft isn’t serious about development & gaming on Windows Phone 7 Series then suggest you think again. Just found out that a couple of days before the MIX10 event Microsoft will host several Windows Phone 7 sessions at the Game Developers Conference in San Fransisco (see here):

    Developing Games for Windows Phone 7 Series
    High Performance 3D Games on Windows Phone 7 Series
    Development and Debugging Tools for Windows Phone 7 Series
    Bringing the Best of Xbox LIVE to Windows Phone 7 Series

    Optimizing Performance of Modern Games for Windows Phone
    Speaker: Speaker TBA
    Date/Time: Thursday (March 11, 2010) 3:00pm — 4:00pm
    Location (room): Room 301, South Hall
    Track: Programming
    Format: 60-minute Sponsored Session
    Experience Level: All

    Session Description
    The Windows phone development platform supports a wide range of high-performance applications, including detailed rendering in games with high-fidelity content. This talk covers best practices for harnessing the full power of the device, with an emphasis on optimizing graphics in high-end mobile games.

    Overview of Game Development for Windows Phone
    Speaker: Speaker TBA
    Date/Time: Thursday (March 11, 2010) 1:30pm — 2:30pm
    Location (room): Room 301, South Hall
    Track: Programming
    Format: 60-minute Sponsored Session
    Experience Level: All

    Session Description
    The future of Windows phone has never looked better. This talk covers the foundation of Windows phone development, with a look at Windows phone device characteristics, the basic Windows phone development platform, and the business opportunities available through Windows Marketplace for Mobile.

    Development and Debugging Tools for Windows Phone
    Speaker: Speaker TBA
    Date/Time: Thursday (March 11, 2010) 4:30pm — 5:30pm
    Location (room): Room 301, South Hall
    Track: Programming
    Format: 60-minute Sponsored Session
    Experience Level: All

    Session Description
    Developing for mobile platforms has always required special tools and special techniques. This talk covers the core tools available to the Windows phone developer, with an emphasis on building, debugging, and testing high-performance games.

    Takeaway

    Expanding the Reach of Gaming on Windows phone
    Speaker: Speaker TBA
    Date/Time: Friday (March 12, 2010) 3:00pm — 4:00pm
    Location (room): Room 301, South Hall
    Track: Programming
    Format: 60-minute Sponsored Session
    Experience Level: All

    Session Description
    A well-designed connection between a mobile game and hosted server through arbitrary web access opens up a whole world of possibility for mobile games. This talk focuses on a basic design for a web-services-enabled game with an eye towards best practices and outlines upcoming Microsoft services that greatly broaden the Windows phone gaming community.

    Windows Phone 7 is going to be big.

    Windows Phone 7 has everything to succeed

    Last week’s been really busy with MWC and the Windows Phone 7 Series announcement on Monday 15th in Barcelona. A lot has been said about it since then and the general consensus is that Microsoft is doing the right thing by restarting from scratch but some people are still worried or disappointed because of what seems like an “iPhonesque” shift in strategy. I’ll try to share my thoughts with you and hopefully give you a little insight on what can be Microsoft’s next Billion dollar business.
    Continue reading Windows Phone 7 has everything to succeed →