A day or two after I gave my last XNA Presentation for TVUG, Microsoft released an XNA refresh which added a lot of nice features. From Michael Klutcher's refresh announcement:
- XNA Game Studio Express
- Windows Vista is now fully supported
- You can now add icons to XNA Game Studio Express Games.
- Incrementally deployment of Xbox 360 projects now works for all your projects (not just the last one loaded)
- XNA Framework
- Added Bitmap based font support
- Added XACT 3D Audio support
- Improvements and additions to the Math framework API’s
- BasicEffect now supports per-pixel lighting
- Many more changes based on your feedback!
- XNA Framework Content Pipeline
- Added support for Volume Textures (Texture3D)
- Content builds can now be canceled
- Support for “clean” builds
- Added the ability to read vertex and index buffer information from Model types
- Many more changes based on your feedback!
- XNA Game Launcher (Xbox 360)
- Game thumbnails are now displayed for your games
- Improved connection-key connectivity experience between the Xbox 360 and the PC
- The ability to test and diagnose the connection between the Xbox 360 and the PC
In addition, the XNA Creator's Club site released an excellent (and quite fun) Racing Game Starter Kit. This starter kit includes some excellent examples of 3D effects using HLSL (normal mapping, post process blur, etc) as well as a third person camera and placing a 3D Mesh on another mesh dynamically using normals (for example, keeping the car on the road).
I anticipate that I will be using some of these ideas for a Simple Engine update: I imagine that it would be relatively easy to enhance the Effect class to add normal mapping, reflectivity, etc. to a Mesh with little configuration. In turn, XML could be used to store the effect information, and GUI editor could allow developers intuitive access to the functionality. Can we say Level Editor, anyone?
Also, if you look at the refresh updates, something big hit me right off the bat: the ability to read index and vertex buffer information for a Mesh will make collision detection MUCH more accurate, and would allow for more accurate LOD rendering. If we can read the coordinates of the mesh information, a concave surface that approximates the mesh space could be created. I'd be surprised if we don't see additional primitives (in addition to the BoundingSphere and BoundingBox), or a variation of the mini-bounding spheres I presented last April. With this info, in fact, a developer *could* tie meshes in nicely with an open source physics engine (Bullet, I'm thinking of you) for a very impressive, and very free 3D Engine.
So, if you're registered to this site, download the SimpleEngine from our presentations section. I've always said that it needs work, and I'd like to see what other developers would like to add to the functionality list. Drop me a line!