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.