Getting things started
I've been procrastinating on starting my game for some weeks now. I have made one feeble attempt at just hacking it out, but found the code lacked direction. Then I decided to start designing it with UML first and found the design over-abstracted. Sure, after a few months of programming to the design I will have an engine I could use to fly a nasa space shuttle with, or make a 2D n-tris clone, or whatever, but by that point I know I would have become totally bored with the coding-of-engine aspect of things.
From a technical standpoint, where do successful indie programmers normally begin? Do you say, create a main loop, put in some stubs for the various screens in your game, then create objects as necessary? A (professional) programmer friend of mine repeatedly drummed it into me that this is bad coding practice, that I should design everything to be adaptable, 100% oop, that kind of thing.
I think I'm stuck in a catch 22 - The design phase plus creating an engine based on that design (no game-specific code until after the engine is solid) seems like the sensible, future-safe way to do it, but it kills the fun. The hacky, quick-results approach seems to satisfy my desire to see something I can play as I go along, but I know that once I start on the next game, I will probably have to re-code most of the game since everything is so specific to each project.
I don't even know why I'm posting this other than to vent my own frustration at my inability to get things moving, but if anyone here understands where I'm coming from but managed to move beyond it, your advice would be very welcome.