Any global/static variable in C is initialized to 0. So, output will be
0 0
For the final one, we are giving name the value 0 and printing it as string. So, this is like printing th string from address 0, which should cause undefined behaviour - can even crash and give segmentation fault.
If we move the structure definition to be inside main as shown below, then the first 2 values are garbage and 3rd one might cause access to invalid memory location depending on the garbage value pointed to by name.
#include<stdio.h>
int main(){
struct game{
int level;
int score;
struct player{
char *name;
} g2;
} g1;
printf("%d %d %s",g1.level,g1.score,g1.g2.name);
}