-have a rough idea in mind,
and quickly make a prototype of the game.
Dont care yet for the graphics or propper programming.
once you have a working prototype up and running,
sit back and see if you enjoy it.
You should stop putting too much work into the prototype,
if it runs and is basically fun.
(usually a single level, basic actions are enough to
see if it works)
---
Then stop here, and start with the propper development.
make a design-document
(from a simple bulletpoint collection,
to an advanced design-doc with several chapters,
depending on how serious the project is, and how big the
team is)
Make notes about how the program architecture must be,
sont forget that you need to implement much more content, art
and levels later.
Limit the amount of features, to the one that are really
contributing to the game.
Having too many features in mind, will actually hinder
you to get anything done.
Throwing out lower value-stuff and keeping high value stuff is the actual art in project management.
Programming: reprogram your game in a propper and clean approach.
Use only parts of the prototype that can be implemented
cleanly, reprogram the other parts.
The prototype should only be a visual / gameplay demo
of how the game should look and play.
Dont build up on dirty prototype code!
----
Have a short change / test cycle.
The time between changing a part and testing it should
be really small. Especially for codechanges.
---
Do a stress test for your game, by including
a big amount of dummy content (models, shaders, etc)
So you can determine what the limits for the leveldesing
should be, to keep a decent framerate.
---
Artwork: - Consistancy
much more important than high.quality artwork and models
is, to keep to a consistant style.
Even a game with ugly models looks better, if the complete game
is made in the excact same style.
opposed to a high-qualty model, in a world of
objects with totally different styles and quality.
(the same applies to leveldesign)
Look for a style that looks good, but
can be realized by you in a sufficient number of models / textures / level-designs.