In short: treat game development like a sport. If you want to be a pro, you have to constantly train until making a game is second nature. If you want to be an amateur, you still have to sink your weekends into it. In any case, you have to be so fanatically into it that even minor accomplishments, like making a character move on the screen or making a GUI respond to mouse clicks, give you motivation to keep going.