Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Upper Year Courses to Take?
Index -> Student Life
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Amit




PostPosted: Mon Mar 22, 2010 6:04 pm   Post subject: Upper Year Courses to Take?

copthesaint @ Sat Mar 20, 2010 11:01 pm wrote:
This book illustrates the mathematics that a game programmer would need to develop a professional-quality 3D engine. Although the book is geared toward applications in game development, many of the topics appeal to general interests in 3D graphics. It starts at a fairly basic level in areas such as vector geometry and linear algebra, and then progresses to more advanced topics in 3D game programming such as illumination, visibility determination, and collision detection. Particular attention is given to derivations of key results, ensuring that the reader is not forced to endure gaps in the theory. The book assumes a working knowledge of trigonometry and calculus, but also includes sections that review the important tools used from these disciplines, such as trigonometric identities, differential equations, and Taylor series.

http://books.google.ca/books?id=bfcLeqRUsm8C&dq=Mathematics+for+3D+Game+Programming+Computer+Graphics&printsec=frontcover&source=bn&hl=en&ei=k4ulS_HnF4WOtAPJ5dki&sa=X&oi=book_result&ct=result&resnum=4&ved=0CBQQ6AEwAw#v=onepage&q=&f=false

I thought this book was a great find for anyone wating to learn about 3D programing. Its a perfect reference for all math required in 3D and 2D games. Smile


I was looking at topics in the General Programming Section and this post by copthesaint caught my eye and got me thinking. Like probably most people in computer science, it would be a dream to end up with a job in the video game industry. But what kind of upper year courses would I need to take to have a shot at achieving this goal. I have no required math courses after second year, but I know there are some that would probably come in handy later on. Obviously I'm not looking for specific course names, just something broad like "Advanced Linear Algebra", although if you go to Waterloo and know the course code that would be very useful.
Sponsor
Sponsor
Sponsor
sponsor
jbking




PostPosted: Mon Mar 22, 2010 6:25 pm   Post subject: Re: Upper Year Courses to Take?

Here are a couple that I'd consider good picks:

CS 488 - Introduction to Computer Graphics
CS 466 - Algorithm Design and Analysis

Course it has been a few years since I was at Waterloo, so perhaps others could speak to what else would be appropriate.
Amit




PostPosted: Mon Mar 22, 2010 6:37 pm   Post subject: Re: Upper Year Courses to Take?

That's exactly the sort of thing I was looking for. Thanks.

But more than just CS courses, I'm wondering what upper year math courses would be helpful. For example, I'm requires to take the Calculus I and Calculus II courses, but Waterloo also offers a Calc 3 and 4 class. Would these be helpful or not worth the extra effort? The same goes for Linear Algebra. I'm just not sure if these courses would be a lot of theory with little application to what I'm looking for.

Also, physics. I didn't take any science courses after grade 10, so I don't even have a high school background in physics. I'm considering taking the high school equivalency and possibly a few after that. Would anyone recommend that or suggest another route?
Tony




PostPosted: Mon Mar 22, 2010 7:01 pm   Post subject: RE:Upper Year Courses to Take?

There is _a lot_ to do in the game industry, and each direction has a gradient of its own.

You could work on the graphics engines (CS 488) or draw models/textures/etc (more artsy approach).

You could work on a scripting engine (CS 444) or just write event scripts in someone else's spec.

You could build internal tools that help other developers do their job better.
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
jbking




PostPosted: Mon Mar 22, 2010 8:41 pm   Post subject: Re: Upper Year Courses to Take?

Here are a few ideas I'd toss out there:

CO 434 - Introduction to Combinatorial Designs
CO 456 - Introduction to Game Theory
CO 487 - Applied Cryptography

The first is one that I'll grant you isn't necessarily applicable to a lot of game components but sometimes it may be interesting to think about counting things to some extent. This is just a weak idea, but is something I thought I'd toss out there though I did that this course.

The second could be really useful to take with CS 486, which is about AI, which could be useful for understanding some game dynamics.

The last may be useful for understanding how things are protected and may be interesting to see how encryption is handled from a non-technical side.

Applied Math may be useful if you want to get into simulations and differential equations while Pure Math may be interesting if you want more theory than practical applications of stuff. I'm sure there are some basic statistics courses that are useful for things like probability that may be useful for some things if you want to get into some D & D like stuff,e.g. how different is a 4d4 compared to 2d8 or a 1d16 as an example.
Amit




PostPosted: Thu Mar 25, 2010 11:33 am   Post subject: Re: Upper Year Courses to Take?

Well right now I'm taking an intro Linear Algebra course. We're doing the usual basic stuff, matrices, solving systems, vector spaces. We've covered stuff like linear transformations, rotation matrices in R3 etc.

In Linear Algebra 2, the course description is "Orthogonal and unitary matrices and transformations. Orthogonal projections, Gram-Schmidt procedure, best approximations, least-squares. Determinants, eigenvalues and diagonalization, orthogonal diagonalization, singular value decomposition, applications."

I have no clue what any of that is, so I don't know if it would be useful is I'm programming say, a physical engine or graphics engine for example.

The same for the Calculus 3 course. I would learn "Calculus of functions of several variables. Limits, continuity, differentiability, the chain rule. The gradient vector and the directional derivative. Taylor's formula. Optimization problems. Mappings and the Jacobian. Multiple integrals in various co-ordinate systems" if I took that course. I can't remember where I read this, but I remember hearing something about multi-variable calculus being useful.

Basically, I'm going to be busy enough as it is in my second and third year, and I don't want to take these math courses if they won't actually be all that applicable to computer programming. Anyone with a math degree want to weight in?


EDIT: Also, while I'm pretty good with making 2-D games, I wouldn't know how to even start something in 3-D. Is that something I'll eventually be taught, or something I'll have to learn on my own?
chrisbrown




PostPosted: Thu Mar 25, 2010 12:53 pm   Post subject: RE:Upper Year Courses to Take?

My old boss (who has a math degree and decades of experience) and I (who do not) used to have lengthy discussions on this topic.

We agree that more math is never a bad thing. However, you need to be able to apply that to CS if you aspire to produce groundbreaking new code. Immerse yourself in math and relate that as much as possible to your coding.

To use your example, lots of math is the difference between a physics engine and a good physics engine.
Brightguy




PostPosted: Thu Mar 25, 2010 1:34 pm   Post subject: Re: Upper Year Courses to Take?

A good knowledge of linear algebra is pretty indispensable to a disciple of mathematics. (And incidentally Linear Algebra 2 is a required course in the math faculty.) You bet it will be useful for 3D programming, as well as further theoretical work.

As I recall, Calc 3 is calculus for scalar functions of several variables, while Calc 4 does vector functions. I don't know if I've ever personally used it for programming, but it would be good for the more science-y stuff.
Sponsor
Sponsor
Sponsor
sponsor
Display posts from previous:   
   Index -> Student Life
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 8 Posts ]
Jump to:   


Style:  
Search: