I always get so far with my game project then hit a design snag of some sort and it all falls apart. There are too many to list so I won't, I'll just say I've had > 10 false starts. I really suck at designing, which doesn't put me in a very good position if I'm working on my first game.

So I was wondering if anyone here could explain how they've laid out their games. BobMcGee123, I'm particularly interested in you since you mentioned you don't use any OOP: how have you structured everything? How have you managed to get data around and... things. I mean I start working on mine then realise I need such and such data from such and such class then start static'ing things, half of my objects end up being singletons and it quickly becomes too "spilly" to continue working.

The same things seem to happen every time no matter how I try and approach it.

I start pretty much the same way each time though. I write up a quick logging class (a singleton), well now, when I say write up I mean copy and paste from one of the last gazillion false starts. Then I move onto getting a frame. I create skeletons of classes I know I'll need, Player, Kernel, MessageReceiver, MapTile, MapManager, I think that's it. Then I fill them out with "what they need" as I realise what they need.

I don't do much on paper - I can sit there for an age with pen and paper and they won't touch. My mind just goes blank as if I've suddenly unlearned everything I knew (or thought I knew ) about OO design. I (used to) prefer manic hacking over design as everybody does when they start programming (I guess).

It's a bad habit which I'm finding frustratingly difficult to move away from, so I need inspiration. I know it's a little much to ask but even a few links to some articles on design (please nothing from gamedev, I've milked that for all it's worth) would be great.

Is there any shame in starting by using someone else's design as a base? The Enginuity articles over at gamedev are pretty good but I don't like using other peoples ideas like that. Even now as I use his Singleton base class I feel constantly... dirty.