My questions are this:
How do you create a game, and not get bogged down in the Object Oriented design?
Experience and careful preparation. Mostly experience though. After a while you realize (almost) everything boils down to a few common patterns.
Where do people normally start? What is the best thing to code first?
[/quote]
Error reporting.
Should I first get sprites drawn on screen and get them move?
[/quote]
Depends on the game, your general approach, and how you want to/need to work. I personally don't since the hard parts of a game aren't in the rendering.
Should I first create a good program flow, which will run the different states before anything else?
[/quote]
Depends on the game, your general approach, and how you want to/need to work. Unless there's a pile of game states and that's vital to success, I wouldn't.
When creating classes, When should I stop trying to make it better?
[/quote]
When it's good enough to solve the problem you're currently facing. If you're solving some mysterious future problem, you're making a classic error.
It is useful, but I guess I am just worried that if I create my game in a certain order, I may end up with critical implementations left out until the end, meaning a refactoring of a lot of code.
[/quote]
That's why one of the big things to come out of software development methodology recently is to implement the core of your app first. Get something working ASAP, even if it's ugly, even if it's incomplete or hacked up. You can identify critical issues earlier so that they cost less to fix. Then build incrementally off your working core.