Teaching XNA

Started by
1 comment, last by Decibit 14 years ago
Hi! I'm going to give XNA classes for the Computer Science students this year. Because I've discovered XNA after several years of development with Direct3D/OpenGL I didn't have significant problems learning it. After all it was just another 3D API. However I'm interested to know what kind of difficulties a beginner might have with it. I would appreciate if you could mention here a thing or two that were difficult to understand for you. Especially if you haven't learned Direct3D/OpenGL before using XNA. Thanks!
Advertisement
Well I mean what level students are we talking about here? The fundamental problem starting out with graphics is that it's pretty advanced math (Linear Algebra) and programming concepts (dynamic memory, an understanding of what a GPU is, device contexts, input, etc).

If they're advanced students (college level) this is probably a great idea.

If they're high school students it seems like a terrible idea because the concepts of a draw loop and such are way over their heads (take a look at the For Beginners questions and you'll get an idea of how basically everything related to games is really hard for beginners). Something like Processing is way better to teach in High School CS since (A) it's Java and (B) it's brain-dead simple and (C) you can make it way more complex. I've got a friend who's a high school CS teacher (intro and AP) and he uses Processing to great effect

But anyway, things that are hard with XNA & graphics programming:
- the concept of a draw loop
- concept of frame based rendering
- dynamic memory allocation
- what's managed code mean
- why are things made of triangles
- what's a 3D model
- everything about texture coordinates, textures, alpha blending, is totally not intuitive
- Linear Algebra is totally opaque. I wouldn't teach anything to do with graphics without a pre-requisite of Linear Algebra. Or be prepared to spend lots of time teaching math.

-me
Yes, they are advanced students. It is expected that they already had Linear Algebra, C# Programming and at least several classes related to software development.

Such topics as texture mapping and alpha blending are the major parts of the course. Additionally I will be talking about object transformations, projection, intersection in 3D, lighting and depth buffering.

Why are things made of triangles is a good point. I will explain it to the students.

This topic is closed to new replies.

Advertisement