[game_edu] Game Programming via XNA + Ray Tracing

Lennart Nacke nopixel at gmail.com
Fri Apr 11 04:28:18 EDT 2008


Hi Yusuf,

On 4/11/2008 3:21 AM,Yusuf Pisan wrote:

> Is there a textbook or any reference book you'd suggest on XNA aimed

> at students who are already decent programmers, but do not necessarily

> have any have C# experience? Are there any advanced graphics or

> rendering textbooks that use C# that you would recommend?


Well, we are currently choosing to use one of these books for our
upcoming XNA classes (however, our students will most likely lack
decent programming experience):

Professional XNA Game Programming: For Xbox 360 and Windows

http://books.google.com/books?id=QUAdAAAACAAJ

Benjamin's textbook is a bit dry and very technical, you can see that
he is an industry programmer and not an instructor. However, it is the
only decent XNA related book (with a graphics focus) that I could find
so far.

If you have not checked out his blog yet, it is a great source of
inspiration (I find his blog even a tad bit better than his book):

http://benjaminnitschke.no-ip.info/

Then, there is a newer text by Joseph Hall, which is also a much
bigger (and heavier) book [I don't know why programming books always
have to be full of printed code]. I have not finished reviewing it
decently, so I cannot say too much about it.

XNA Game Studio Express: Developing Games for Windows and the Xbox 360

http://codetopia.com/cs/blogs/xna_articles/articles/39.aspx

Although now outdated, Tom Miller's book on Managed DirectX 9 was a
really good introduction, also with lots of little tidbits focused on
graphics programming, which I enjoyed (maybe you want to have a look
at it anyways):

Managed DirectX 9 Kick Start: Graphics and Game Programming
http://books.google.com/books?id=8Y4VrGBtGM8C


> On a related note, one of my colleagues, Kevin Suffern, is the author

> of Ray Tracing book


With all due respect, I find IMHO that if a course only focuses on Ray
Tracing, it hardly deserves the name "game programming", because this
is essentially a computer graphics course. However, I cannot speak for
that course as I do not know the exact contents.


> to computer games. Any suggestion on what techniques/methods should be

> included in addition or rather than building a ray tracer?


I would always recommend that computer science students take computer
graphics related courses in addition to their game technology courses,
so that then in your game technology course, you only have to give a
quick refresh of the basic graphics techniques. I usually found it
most sensible to have students work with some kind of game engine
technology (because that reflects in my opinion the work of many game
programmers in the industry a bit more, because they usually have to
work within an established system).

Besides teaching them all the modalities that surround a software
systems, like iterative development, version control, code
organization and management, I think, it is essential to focus on
debugging and also in the iterative development process to use
bugtracking tools like Mantis, Bugzilla, etc. to have your students
learn how to iteratively refine and fix their code (finding out where
the problems are usually takes much longer time than implementing a
cool graphics technique from a text book).

Also, try to dedicate at least 1/5 of your course to shipping the
product. This is something many student projects lack in: Deployment
of code (sure in C# that is quite easy), but think of alternatives,
think of end users and prerequisites, have some non computer science
people try to install the games of your students and get their
feedback if it runs on their machines. I think that would be a quite
nice addition to regular techniques.

Also, we found that adding some AI programming at the end of courses
usually makes for a great showcase tournament, where they can have
their bots play against each other. However, this would require a
senior student/staff member to provide some sort of framework within
the game engine they use so that they can hack in their AI code rather
quickly (since most AI is usually scripted).

In general, I would go less into specifics of a certain language or
programming technique, but have students more look at the general
picture and divide them in their teams according to their interests
(graphics, AI, sound, gameplay, tools, etc.). This fosters teamwork
and a general understanding of the process a game development from the
technical side.

Nevertheless, these are just my suggestions. Maybe you disagree or
have more input. I would love to hear about it as well.

Cheers,

Lennart
--
Lennart Nacke, PhD Student
Game and Media Arts Laboratory
Blekinge Institute of Technology
Box 214, SE-37424 Karlshamn
Tel: +46-455-385937
Fax: +46-454-19104
http://gamescience.bth.se


More information about the game_edu mailing list