I think it depends on what you want to achieve. If you are doing this because you want to sell a game, plan it, you have to, otherwise you will end up with feature creep at the very least. If you are trying to learn something, just dive in.
I’m doing java games for fun (which to me means learning stuff) so I just dive in to the bit that I want to learn.
HTH
Endolf