I know thats what everybody says but: Set up a design document.
Just write down what your game should have, how the player's character is controlled and all the stuff coming to your mind.
Basicly draft your game script-core and work on that first.
Don't just start of with modeling a beautifull character and find out you can't script later on, or you lost interest in the project or thought of something "better" (different).
So what I'm doing: Writing down the idea, how the gameplay should work, genre, story and then I use FreeMind (you can find it in the Wiki -> Free Tools -> Other Tools) to set up what my script core should have.
Like: movement, camera, weapons, interaction
All basic things.
Then I set up a project folder with some sub-folders (helps to keep your files organised) and set up a small test level in WED (yep, using the default texture).
Then comes the work:
Movement was the first I started with for my current project.
DaBro0zar's hint works, if you have a team.
If you're on your own (no right to be right/completed):
1. script the core and all "gameplay essential things"
If your game makes fun (even with dummy-models) after 1 you're almost done
2. create your ingame graphics (models, textures)
3. make as many levels as you need
4. all "make-up" scripting
5. menu (scripting + graphics)
6. publish
This list is how I would go about it, but it may change from developer to developer.
But I'm just a "young" developer, far from perfection.
![](/ubbthreads/images/graemlins/wink.gif)
EDIT:
I can also strongly advice to listen to what has already been said: Comment your code and write it in terms of "modular programming".
Set up a "Dev-Notes" file to keep you on-track what you once decide.
E.g. which skill numbers are reserved for global and which for local.
I use skill1-5 for global wed settings and 6-20 for local wed settings, then a certain range for non-wed global and non-wed local.
Create a global .wdl file for defining these global skills and all the other global stuff.
When you start developing a new part of your game, check what kind of skills you already have and how you could use them.
If you need local skills define them and don't forget to undefine (undef skillname) them, caus another .wdl file might use the same (double definition error)
When setting up a new global skill in a .wdl file mark it as global (e.g. //GLOBAL) and after finishing developing that file, move it to your global .wdl file.