Friday, July 30, 2010

Learning and more learning

Last week the Windows Phone team hosted a series of Jump Start courses, which I "attended" for the most part. Unfortunately, my children were accommodating during the parts that I knew, but not the parts that I wanted most to see, but that's what reruns are for, right? It was a good overview of what the platform could do and how to do some interesting introductory things in both Silverlight and XNA. Alas, I did not win a T-shirt nor the private jet that they gave away.

I also "attended" the unboxing of a Windows Phone 7 by Tim Heuer. It may sound a bit lame, watching a guy open a package and play with the device, but it certainly makes things more real when you see a live device in someone's hands, being loaded fresh with apps and working. It was a decent group of people also watching, chatting on the side of the video. And, we learned not to stick a microSIM card into a SIM slot (but that it can be successfully removed).

This week I also moved from XNA experimentation to learning more Silverlight. Well, I haven't gotten to the Silverlight per se, but have started writing some background code (for Yet Another Twitter App) that will support the data-driven aspects of Silverlight. If you're so inclined, you can watch the Back|Start|Search twitter account for lots of noisy tweets while testing the app over the next while. After that, we might actually start using that account to tweet things of import!

Monday, July 12, 2010

Windows Phone Developer Tools Beta

The Beta of the Windows Phone 7 Developer tools has just been released. Many of the changes from the CTP we've been using seem to be geared to allowing those who have actual devices to use them. Unfortunately that doesn't include me.

Other changes include controls and control templates, both of which I've got no real understanding of yet, since that's all Silverlight and I'm still a Silverlight newbie, still focusing on learning some XNA.


The scary part about this, if you've read my previous posts on the matter, is that I have to uninstall the CTP versions of things and reinstall this version. Wish me luck!

Wednesday, July 7, 2010

XNA progress

One of the good and bad things about Windows Phone 7 is that it has two development APIs to choose from -- Silverlight and XNA. This is good because it allows for flexibility to choose the right tool for the job, but bad because I know neither of them, and thus have to learn both of them to have the understanding of the platform that I want.

Silverlight frightens me, though, because it's heavily about layout, which I've never been good at. My blogs are only tolerable because they come with templates, and anything else I design hasn't a whiff of design, layout or interface. This is a problem I'm going to have to overcome, in time, but for now, I'm learning some XNA, which lets me ignore such things and just draw pretty graphics all over the screen -- art being something else I'm hopeless at, so will be using liberated assets from the internet and elsewhere.


To learn XNA, I've been reading the O'Reilly Learning XNA 3.0 book, wishing that there was a 4.0 version out already. There are a few blogs out there that are trying to help developers make the transition, and a few others that are trying to point out the Windows Phone-specific differences for XNA development. But for now, I'm going through the examples in the book as Windows Phone 7 targets and dealing with any discrepancies as I find them.

One of the first examples (that does anything interesting anyway) is putting an animated sprite on the screen, and then using various input devices to move it about. While they provide animation spritesheets with the downloadable content for the book, I have other assets that I prefer to use. After a little bit of customizing of the example code (which I've now noticed I'll be changing in the next chapter), I ended up with something that I'm pleased with.



Now really, this is not much of an accomplishment -- this is chapter 3 of the book, and all it lets you do is move the ogre (his colours look fine on my screen; I haven't figured out why FRAPS doesn't capture it properly) around with mouse and keyboard. Well, it would if it was a regular XNA app, but the XNA KeyboardState doesn't translate well to the phone emulator, and the mouse interaction on the phone requires your finger on the screen, thus clicking-and-holding the mouse button, instead of just moving it. But even though this is currently a trivial result, it definitely helps drive me to learn more, especially because seeing this with the alternate graphics helps to drive my other project as well.

Up next: collision detection. But instead of some spinning ball from the book, perhaps I need... fire!