In playing around with my hobby projects in various object oriented languages, I have realized that creating good class structure and program architecture is both crucial and not straightforward to effectively develop a program, in particular a game.

I am a self-taught programmer with virtually no formal training, and I've only learned the things which seemed to be of immediate practical use, so I have never really looked into things such as design patterns, software architecture, code organization principles and the like. The resources I find are often limited in scope (most commonly it's a showcase of a single pattern) and/or quite technical (all the UML going over my head doesn't help).

Is there a good resource which explains the important concepts and basics of software engineering, where I can learn about things like when and how to use Components, what kind of class structures are appropriate to what tasks, how design patterns relate to each other and which are useful for what?


closed as off-topic by Alexandre Vaillancourt Jan 25 at 2:41

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about "how to get started," "what to learn next," or "which technology to use" are discussion-oriented questions which involve answers that are either based on opinion, or which are all equally valid. Those kinds of questions are outside the scope of this site. Visit our help center for more information." – Alexandre Vaillancourt
If this question can be reworded to fit the rules in the help center, please edit the question.


If you want to program game engines or simply learn about it, pick a good book. I really recommend you 3D Game Engine Architecture and this one Game Engine Architecture

These two explain all about how a game engine is divided and are plenty of nice ideas and code snippets oriented to game programming.


Not the answer you're looking for? Browse other questions tagged or ask your own question.