Or, more specifically, I was reading a chapter from within that book about planning and designing your programs BEFORE programming them. Now, I'm sure we all realize the importance of this aspect of development (despite being guilty of jumping in and building without a plan...I know I am xD)
Nonetheless, there was one analogy presented in the chapter that really stuck in my head, and I feel illustrates this issue VERY WELL.
Professional C++ said:
Suppose that you suspend your disbelief and allow the builder to proceed. A few month later you notice that the plumbing appears to run outside the house instead of inside the walls. When you query the builder about this anomaly he says, "Oh. Well, I forgot to leave space in the walls for the plumbing. I was so excited about this new drywall technology it just slipped my mind. But it works just as well outside, and functionality is the most important thing." You're starting to have your doubts about his approach, but, against you better judgement, you allow him to continue.
When you take your first tour of the completed building, you notice that the kitchen lacks a sink. The builder excuses himself by saying, "We were already two-thirds done with the kitchen by the time we realized there wasn't space for the sink. Instead of starting over we just added a separate sink room next door. It works, right?
The book goes on to relate this to programming design, however, I feel that this analogy can be applied/related to ANY type of development, especially games.
Games, have a lot of aspects (story, characters, gameplay, graphics, sound, programming, etc.) that all not only need a solid design, but also need a way to work together - these aspects, brought together as one unifying system, is what really makes a game.
With that said, I personally believe each of those aspects need equal attention in planning/designing, then require additional design plans on how they will all fit together, which is why you see commercial game development teams having teams for each individual aspect -- it's important. Unfortunately though, with amateur/indie/hobbyist game developers (like most of us) it is, for the most part, extremely difficult to acquire vast teams. And as a result (as I see, and have seen in the past) it seems that we usually decide which areas to plan, and which to just ad-lib (maybe not, but I know I've done it A LOT, and interestingly enough...all those past games never saw any kind of release).
Now, I *try* to plan as much as I can before jumping into ANYTHING. For me, I find starting at the most abstract/conceptual level (what I want to do, usually just a nice overview of the entire game/system) and then breaking it down into smaller, more detailed chunks, continuously until I get to the most primitive level of the game/projects functions/requirements. I feel this is a really good method for me, to allow me to play with ideas and leave a lot of room for expansion.
Now, maybe this isn't the best method. And it may not be -- for you. So, I would like to leave you with a few questions:
Do you spend a lot of time planning/designing before you build?
Which aspects do you find you give the most attention to when designing?
I'd love to hear your thoughts on this, and I'd also love for you to share any tips/advice you have on planning -- or even your methodologies. I'm a problem solver at heart, and sometimes the best way to solve a problem is to see it from different angles. So, tell me, what do you think about planning/design?












