Breaking changes in XNA Game Studio 4.0

I was relieved when the comments on my earlier post about backward compatibility agreed with the approach we chose for XNA Game Studio 4.0. Banjobeni summed up the general sentiment: "If you break it, break it good." The initial motivation for breaking changes in XNA GS 4.0 was the addition of Windows Phone, but this…

72

In which hints become facts: XNA Game Studio 4.0

Today we announced what I’ve been hinting at this past few weeks: XNA Game Studio 4.0 is coming soon* to a phone near you! Quick summary: New platform Windows Phone 7 Series New features Integrates with Visual Studio 2010 Dynamic audio output Microphone input BasicEffect has four new siblings SkinnedEffect EnvironmentMapEffect DualTextureEffect AlphaTestEffect Improved portability…

69

Reach vs. HiDef

I must confess, I oversimplified when I labeled the yellow circle in this post as “Windows laptop”. Sure, the Reach profile in XNA Game Studio 4.0 does correspond to what features are widely available across different Windows machines (which makes it valuable even for Windows developers who do not care about other platforms), but this…

64

What should I write about next?

I have a couple more articles planned about aliasing and motion blur, but am curious to hear where you would like me to take this blog next. Some topics I am considering: C++.  Dirty secret: although I’ve mostly blogged about C# programming, much of XNA itself is written in C++, so I’ve actually been straddling…

59

Rendertarget changes in XNA Game Studio 4.0

We made several changes to the rendertarget API in Game Studio 4.0, all with the goal of increasing usability and reducing error. The most common cause of confusion is probably the RenderTargetUsage.DiscardContents behavior, but this is one thing we did not change. PreserveContents mode is just too slow on Xbox, and even slower on phone…

44

From games to telephones

After six years working on XNA, I decided it was time to take on a new challenge.  I am moving to the Windows Phone team, where I will be working on things I’m not sure how much I can say about here  (leaking future business plans on MSDN might not be the best way to…

44

SpriteBatch and renderstates in XNA Game Studio 4.0

A repost of one of my more popular articles, upgraded for Game Studio 4.0… If you are mixing 3D rendering with 2D objects using SpriteBatch, you may notice that your 3D graphics no longer draw correctly after you have rendered sprites. This is because the SpriteBatch changes several device states to values that may not…

43

Automatic XNB serialization in XNA Game Studio 3.1

One of the new features in Game Studio 3.1 is automatic serialization for .xnb files. This is a feature I have wanted ever since we first designed the Content Pipeline, so it makes me very happy that we finally found time to implement it!   Short Version You know those ContentTypeWriter and ContentTypeReader thingamyhickies? You…

38

Effect API changes in XNA Game Studio 4.0

Where in previous XNA versions you used to write: effect.Begin(); effect.CurrentTechnique.Passes[0].Begin(); DrawStuff(); effect.CurrentTechnique.Passes[0].End(); effect.End(); With Game Studio 4.0 this becomes just: effect.CurrentTechnique.Passes[0].Apply(); DrawStuff(); What in previous versions would be: effect.Begin(); effect.CurrentTechnique.Passes[0].Begin(); DrawStuff(); effect.Parameters["lives"].SetValue(9); effect.CommitChanges(); DrawOtherStuff(); effect.CurrentTechnique.Passes[0].End(); effect.End(); Is now: effect.CurrentTechnique.Passes[0].Apply(); DrawStuff(); effect.Parameters["lives"].SetValue(9); effect.CurrentTechnique.Passes[0].Apply(); DrawOtherStuff(); Editors note: if you profile the new Apply method with the…

37

Zoological word puzzle experiment

This is an experiment to see which is smarter: phone a friend or ask the audience? The challenge: name an animal, the name of which consists of two words, each of which is themselves an animal, but neither of which refers to the animal itself. For instance, Tiger Moth does not count, because it is…

37