The next release of the XNA Framework won’t add anything dramatically new to the content pipeline, but includes a lot of tweaks and bugfixes that didn’t make it in time for our first version. This update is mostly about polishing what we already shipped, rather than attempting to boldly go where no pipeline has gone before (but fear not: we have no shortage of plans for going boldly in the future…)
I’m particularly happy about how many of these changes were driven by feedback from our users. If you are a regular on the forums, you will probably recognize most of the things listed below. Never say we aren’t listening! And please keep the feedback coming.
So what exactly has changed?
New content types
- Volume textures
- Added a ContentManager.ReadAsset method. This is interesting for subtle and powerful reasons that deserve their own blog post. Stay tuned…
- Vertex and index buffers created through the content pipeline can now be read back using GetData. Note: I don’t actually believe doing this is a good idea! The best way to access mesh data for things like collision is to pull it out into a specialized collision data structure in a custom processor, rather than reading it back from the GPU at runtime. But hey. You asked for it, you got it!
- Added ContentManager.RootDirectory property
- Added ContentReader.AssetName property
Build time improvements
- Null content builds are dramatically faster (when nothing has changed, or when there is no content in a game library project)
- Building textures is much faster
- You can now cancel content builds part way through
- The clean command now works for content as well as code
- If you set “Tools / Options / Projects and Solutions / Build and Run / MSBuild project build output verbosity” to anything above “Minimal”, the content pipeline will now tell you exactly why each asset is being rebuilt (useful for diagnosing incremental rebuild problems)
- Added more constructor overloads to ExternalReference, making it more convenient to use
A breathtaking bundle of beneficial bugfixes
- Too many for me to bother listing them all here
We also added some new methods to the math classes. These aren’t specifically part of the content pipeline, but can be useful when writing processors. For instance the new Matrix.Decompose method is particularly handy for manipulating animation keyframe matrices.
And we added per pixel lighting to BasicEffect. That has nothing at all to do with the content pipeline, but I’m still going to mention it because I like shiny things. High quality specular makes me a happy chappie.