Gamefest 2007: GPU Data Structures and Advanced Lighting: State-of-the-Art Techniques from Microsoft Research

Hugues Hoppe and John Snyder
Principal Researchers
Graphics Group at Microsoft Research

Its always a pleasure to listen to a talk by Hugues Hoppe.  Every time I read a paper of his, I learn something new and interesting about graphics!

Read the rest of this entry »

Gamefest 2007: Mapping the Dark Corners: Creating a Flexible Framework for Dynamic Shadowing

Dan Amerson, Matt Bailey
Software Engineers
Xbox 360 Team
Emergent Game Technologies

I missed the opening 10 minutes or so of this talk, but I found it very interesting.  This was a talk more from a software engineering perspective.  They discussed an object-oriented framework they created as a piece of middleware for use by game developers.  The framework is for C++ and the goal was to provide a framework that managed all the details of shadow generation passes and lets the end developer customize the behavior of the framework by extension of the framework classes.

The framework was created with an up-front design, but once they had their initial design, they followed agile development practices.  They wrote unit tests on their classes and although they encouraged test-first development, this was not a requirement.  Unit tests were required for more recent code, but they didn’t invest heavily in writing tests for their legacy code base.  This is entirely understandable to me, having recently adopted test-driven development myself and dealt with legacy code that isn’t under test.  Writing tests for legacy code is harder than writing tests for new features.

Their design certainly looked complete enough and flexible enough to handle most of the weird shadow and illumination tricks people would like to play, including new ones that haven’t been dreamed up yet.  I’m sure at some point their model will need extension or additions, but what they have looks good for a while to come.  I’m not an expert on all the various shadow generation algorithms, but the talk included a walk through of several shadow generation algorithms and how they can be implemented using their framework.

The shadow framework discussed is used in their game engine Gamebryo.

Gamefest 2007: Picture Perfect: Gamma Through the Rendering Pipeline

Steve Smith
Development Lead
XNA Developer Connection
Microsoft

This was a very good talk on how gamma affects all the Direct3D device state, along with practical advice on how to configure everything for best gamma results.

gamma

To see why you should care about proper gamma in your game, click on the thumbnail above.

When you handle gamma properly, not only is antialiasing improved, but the brightness of the scene is properly handled as well.

Read the rest of this entry »

Gamefest 2007: Pre-Mortem: Torpex Games’ Schizoid

by Jamie Fristrom, Technical Director [blog]
Bull Dugan, President
Torpex Games

Schizoid is a project that started out as an experiment in XNA Game Studio Express.  The game is collaborative between two players and it looked pretty fun on the big screen.  A single programmer, Jamie, prototyped the game in 4 days and obtained approval for making it a real game.  Two months of refinement later and they had a prototype that was approved by Microsoft.  The potential of the prototype attracted high quality artistic and engineering collaborators that improved the game continuously during development.  Interestingly enough, the collaborators edited C# source code directly, entering in tabular data for various assets.

They wrote unit tests in NUnit for the game play and the behavior.  The automated build was created with msbuild and runs NUnit tests automatically.  Jamie generally wrote the test first, but they didn’t impose any rules on the other developers.  About 10% of their bugs were found and fixed on the first day they were introduced, when they are least expensive to eliminate.  They used rapid prototyping to test out various ideas and experiment to select which ideas worked best, instead of endless opinionated discussion about various alternatives.  Instead of arguing about it, they just tried it and took the one that worked best.  Changes were made to the game immediately after watching play testers and put into the next build for the play testers brought in the next day.

They did encounter some performance issues on the Xbox 360 under XNA Game Studio Express.  This is mostly because Game Studio Express is built on top of a modified version of the .NET Compact Framework.  Its likely that some of these performance issues will improve in GSE 2.0.  In my opinion, its unlikely that Microsoft will address every performance issue, but they will address a few of the most eggregious ones.  Its all speculation until GSE 2.0 hits beta.  The performance issues on Schizoid caused some schedule slip as they brought the playability of the Xbox 360 version up to par with the PC version.  Perhaps the lesson learned here is to play test on the 360 early and often so that the necessary refactoring for performance can be done early before it affects too much code.

Microsoft Gamefest 2007

I went to my first Microsoft Gamefest on Monday and Tuesday of this week and met up again with a few of the other DirectX MVPs.  I was mostly interested in the graphics track, but the XNA track was also of interest to me.  The sessions I attended were:

  • Xbox 360 GPU Performance Update
  • Pre-Mortem: Torpex Games’ Schizoid
  • Picture Perfect: Gamma through the rendering pipeline
  • Mapping the Dark Corners: Creating a flexible Framework for Dynamic Shadowing
  • GPU Data Structures and Advanced Lighting: State-of-the-Art Techniques from Microsoft Research
  • Graphics Futures: Direct3D 11 and Beyond
  • Developing 3D Games on the XNA Framework Using TorqueX
  • Advanced Debugging in Managed Code
  • Windows Vista Graphcis Development Drilldown: Direct3D 10 and 10.1
  • Windows to Reality: Getting the Most out of Direct3D 10 Graphics in Your Games
  • GPU Font/Vector Rendering and Approximating Catmull-Clark Subdivision Surfaces with Bicubic Patches
  • Performance Considerations for Graphics on Windows

I’ll be posting blog entries on these sessions as I get my notes together.

Read the rest of this entry »