Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So, I've been a programmer for 3 years and am finishing up my first graduate semester. I want to get into independent software( mostly mobile ) development with a interest in game development.

The university I go to does research in software development but not computer graphics, but they do offer courses in computer graphics and advanced computer graphics. I took the first computer graphics class this semester.

We used very little OpenGL. We have had 4 main projects where we have implemented the algorithms behind anti-aliasing, clipping, polygon filling, implementing our own transformations( replacing glRotate/Scale/Translate ), and phong lighting equation. From talking to a friend, he says it sounds like a good course.

I have a choice to make next semester, take software design or advanced computer graphics. I've talked to the professor teaching the advanced computer graphics class and he says we are going to be implementing the algorithms our selfs again, but it is focused on more ray-tracing type algorithms. I'm not sure how this class could help me in the realm of game development.

Now, the software design class I feel I could really use. I only took one class on software engineering in my undergrad and I have the possibility to do research in software engineering if choose to. I have found my self when working on my own iPhone apps in the past of hating some of the code I wrote. I did some design but just to get things going. I know that I need to do better at software design if I'm going to be a successful software developer.

So, I know I need both but I guess what would be more useful taking at a university? Which ever one I don't take I probably will try to teach myself in my own time. I'm kind of leaning towards Software Design just so I can see how it's really suppose to be done. Where as the advanced computer graphics algorithms aren't subjective in any way and just need to be implemented.

FYI: I won't be able to take the other class in the future as both of these classes are only offered once every 2-3 years.

Description on each class

Advanced Graphics: Realistic, three-dimensional image generation;modeling techniques for complex three-dimensional scences; advanced illumination techniques;fractual surface modeling; modeling and rendering of natural phenomena.

Software Design: Software design principles, attributes, models, and methodologies; object-oriented designs; real-time system design;user interface design;design verification; reusability issues;tools;current issues.

share|improve this question
up vote 4 down vote accepted

Since you're most interested in the software design class, take it. Those tasks are universal, and the "advanced graphics" description seems a bit more targeted at pre-rendered rather than real-time (gaming) graphics. If you've got the cash, though, you might want to pick up the textbook for the advanced graphics course while it's in the bookstore; it could serve as a good reference and learning tool on its own.

share|improve this answer
The advanced graphics course is using the same book as the intro class which I already have. – Joey Green Nov 10 '10 at 15:44
Also, you bring up another question. Does/Can pre-rendered graphics be used in game dev? If not, then I have no use for the class really. – Joey Green Nov 10 '10 at 15:47
They certainly can, and the techniques will become more relevant as graphics processors become more powerful. It used to be standard practice to use prerendered backgrounds in games such as Resident Evil 1 and FFVII, but it now looks a bit shabby. And the people making the prerendering tools are rarely the people making the game. But yes, you could use some of the techniques in game dev. They just aren't as useful as focused game graphics techniques would be. – Gregory Avery-Weir Nov 11 '10 at 5:08

Definitely go with the Software Design course.

The Advanced Graphics course is a class on advanced ray traced graphics which are more suited to pre-rendered 3d graphics.

You also said you were not happy with your programming skill, and the Software Design course would help you increase your skills much more than the Graphics course.

share|improve this answer

Unless you're interested in designing new game graphics, a ton of work has already been done by the wonderful people at Unity and Cocos2d.

As I'm currently in a Software Engineering class, I can tell you it teaches you how to be a better designer and programmer, think "meta" about your program and design it better.

Graphics is just a tool library, and unless you're going into high-performance graphics rendering, you can just harness the hard work of others. I've self-taught both OpenGL and cocos2d over the past year, but I don't think I could have self-taught Design (or at least, been motivated enough to learn on my own).


share|improve this answer
+1 "I've self-taught both OpenGL and cocos2d over the past year, but I don't think I could have self-taught Design (or at least, been motivated enough to learn on my own" Yeah, the best programmer's have always had very motivating teachers. – Vishnu Nov 11 '10 at 10:49
@Vish, There's a big difference between learning a toolset and learning a skillset. Sometimes it's hard to know the difference. – Stephen Furlani Nov 11 '10 at 13:24

pre rendered graphics have practically disappeared for the HD generation of consoles, expect the trend to continue in the future unless you wouldn't mind working on smaller, xbox arcade style games.

share|improve this answer
I have no desire to work in a game that would be on a HD generation console and arcade style game is kind of what I would want to work on. – Joey Green Nov 15 '10 at 4:37

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.