Hacker News new | past | comments | ask | show | jobs | submit login
Linear algebra for game developers – Part 1 (2009) (wolfire.com)
177 points by maastaar on May 29, 2016 | hide | past | web | favorite | 23 comments

I'm not sure how much someone who wasn't already familiar with vectors could get out of this. This seems to be a common issue with informal lessons like this[1].

The article starts seemingly assuming you have no idea what a vector is, but after showing a few graphs opines "As you can see, a vector by itself is just a set of numbers". I don't think someone who didn't already know what a vector was and how to recognize a vector on a graph would see that. Reading the next sentence about coordinate pairs and referring back to the graph might get you somewhere I guess. It doesn't seem to know who the target audience is supposed to be.

Trying to teach people things that you use every day and have throughly internalized can be an eye-opening experience. If you're trying to teach someone how to count in other bases and discover that they never learned about exponentiation, you're not going to get away with just saying "it's repeated multiplication and the top number is how many times you do it; oh also anything to the zero power is one (except zero itself...), and also negative numbers do this... and fractional exponents do that...". They're not going to suddenly "get" exponentiation the way you do from years of experience from three minutes of offhand remarks.

[1] http://hentenaar.com/dont-learn-c-the-wrong-way (parts 3, 4, and 5 in particular have similar complaints)

Having used this series of articles to learn some concepts and as reference over the years, I can attest that this article is useful.

I think it is assumed that whomever is reading knows how to program an animation using their choice of framework/library/whatever, and that the most common method for dealing with these is pixels in a grid. So, the budding game developer (the audience), knows that a pair of numbers (x,y) are used to represent position. Indeed, most hello-world style tutorials for SDL, Allegro, GameMaker etc are concerned with getting something on the screen at a certain location.

To be fair, if you're heading into linear algebra, you should have already dealt with vectors and matrices.

But you're not heading into linear algebra. You're a gamedev, trying to learn to make games. Contrary to what most people want to believe, forcing people to learn linear algebra can be detrimental to this goal. Make it fun, then make it detailed.

When did you deal with Matrices before taking linear algebra?

uhm, Algebra in high school. That's where I first learned about matrices, dot products, and other basic matrix manipulations.

I take it back, I first encountered matrices in 8th grade and then several times in high school. Standard curriculum in the US at least (or at least where I lived).

Well there's no standard curriculum in the US, but based on my personal experience in Virginia and Maryland, matrix math in Algebra I is common.

The problem is that that's never built upon and it seems many math teachers don't have a firm grasp on why matrix math is useful, much less the ability to explain its utility to typical ninth graders.

I encountered vectors later in Physics (which was the most popular class to take as the one required science elective in my high school) and in one of the AP Calculus classes (which a large majority never take)

Matrices were revisted in Algebra II, with nothing new relative to Algebra I except that solving the matrix equations we were given required using Algebra II-level techniques on scalars. I guess a bit of spaced repetition might mean that more people remember it, but overall most students just forgot about matrices right after the test.

Interesting. From upstate NY I'm pretty sure I didn't ever see anything about matrices in algebra. We did use vectors and dot products but not matrices, though it was 15 years ago so I could be mistaken.

If you want a deeper understanding of mathematics and physics for game dev I would advice to read http://www.scratchapixel.com. It has a good entry guide which covers all the basics. As a bonus it lays the foundation for rendering the objects, explaining them in the light of the just learned 3D math. It has the structure and completeness missing in these articles to create real understanding of the matter.

A good read if you didn't follow any CG classes, or if those classes are a long time ago.

Betterexplained.com is fantastic, even after years of thinking I understand a concept, Khalid always manages to push my insight further.

In that link he mainly goes into matrices (if I recall) and to get into dot product and cross product explanations check out his section on vector calculus:


Another one for the list. Hands on introduction to a lot of basic concepts.


What a great idea! Thank you for sharing the article.

There seems to be a lot of complaining about this article being too simple. Hopefully you all noticed that this was part 1 of 4, and it gets pretty complicated and useful (to me at least) by the end. part1:http://blog.wolfire.com/2009/07/linear-algebra-for-game-deve...




curious, in what comments do you see "complaining about this article being to simple"? I see complaints that it doesn't cover the underlying basics well, but nothing that to me seems to be what you mention?

It's useful for more than just QM!


Can we find some similar tutorials that show other applications of linear algebra?

I don't think this article got it wrong but having it like a TL;DR of maths is a bad way to do it.

Just check the maths courses at gameinstitute.com.

I don't agree, this is not exactly the same as a tl;DR for maths.

IMHO, this is more a way to make people (game developers) feel mathematics intuitively.

It is somehow the same as the setosa.io approach which is all about visual explanations.

This is pretty cool.

This is why (and I know I badly explained my thought here) I refer to gameinstitute here.

You can make someone understand maths by demonstrating cases where you would actually need maths (here, gamedev) but it doesn't refrain them from going deeper and dive into details, which would achieve their understanding of mathematical concepts.

The first step is to get the global idea (and I give you the point for setosa) but even getting imaginative wouldn't permit you to fully use these concepts if you didn't apprehended deeper points on those.

It may also whet the appetite for more deliberate study of the mathematics involved. I have always been one to struggle a bit with math concepts if they are too abstract. Tie them into somthing I have real-world interest in, and it's much easier to engage and stay motivated to learn.

When I was going through undergrad engineering we were taught linear algebra in first year but didn't really have a lot of the other background for the different applications.

As a grad student, I had a friend of mine who was teaching that same linear algebra course. I provided her with a lot of materials (similar to this) to help her students better understand different aspects of the material. There's a reason why the different introductory topics are taught, but often you don't really understand the topic until you get deeper into the applied material in 3rd and 4th year.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact