Jump to content
  • Advertisement
Sign in to follow this  
Narf the Mouse

Good beginning book on software design?

This topic is 2624 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

Advertisement
Game development is not special as far as software engineering is concerned. The principles that apply to (most) other types of software will carry over just fine.

I'm a big fan of "The Pragmatic Programmer" for general SE technique, although depending on your current skill level and familiarity with coding practices, there might be better options out there. "Code Complete" is pretty good too.

Share this post


Link to post
Share on other sites

Game development is not special as far as software engineering is concerned. The principles that apply to (most) other types of software will carry over just fine.

I'm a big fan of "The Pragmatic Programmer" for general SE technique, although depending on your current skill level and familiarity with coding practices, there might be better options out there. "Code Complete" is pretty good too.

I have Code Complete and Programming Language Pragmatics. The principles in the first (I have yet to reach the second) so far seem good, but lacking in the "basic examples and exercises" part. I'm a doer; I learn things by doing. Theory helps, but theory alone is a slog for me.

Share this post


Link to post
Share on other sites
Wait... "Programming Language Pragmatics" as in the Michael Scott text? If you don't like theory-heavy stuff, that's gonna knock you for a loop ;-) It's also much more about language design issues than language use issues, i.e. more interesting if you're building your own languages. Not much in there on software engineering, although it is a gold mine of info on how to think through creating a language for yourself.

Code Complete is admittedly a bit dry and theory-heavy, especially towards the end, so I totally get what you mean there.

IIRC Pragmatic Programmer has a lot of little exercises and stuff, but it's been so long since I've seen my copy that I can't say for sure. (A colleague of mine borrowed it and then I moved across the country. Go figure. I miss that book.)


Honestly, though, there's no substitute for writing code to teach you about SE principles. Just do one thing: every time you finish a project, or quit a project even, look back at what you felt was sticky or awkward about writing the code. Oftentimes even the rawest beginners will have enough gut instinct to pick up on things like code smells and bad habits, even if it's just subconsciously. The secret is to not ignore that tiny itch that says "this sucks." A lot of people will just shrug it off and assume that that's part of programming; I certainly did for many years. Where you'll really start to take off is when you take code and can share it with other programmers and say "hey, this was a pain to write or update or whatnot, what can I improve?"

Share this post


Link to post
Share on other sites

Wait... "Programming Language Pragmatics" as in the Michael Scott text? If you don't like theory-heavy stuff, that's gonna knock you for a loop ;-) It's also much more about language design issues than language use issues, i.e. more interesting if you're building your own languages. Not much in there on software engineering, although it is a gold mine of info on how to think through creating a language for yourself.

Code Complete is admittedly a bit dry and theory-heavy, especially towards the end, so I totally get what you mean there.

IIRC Pragmatic Programmer has a lot of little exercises and stuff, but it's been so long since I've seen my copy that I can't say for sure. (A colleague of mine borrowed it and then I moved across the country. Go figure. I miss that book.)


Honestly, though, there's no substitute for writing code to teach you about SE principles. Just do one thing: every time you finish a project, or quit a project even, look back at what you felt was sticky or awkward about writing the code. Oftentimes even the rawest beginners will have enough gut instinct to pick up on things like code smells and bad habits, even if it's just subconsciously. The secret is to not ignore that tiny itch that says "this sucks." A lot of people will just shrug it off and assume that that's part of programming; I certainly did for many years. Where you'll really start to take off is when you take code and can share it with other programmers and say "hey, this was a pain to write or update or whatnot, what can I improve?"

Thanks. Always more to learn. :)

Share this post


Link to post
Share on other sites
The resources that I use all of the time are:

1) Data Structures: A Pseudocode Approach with C++ By: Richard F, Gilberg and Behrouz A. Forouzan - This is a textbook, but it is a gold mine for popular data structures, such as linked lists, trees, stacks, queues, etc...

2) Programming Game AI by Example By: Mat Bucklan - This book is the go-to source for game AI for pretty much everyone on the forums. The author does an amazing job at explaining the algorithms involved, sch as A* pathfinding, fuzzy logic, FSMs, etc... Example source is also provided for those who are visual learners.

3) Game Engine Design and Implementation By: Alan Thorn - Great crash course on simple engine design. Author is easily understood and provides even easier to understand code examples, stepping through them almost line for line.

4) 3D Game Engine Architecture By: David H. Eberl - While not really for the feignt of heart, this book can be thought of as an extension to #3. Understanding the theory and even the code requires a solid understanding of C++, advanced mathematics, and, if you really wanna dig into it, assembly language/SSE.

5) OpenGL SuperBible By: Richard S. Wright Jr., Benjamin Lipchak, and Nicholas Haemel - Siply the best book on OpenGL out there.

Some other good beginners' books include:

1) Beginning DirectX 11 Game Programming By: Allen Sherrod and Wendy Jones

2) Physics for Game Programmers By: Grant Palmer

3) and while a little out dated, still a great crash course on game dev, OpenGL Game Programming By: Kevin Hawkins and Dave Astle (recognize any of those names? :P)


Oh, and I almost forgot to mention the gold mine that is the Game programming Gems series.

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.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!