Quote Originally Posted by crusher
Hmm... I see. Well, I'll see if I can make my own engine based on that "illustration". Thanks pkt-zer0.
Check out ode.org, ODE is a free, open source physics SDK. I've been tampering with it a bit. Clearly not as good or advanced as Havok, but hey, it's free.

Quote Originally Posted by kohlrak
Ok... seriously... Why... do... we have to have pointers?
Pointers are what make programming possible. Let's go down to the most basic level, the CPU. There's a thing called Code Pointer, that points to next operation to execute (in the form of hexadecimal code, of course). Every time an operation is executed, the code pointer is incremented. How else would you propose to execute code, that's not input at run-time?
Pointers are the single most important thing that you need to understand, it makes things a lot easier (harder, if you don't know what you're doing). Pointers reference to data, they point to where the actual data is. What's good in that? Instead of copying 64MB of data right where it's needed, you just pass a 32bit pointer to its offset. You can access it either way.
Functions are pointers themselves, actually (pointers to the piece of code that needs to be executed).
Function pointers (not what I was talking about in the previous line, that was at assembly level) are useful for passing different methods that can be used with the same scheme. Take qsort, for example. You have to have a function that compares elements of an array, and you can pass that with a function pointer.
Pointers to single values of arrays are not neccessary at all, just really fucking useful. Try splitting a string, without copying it.