Microsoft XNA and XBOX 360 Games Development:


For those who wish to, you can do all you programming assignments based on the XNA framework, then you will be able to run  your assignment either on PC or on the XBOX 360 console.

BEFORE you read on, ask yourself this question: should I consider working on the XBOX 360? If you are not really sure, then, don’t! Remember, this class is quite a bit of work as is. To work with new APIs means you will probably have to spend even more time. Here are some issues you should be concerned with:

1.     Unknowns: This is a relatively new technology, there are some of unknowns. Since this is not part of our class work, I can only support you on the side.

2.     Programming Environment: You will be working in a completely different environment:

a.      IDE: XNA Games Studio Express, this is very similar to Visual Studio but it is not the same.

b.     API: XNA Framework, this is a slight wrapping over the DX9, but it works differently.

c.      Programming Language: C#, not C++.

If you are still reading, thank you. I admire your persistent! And believe me your persistence is well worth it! We learn computer graphics concepts in class, if you dedicate the time to apply the concept in this new and different technology, not only will you end up learning more, your assignments will be that much cooler and that much more fun. Most importantly, your resume will be that much more impressive! Not only do you have hands-on experience on one of the cutting edge technology, the motivation, self-discipline, and dedication you have demonstrated will certainly attract future employer’s attention!

In addition, if you need the income, and do well in this class, I will very much like to pay you to work with me to integrate your work into our library! Imagine, cool assignments, get paid, good references (from me), pretty resume, _and_ getting paid. Can life be better? Well, it will be hard work … but then again, you never know, past students got their pictures taken for the news papers (UWeek, and Daily) for all we know, if you do a good job, may be we can get you on some TV somewhere? J

OK enough rambling, here are some details …If you are still reading, GREAT! Here is what you need to do:

1.     IDE:

a.      You will be working with Visual C# Express. You can download a free version from here.

b.     You will also need to download the service pack 1.

c.      You will need to download XNA Game Studio Express.

2.     Documentations:

a.      For the IDE: XNA Games Studio Express.

b.     For the API: XNA Framework class library documentation (this is also available off the help menu from the XNA Games Studio Express).

3.     On-line discussions: This is MSDN XNA discussion bulletin. As in all on-line discussion sites, this place has many useful information, unfortunately, it also contains many not very helpful (and sometimes even misleading discussions). Read with care, and watch out, sites like these can easily take up your entire day!

I played around with the XNA API slightly, it is basically a wrapping over DX9. Here are some simple examples:

 

  1. Drawing simple points.
  2. Drawing Triangle Fans with Color Interpolation.
  3. Drawing with color textures.
  4. Working with the input job stick.
  5. Working with multiple viewports and multiple drawings.
  6. From Robert Stone (Winter 2007), Robert integrated XNA and WinForm on the PC. Here are some tutorials from Chapter 4 and 5 of the book.
  7. The problem with XNA on the XBOX is that, at least currently, there are no GUI support. Peter Yiap started building some GUI support on the XBOX. Here is what Peter has done (Winter 2007).

 

You can download the zip files, uncompress, compile into XBOX 360 executable, and follow these instructions to load your program to the XBOX 360. Both Peter and Robert defined their project to run on the PC.

 

If you want to work with your home PC and XBOX 360 console please contact me to gain access to a XNA Creators Club account. If you are interested in obtaining an account for yourself: it costs $99- a year to subscribe to the XNA Creators Club (here is how).  The CSS has one Creators Club subscription:

 

            Gamer Profile: cssxna

            Email Login: cssxna@hotmail.com

            Password: contact Kelvin (ksung@u.washington.edu)

 

On the XBOX unit that is towards the front of the Windows Lab (hostname is: xna), cssnxa is the default gamer profile. You should be able to load your XNA games onto this unit. Here are the steps:

 

1.     On your laptop:

a.      make sure you have the IDC (C# Express) and the API (XNA Framework) installed.

b.     Windows XP Firewall setting: Control Panel->Windows Firewall: Exceptions Tab. Scroll down to find “XNA Game Studio Transportenable this exception.

c.      Bring an Ethernet cable to plug-in wire network connection, such that your laptop is on the same subnet as the XBOX unit.

 

2.     Start the C# Express, Under Tools->Options: Expand “XNA Game Studio” under XBOX 360, add:

a.      Xbox360 Name: xna

b.     Connection Key: generate a new connection key on the XBOX.

 

3.     At this point, you have all the required settings and you can start download and test your XNA games!

 

Warnings:

 

  1. Learn and Help: I have only worked with the XNA framework in a very limited fashion. Basically the above 5 examples. I am confident XNA Framework supports everything we need to do. However, it is true that I do not know how to do everything! If you want to work with XNA and XBOX 360, I will work with you, but be prepared for unknowns and (sometimes extreme) frustrations!

 

  1. Access: As mention before, to access your own XBOX 360 console you must be a member of the XNA Creators club. In order to for your PC to communicate with your own XBOX 360 console, you must obtain a key from your XNA Creators Club account, and type this key in the XNA Games Studio Express. After you are enrolled in the XNA Creators Club, here is how to do it.  The given examples are programmed to connect to the XBOX 360 console in the lab (xna), you must change the keys to your own if you want to load/run these examples at home.