nash equilibrium public good - is this correct?
For the Nash equilibrium of any simultaneous-play game, you are looking for the point where each player is playing a best response to all other players at the same time.

So your steps to solving this game should be:


Determine player 1's best response function ($g_1$ as a function of $g_2$)
Determine player 2's best response function ($g_2$ as a function of $g_1$)
Now you have two equations with two unknowns. Solve this system of equations algebraically to get the Nash equilibrium $g_1^*$ and $g_2^*$.


So how can you get the best response functions? Take player 1 for example. Player 1 wants to set $MB_1 = MC_1$. You have $MB_1$, and $MC_1 = 4$. So set them equal to each other and solve for $g_1$ to get player 1's best response function $g_1^*$ as a function of $g_2$. Then similarly for player 2 to get $g_2^*$ as a function of $g_1$.

That's not quite all, though. In this game, the players (presumably) can't contribute negative amounts. So the real best response functions will be of the form

$$
g_1^*=
\begin{cases}
some.function.of.g_2 \text{ if } some.condition.of.g_2\\
0 \text{ otherwise}
\end{cases}
$$

So, first, try to solve your two best response functions together algebraically, assuming that both $some.condition.of.g_2$ and $some.condition.of.g_1$ hold so neither is 0. If you don't get a solution, or if that solution makes one of them negative or violates one of the $some.condition$s, then instead try setting $g_1 = 0$, find $g_2^*$, and see if that gives you a Nash equilibrium (i.e. if $g_1^*(g_2^*) = 0$). Then try setting $g_2 = 0$, find $g_1^*$, and see if that gives you a Nash.