Okay, so my refactoring is going well, in fact I have now got back to a stage where I can run my app again and see a cursor... the object rendering isn't completely up and running yet, but the framework is almost all in place.
I have to say that since having started working for a company in the game development business, my learning rate has rocketed. I can say with some certainty now that I'm already a much better coder than I was. I know that I am not perfect, as I've passed the "think I know it all" stage and through into the stage where I'm aware of what I don't know.
But yeah, once upon a time, a refactoring like this would probably have taken me several weeks on and off. This time round I've done the vast majority in a little under 12 hours total. I think this is in no small part due to my current code design method. That being that I now try to approach everything I design from an end user (or end coder) perspective.
If my design for a piece of code requires a load of maintenance every time it is used (register this, initialise that, pass in this, call that function, etc)... the design is usually not good enough in my eyes. I believe that it is usually a matter of simply working out a series of logical abstractions of the classes involved and so I try never to be tempted to name a class something rather undescriptive. If I have done so, then it is a sign that I don't really understand the nature of my design, and I believe it is that which makes the design poor. All this should be aimed at providing the most simple, yet all encompassing interface possible. I suspect that as I progress, I will find that this is made easier by a data driven design (e.g. having material definitions in an external file, etc).
Anyhoo, enough rambling. I know I'm not quite good enough to be preaching yet, so take what I say with a pinch of salt :)
Anyway, design side, it's a little premature possibly, but currently I am struggling to think of a catchy name for my project.
The basic idea I've had is to have a game involving motorbikes. Specifically Motocross Bikes (or whatever you'd call them). Now place said bikes in an urban environment along with riders wielding crazy weapons Road Rash style.
I imagine the idea as being a bit of a cross of Road Rash, Tony Hawk Skating games, Burnout and Motocross Madness.
The twist to the idea is that the game would not strictly be about racing so much as it would be about using the bikes to navigate the urban environment and beat up/shoot down opposing bikers. I just think it would be really cool to ride around jumping on the roof of buildings, flying off ramps, riding up a wall at the peak of a jump to give a boost to a difficult to reach area, performing stunts whilst you're at it and chasing other players around.
You could even forget the weapons at times and have challenges just to reach a certain location and I think it would still be a fun concept.
So that is an introduction to the basic concept and explains why my avatar has now changed to a motorbike and rider icon! I now just have to turn it into a reality and flesh out some more design details (I have a great idea for the control scheme). Once I have my render engine up and running again, I'll be focusing on getting a rapid prototype out.
Anyway, here's looking forward to prototyping screenshots!