A month ago, Microsoft announced Windows Phone 7 Series at Mobile World Congress in Barcelona. Since its announcement, the newly-rebooted platform has been polished to a state where it's now ready for developers to take charge and start making applications. Almost everything we've suspected has turned out to be true; Phone 7 Series will heavily make use of cloud services such as Xbox Live, and enable huge amounts of code re-use for game and software development with XNA and Silverlight. Microsoft has learned from the success of other platforms how important ease of application development is to platform success, and at MIX10, the emphasis is entirely on developers. Or rather, "Phone Developers" as Steve Ballmer rather humorously suggested:
Phone Developers are Critical
Additional platform details have been announced, including disclosure about both the development framework, tools, and probably most importantly the app marketplace structure for Phone 7 Series. Development will happen atop Microsoft Silverlight 3.0 and Microsoft XNA platforms, leveraging tools like Visual Studio 2010 for Windows Phone, Expression Blend 4 for Windows Phone, and XNA Game Studio 4.0 for Windows Phone. As we suspected earlier, these two frameworks (Silverlight and XNA) lie at the core of Phone 7 Series. Microsoft has been adamant that both Silverlight and XNA developed applications are fully hardware accelerated, and while there's still lag in some applications, the software they've shown thus far is clearly better optimized than it was at MWC.
Microsoft is wasting no time giving developers already familiar with XNA and Silverlight the tools necessary to immediately start building software. The SDK is available and ready, complete with an emulator and support for testing on hardware as soon as it starts shipping. All three of the development tools (Expression Blend, XNA Game Studio, and Visual Studio) are being made available immediately for free at http://developer.windowsphone.com/ . For all intents and purposes, software development for the platform begins now.
Microsoft is taking a two-route approach to application development. They're hoping that the vast majority of productivity, office, and otherwise non-gaming applications will be developed in Visual Studio 2010 or Expression Blend 4 and run atop Phone 7's Silverlight framework. The entire Silverlight 3.0 platform is included and running atop hardware, including a small handful of Silverlight 4.0 features.
A different subset of gaming applications or programs that leverage 3D or require "twitchy response" (like FPS titles), however, will run atop XNA. Once a developer chooses to develop software in one of the two camps, it sticks there for its development cycle. With time, Microsoft plans to bring down these barriers between XNA and Silverlight, but launch this upcoming holiday 2010 is slated to employ this two-camp mode.
This strongly parallels the route that Palm is taking with WebOS, using a basic SDK for most applications, and a "Plug-In Development Kit" (PDK) that allows closer to metal code to run for applications that require better performance and leverage 3D strongly. This model is an interesting balance between both trains of thought; beginning developers looking to make simple applications fast can easily develop with tools like Expression Blend 4. Programmers looking for a closer to metal framework or porting existing Xbox 360 and PC games can choose to use XNA Game Studio.
Probably most interesting, however, is just how much of the code can be shared between PC, Xbox 360, and Windows Phone 7 Series platforms. Microsoft claims 90% or more is more than possible. They demonstrated a title designed in XNA Game Studio 4.0 developed in just 3 weeks called The Harvest which runs almost identically on all three platforms. You can see the game in action for yourself:
I had some concerns about the performance of The Harvest demo and asked a number of Microsoft Game Platform Strategists and XNA tools developers some questions. Although the game clearly stuttered in a few points and had a somewhat variable FPS at times, I'm told that this is not representative from a performance standpoint; obviously this isn't a shipping game. For one, the demo uses the same artwork and textures as both the desktop PC and Xbox 360 versions. For two, the entire demo was developed in just under 3 weeks. Third, I'm told that that the display link (Joe Belifore used a USB link for presenting the display during the keynote) might also be a culprit. Either way, it's reasonable to expect performance to improve drastically.