cholasimmons
I usually like to start to build up with the background functionality firsts, like basic game states, saving & loading systems, basic menus. I found that way to bit easier in the long run. And it is easier to debug these when you already have build the core functionalities and you find out bugs way easier. Maybe a bit boring way to start, because at least I want to see something cool on the screen very fast, but this will pay off later.
And also remember to focus on the game play elements; even the coolest thing in your game won't mean anything if the core game play is boring. (This was also the note for myself.)