Looks like it finds the offset of a certain member of a class.
As an example, say you have the following type:
Code:
typedef struct
{
int first;
float second;
char third;
} type_t;
Then this
Code:
MAKE_COOL_GAMES( type_t, third );
would expand to this
Code:
(int)(&(((type_t *)0)->third));
That line first casts 0 (zero) to a type_t*. That means you have a pointer to a hypothetical object of type type_t, and it's pointing to location 0 (you'll see why in a second).
Next, it gets the "third" member of that hypothetical object by using the arrow operator.
It takes the address of that member, which, since this object (which doesn't really exist) is at memory address 0, is actually the offset of that member from the beginning address of the object.
In this case, if int and float take 4 bytes each, the offset of "third" would probably be 8.
Finally, it casts the result to an int, probably to supress compiler warnings about using a pointer as an integer.
As for what this code is useful for, probably not much. All I can tell you is for finding the offset exactly instead of having to guess it. I know it's a standard C macro (called offsetof, not MAKE_COOL_GAMES). Perhaps someone else can tell you exactly why it's there.