A few days before this post, I embarked on a mission to port over Scribble Defense from Xbox to Windows Phone 7. I estimated it will take a few weeks to finish, given that I have tried to port over Neo Terra to the Zune, in a matter of a few days. However the Zune version was very limited because of the hardware and debugging tools that were available, was pretty much crap. Now skip a few months ahead and now I am using the Game Studio 4.0 Beta SDK. It has a mostly fully functional emulator (no throttling, or accelerometer data), a stablized API (meaning less breaking changes if any until RTM), and more educational samples. Right now, after about 5 days of working on porting the game part-time(4 hours a day), I am able to say that I ported 100% of the code over to be Windows Phone 7 compatible (using touchscreen, going through the certification checklist, performance, etc ...) Now I am in polish mode, tweaking the touch interface, adding better assets, toning down some of the particles to compensate for the phone, as well as playtesting.
What I learned:
- The emulator is not throttled, so if you are developing on a beefy machine then you will completely screw yourself over if you do not test your game on a phone before hand. My development machine is a Quad Core I-7, 4 gigs of ram, and a ATI HD 5730.
- The emulator is not enough to get the feel of the game. Holding a phone will be a different experience because for one you are not using the mouse as a touch device, and two the way you play will be different on the phone because you hold it different and have a far smaller screen
- Porting over Scribble Defense has been really easy for me because my game did not use any custom shaders, and if you designed your game properly porting over the controls should not be a problem as well. It took me probably an hour to make a new windows phone 7 project and import over all the files and content, as well as draw something on the screen. It took another 5 hours to resize assets, move around menu objects, as well as creating a rudimentary replacement for the controls.
- Use the Creators Club Educational samples to your advantage. It would have taken me far more time to figure out the new gestures api, if I did not base it off the sample on the site. There will be new ones coming out in the future, I suggest trying them out even if you don't think you will need it for you game. Just knowing what tools you have available is a tremendous help in your confidence when porting your game
- Touch Screen controls are a whole different paradigm than controllers and keyboard and mouse. Doing gestures like pinch, drag, and flick will not always work for a game because it might not be something the user might think of doing. Consider using buttons, and alot of reminders to the user that this action is available to them.
- You can get away with more on the smaller screen than on the Xbox. The good thing about the smaller screen is that you can cheat on alot of particle effects by making them have a lower quality and quantity. Remember, the phone will only have a 1ghz CPU, and a even weaker GPU. If you relied alot on the GPU on the Xbox, you will want to rely more on the CPU this time around
Well that is what I have learned so far in porting over a 3.1 Game Studio game from the Xbox to the PC. It is not very hard to do, and most of the API's are the same. Just remember that you are developing for a handheld and always keep that in mind. A good example of how easy it is to port to Windows Phone 7 is by showing you a sample of my game after 5 days of work in porting it over. Enjoy!