Xbox Science (XNA Game)
Xbox Science was a course taught by Leonard McMillan for the Computer Science Department at the University of North Carolina in the Spring of 2007. In this course, students developed bioinformatics inspired games for the Xbox-360 console using XNA. Student participated in two projects, one group project and one individual project.
Here is the full course description:
What if solving nature’s puzzles was entertaining as well as fulfilling? Would you rather play a first-person shooter, or be the first person to discover a gene’s function? Is it possible to do both? This is the challenge that we address in our Xbox Science project. We are exploring the potential of employing game interfaces, game-design principles, and game production approaches for constructing bioinformatics tools. You might ask why?
- Set-top Supercomputers. The most powerful computer in most homes today is a video-game console. Today’s machines boast multiple cores and 100+ MFlop performance with high-end graphics. Moreover, at $299, they represent one of the best MFlop per dollar ratios in history.
- Most bioinformatics applications stink. Typical bioinformatics tools require their user to be literate in statistics, computer science, and biology. Imagine if, in order to drive a car, you had to simultaneously be a test-driver, mechanic, and combustion engineer. This is what is expected of today’s biologists. Lab software focuses on function and features rather than usability. In contrast, video game manuals are seldom read. Is it possible to build scientific tools that are usable by anyone? Can we make them fun?
- Leverage an insatiable resource. Can we harness the minds and reflexes of the billion-plus gamers worldwide to find cures for disease with incentives of being a high scorer rather than securing drug-patent rights? Many of the tasks confronted by biologists amount to combinatorial puzzles, not unlike the game “Bejeweled”. A biologist may spend years searching for patterns within a gene expression array. What if hundreds of gamers joined in, and explored their datasets in parallel?
I worked on two projects during this course, Haplotype Threading and Dr. Phase. Haplotype Threading was a group project which engages a human’s natural pattern recognition abilities to solve for progenitor haplotypes. In layman’s terms – if we know the DNA sequences of a large group of people, and we assume they all descended from a few progenitors; can we derive the DNA sequences of the progenitors from the information we have? In this game, you are presented with a table of DNA sequences and must determine the progenitor sequences that created the table. The quality of your answer is scored based on “threading”, or the number of times a sequence must switch from one progenitor to another. This is directly related to the number of recombination cross-over events required to create the sequence.
The second game I worked on was an independent project, Dr. Phase. Dr. Phase is loosely based on Dr. Mario. Your objective as “Dr. Phase” is to eliminate viruses by matching the correct vaccinations to the appropriate viruses. However, viruses may transform depending on the actions of nearby viruses. You receive points for correctly vaccinating as many viruses as possible. The underlying problem this game addresses has nothing to do with viruses or vaccines. It is actually meant to serve as a phasing application. Diploid organisms such as humans have two non-identical copies of their DNA – one they get from their mother and one they get from their father. Biologists are able to easily determine a person’s genotype, which is a string that represents both sequences of DNA combined together. This sequence tells biologists whether the two DNA sequences match or differ at each position. Phasing is done to discern the individual DNA sequences from a genotype. Phasing “calls” only need to be made at heterozygous sites (places on the DNA where the two DNA sequences differ). Phasing calls are binary decisions as there are only two ways for each sequence of DNA to differ. In the game, each virus represents a heterozygous site in the DNA that needs to be phased. The vaccine you apply sets the phasing call. The color of a virus and its size are determined by a metric called ‘sharing’, which essentially compares a sequence of DNA to other sequences and determines how similar they are. Each comparison “votes” for a phasing site to be called one way or the other based on the amount of sharing. The virus size is inversely proportional to amount of sharing for the given phasing call. Therefore, the smaller a virus, the better the phasing call. The hope was to learn how gamers approached the problem of phasing, to help us improve upon existing phasing algorithms or develop new ones. In doing this, I also sought to abstract the problem away as much as possible in order to make the game more playable and fun. Dr. Phase placed first in the class’ individual project competition.
Here is a link to the course website where we share our experiences in writing video games with a real-world purpose, and includes discussions of the underlying biology. Below are some downloadable games that can be played on the XBox-360.
Dr. Phase (XNA Source and Project Files) – Zip Archive (.zip) – 43MB
Note about XNA source files: XNA source files can be used to compile the game and deploy it on the Xbox-360. To compile this code, you will need Microsoft Visual Studio #C 2005 Express Edition and XNA Game Development Studio. XNA games are playable on both the PC and the Xbox-360. However, to deploy an XNA game to an Xbox-360, you will need an Xbox LIVE account with a Creators Club Membership.
Note about Windows Installers: Windows installers allow the game to be played on the PC only. You cannot deploy the game to the Xbox-360 without the source code. Games are compatible with the USB version of the Xbox-360 gamepad and may also be played with the keyboard.