Jump to content
  • Advertisement
Sign in to follow this  
MDF

Book recommendations

This topic is 4836 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, Here's my problem. I'm a relatively inexperienced programmer and, unfortunately, a "code first, design later" kind of guy. That CAN'T be a good thing. I'm trying to write a rather complex military simulation at the moment, and have dived right into the coding with only a hazy conception of what the game engine should look like, the various classes and their interrelationships, etc. I know this approach is going to end up in much wasted effort, backtracking and general demoralization. I know the better approach is to sit down with either pen and paper or some kind of modeling software and think through the basic and intermediate design first. Can anyone recommend some good books with advice and methodologies for the design stage? I just got "Code Complete," but from a quick skim it appears oriented more toward programming, rather than design. Thanks. Marc

Share this post


Link to post
Share on other sites
Advertisement
What language are you using? If you're using C++, I suggest you read Modern C++ Design, which covers many advanced features of C++ template use. Looking at the other books advertised in it, it seems to be part of a very good series, but I haven't gotten to the other books yet.

Code Complete has been suggested to me as a good book on code-level design. I've just started it, but so far the first few things it is covering seem like common sense to me. The first few chapters might help you, though, if you don't have much experience. It does look like later chapters will be much more informative, but I don't want to skip ahead and chance missing something.

Design Patterns is a third book that has been suggested here previously. I've bought it, but haven't gotten to it yet. It covers common ways to solve common problems in elegant C++.

Share this post


Link to post
Share on other sites
I'm programming in C++ (with MS VC++ 6.0). The Alexandrescu book you linked appears to be more programming-related than design related (as is "Code Complete"). What I'm looking for is something oriented towards the design stage (although, obviously, understanding of programming concepts is necessary at the design stage as well). A book with some sound practical advice on how to analyze program requirements, use cases, program flow, class design, etc. I'm certainly going to procure "Design Patterns" one of these days, but that book appears to have a somewhat narrower focus than what I'm thinking of.

Share this post


Link to post
Share on other sites
I think you should seriously check out both the UML book and the design patterns book. The UML book will be invaluable in telling HOW to design your system, but if you are a program first, design later kind of guy then you will need some pointers on WHAT to design.

The design patterns book is so useful, there are so many things in there that will make your life easier if you build them into your design from scratch, things that you probably didn't even think about (or know were even possible!)

Best of Luck, hope everything goes to plan :P

Share this post


Link to post
Share on other sites
One thing I can suggest is that before you start designing, and long before you start coding, you should make a list of all of the things you want your program to do. That includes major and minor functionality, problems you might encounter/things you don't already know how to do, and any tool you'll need to develop. Having all of your ideas written down makes it way easier to design the software.

Share this post


Link to post
Share on other sites
Quote:
Original post by MDF
I'm programming in C++ (with MS VC++ 6.0). The Alexandrescu book you linked appears to be more programming-related than design related (as is "Code Complete"). What I'm looking for is something oriented towards the design stage (although, obviously, understanding of programming concepts is necessary at the design stage as well). A book with some sound practical advice on how to analyze program requirements, use cases, program flow, class design, etc. I'm certainly going to procure "Design Patterns" one of these days, but that book appears to have a somewhat narrower focus than what I'm thinking of.
Well, I agree they're very code oriented (as I said, they're about code design and not project design), but I think that going bottom up (you already know how to code, so next to code design then last to project design) is a good way to go because project design is really only needed for BIG projects (though of course it can be helpful for medium sized projects also) and unless you have a large team you're probably working on medium or small projects.
Since I'm following the approach I mentioned above, I don't know of any good system anaylsis and design books. Sorry.

Share this post


Link to post
Share on other sites
Thanks for the recommendations, guys. I just ordered "UML and the Unified Process," which appears to be the closest thing to what I need right now. Really, my problem is twofold right now. First, I'm generally somewhat impulsive and disorganized. Second, I'm trying to create a fairly sophisticated military simulation, and don't have a very firm conception of even the simulation "rules", let alone the software design to implement the simulation. I really just need a good practical framework with which to impose some self-discipline.

Share this post


Link to post
Share on other sites
Ian Sommerville's book "Software Engineering" is a good place to start IMHO.

I have a ruthless approach to design. I write down what I want the program to do(Requirements) and keep the whole thing as simple as possible. Ditch any features that are "fads" - you cannot write a program to do anything but what it was supposed to do. That way you keep bugs to a minimum.

Like you say, it all comes down to whipping out the pen'n'paper than launching .NET...

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!