I would consider that the stages for game development go like this
Prototyping: Core mechanics
At this stage there is no game fluff. It's only testing out the basic mechanic and find out it it's fun. It's also the stage that let's you find out the hurdles of designing the mechanic. This is also the stage to try out the mechanic with friends to get an opinion on their experience. That way you can also fine tune the mechanic. Also try out multiple mechanics separately if the core idea isn't alone in the game concept.
Plan out how the core mechanic will be designed know that you know the complexities. Find simpler ways to build the core mechanic for being used in a flexible manner. Also start planning out how the fluff interacts with your game. It's a good idea to document this for reference.
Grey box the UI and Meta features
A lot of people will go from mechanic prototype and then wrap around the meta/ui and other features. This is a bad idea. Start by building up your menu's, and game design flow.
Build up your data model and data interaction
Some games require changing data. Such as persistent leveling. Level information whatever it might be. Make sure this is designed. You can go back and make changes as required.
Rebuild your core game mechanics into the the system
That old version you prototyped. Scrap it. learn from it. As your building your new one you know are integrating it into the rest of the game. You have laid down everything else. So now the actual game mechanic can be built on a solid foundation.
Integrating graphics and audio
Once all of this is in place start implementing the graphics, audio and other stuff.
At this point start having people test your game. get feed back. Make changes to improve the game. Release when done.