Shawn Hargreaves Blog
Videos of the Windows Phone 7 Series presentations from MIX10 are now available online.
For an introduction to the platform, start with Joe Belfiore, Charlie Kindel, and Istvan Cseri.
If you want to make games (or apps) using XNA, start with Michael Klucher, then check out my talk (not just demos, but demos which include cats!) plus Cullen Waters on tooling.
If you want to make apps (or games) using Silverlight, start with Shawn Oster, then Mike Harsh, Peter Torr, and Seema Ramchandani.
Last but not least, if you want to make money using either XNA or Silverlight, check out John Bruno and Todd Biggs discussing the Windows Phone Marketplace.
Awesome presentations! Specially yours, but everyone was really great.
Shawn, on minute 14:55 you said: "... if you declare a local variable of a value type, local variables go on the heap, so the value type is directly on the heap".
This phrase really puzzled me, since afaik in C# (and other languages) unless the local value-typed variable gets captured by the CLR when it escapes from the local scope (ie: when you use iterators or annonymous delegates), that local variable will reside on the stack until the method ends.
So, was it "a typo" in your speech? If not, where's the catch? :)
> local variables go on the heap
That was a speako, I meant to say stack :-)
I would love to hear more about how you used IEnumerable and yield to process a cool AI state machine!
Great talks. I really want my team to see these, but we have a block on streaming videos, and there is no way to download them that I can see. I can see them because I have rights to bypass the block, but even if the videos weren't blocked I don't want to pay the download cost of every member of my team streaming the videos individually. Is there a way to download these videos so we can serve them locally?
The page for each talks includes download links for a couple of different video formats, plus the .ppt deck.
> That was a speako, I meant to say stack :-)
> I would love to hear more about how you used IEnumerable and yield to process a cool AI state machine!
> Is there a way to download these videos so we can serve them locally?
Like Shawn says, you can download them. I did to later watch'em on my Zune.
Awesome talks, thank you for sharing them!
You described the balance between pixel cost, number of pixels, and frame rate. How about battery life? I was wondering about this as I watched the closeup of the tank with the pixel lighting and, later, the huge # of cats. If you optimize your game to run faster than 30Hz but cap it at 30Hz, will you see corresponding improvement in battery life? I could imagine even giving the user controls to say, choose a lower resolution to prioritize battery life over visual quality.
> If you optimize your game to run faster than 30Hz but cap it at 30Hz, will you see corresponding improvement in battery life?
Absolutely. The less work you do, the more time the hardware is idle, and the more it is idle, the longer the battery will last. You can carry this to extremes: an app that does nothing at all will have better battery life than one that draws complex animating graphics :-)
Are there publish performance vs battery life documents anywhere? Is it similar to the Zune?
I see the download links now. I'm sure I didn't see them there yesterday.
> Are there publish performance vs battery life documents anywhere? Is it similar to the Zune?
No documentation that I know of yet, but you can expect much more about such things (on my blog, and of course the official docs on MSDN, and probably other places I don't know about yet too) as we head toward RTM.
At a high level, yes, all mobile devices are similar in that the more time the chips are idle, the less power is used. The XNA Framework game loop (Update, Draw, SuppressDraw, etc) is basically the same on Windows Mobile as it was on Zune.
> I see the download links now. I'm sure I didn't see them there yesterday.
Strange. I wonder if they temporarily took down those links while they were sorting out the bandwidth issues? Seems like the site got hit pretty hard right after MIX finished and the videos went up :-)
Excellent talks! I'm impressed with the computing power available, at least the demos showed are top notch.
It feels you can basically do everything with the predefined effects. I guess the custom effects when implemented would work mainly for post-processing, although as demonstrated by the basic effect, working at somewhat expensive per-pixel level operations eats up a lot of the available processing power.
Skinned Sample: Up to 72 bones, seems a lot. I don't remember quite well because haven't really used it, but even the XBOX sample comes with less bones per vertex pass am I right?
Really looking forward to get one of those phones and start fiddling around!.
Interested in it too. After looking at your talk (awesome!! let me say) tried to look more info around the net and actually can't get my head around it... even less people using it as microthreading, scheduler and all included.
I would love to hear how this works. Maybe a nice post with an example of how an enemy would be running around, try to fire at another enemy/player, but it gets hit and sits there waiting for the animation to end? :p.
I guess that for very complex state machines you should then write an state machine and not rely on compiler magic, but either way seems very very useful.
Great blog! non-stop knowledge source. And it looks like it will never stop. Thanks a lot.
> Skinned Sample: Up to 72 bones, seems a lot. I don't remember quite well because haven't really used it, but even the XBOX sample comes with less bones per vertex pass am I right?
The new SkinnedEffect supports 72 bones on all three platforms. Yeah, that's more than you can fit if you just do a simplistic array of float4x4 matrices like in our existing skinning sample. We did more work to pack the bone transforms into 4x3 format.
> Maybe a nice post with an example of how an enemy would be running around
It's on my list, thanks for the suggestion!
This will probably come after I run out of GS 4.0 topics, though, so it'll be a couple of months out.