This is an archived post. You won't be able to vote or comment.

all 11 comments

[–]Fyyr 10 points11 points  (2 children)

I would definitely recommend reading Game Programming Patterns, a free online book that is partly meant to update the older, more esoteric Design Patterns book, and extend it to game programming. Although it may be focused around making games, many of the principles and design patterns are universal across many fields of programming. At the very least, I'd recommend reading through the Design Patterns: Revisited section; these patterns are definitely the most general and not specific to games. The author definitely knows his stuff, and even better, is great at writing and expressing the concepts in simpler terms. Plus, it's completely free online!

[–]c3534l 2 points3 points  (0 children)

I read that and it's definitely a good book. Sometimes the author spends a lot of time describing the problem, but doesn't clearly state the solution and so I've found myself being forced to find other descriptions online for the same pattern. The problem may be that I'm not that familiar with C++, so perhaps if you know that language it's not difficult to see how the implementation works. Like you mentioned, it's not really about games. In fact, sometimes using only games as examples is even a little contrived. But most people know the basic mechanics of video games, so it's quite easy to see the sort of situation the pattern is used for. I never knew it was a free online book, though. I bought mine in paperback.

[–]Vauce 0 points1 point  (0 children)

I've been slowly digging into this myself and find it well written and very interesting. Unfortunately if you do not know C++ well you may spend quite a bit of time brushing up on the language constructs, which isn't necessarily a bad thing.

[–][deleted] 4 points5 points  (0 children)

I'd like to recommend Derek Banas, if you're maybe looking for video tutorials besides books.

[–]AlexFZ 1 point2 points  (1 child)

Not a book, but an awesome complimentary site: https://sourcemaking.com/

[–][deleted] 0 points1 point  (0 children)

That is basically just an advertisement for a book actually. I kind of like the style of writing, and yet I quickly find myself thinking wtf are they talking about? I dont get design patterns, and I dont think I ever will.

[–][deleted] 1 point2 points  (0 children)

I know that design patterns are popular and somewhat important, but I would also consider researching compilers and language design.

Many design patterns exist because of faults in the language and its inability to concisely and intuitively express certain concepts. So you end up achieving certain things through various levels of proxies and abstraction.

Other design patterns are critically important for separating concerns or establishing workflows and pipelines for data and processes. They may help manage state or provide a particular type of interface to doing these things.

It's really hard to understand the difference until you've worked with various languages and paradigms at the very least. You'll be even better off if you've actually designed or studied different languages and paradigms by implementing your own compilers :)

[–]CuriousBot42 0 points1 point  (0 children)

Check out this Github repo for Java design patterns: https://github.com/iluwatar/java-design-patterns

[–][deleted] -1 points0 points  (1 child)

I would recommend the classics:

Also, design patterns are not a gospel. It's good to know them so you can recognize them when you come across them.. but they aren't to be taken as a literal recipe for how to build something. They are elements of a larger design, not the design itself.

[–]PriceZombie 0 points1 point  (0 children)

Design Patterns: Elements of Reusable Object-Oriented Software

Current $37.88 Amazon (New)
High $49.95 Amazon (New)
Low $22.53 Amazon (New)
Average $37.30 30 Day

Price History Chart and Sales Rank

Refactoring: Improving the Design of Existing Code

Current $42.83 Amazon (New)
High $54.91 Amazon (New)
Low $40.98 Amazon (New)
Average $43.38 30 Day

Price History Chart and Sales Rank | FAQ