   Tying it all together?
  I've been programming as a hobbyist for several years. I do fine with classes/structure/functions and writing driver programs for them. However, I seem to go brain dead when it comes to putting them together into a complete program.My biggest question is about managers. The resources I've looked at on the web have completed games and even tutorials going step by step, but they never fully explain the concept or how the managers are tied together. I can get graphics on the screen, I can get sound to work, game logic and keyboard. But how do you smash em all together so they work as a program should?I'm looking for a book or tutorial or something along these lines.thanks.   
  You seem to have some experience already so I'm not sure if my suggestions will help a lot. However, topics you might want to look into is Generic programming, Object composition, Object-oriented programming (Inheritance and polymorphism)There is a lot of patterns and technics involved in game programming, and overdoing any of them is probably going to hurt. The trick is, the way I see it, to plan carefully witch pattern or technic to apply to each problem. If you are like the rest of us you will go through quite a bit of trial and error so dont be afraid to re-think and reimplement parts of your solution if you feel that you are about to move down the wrong path. A technic called code refactoring by the way.You should probably be more speciffic to get the good answers but as a start I can mention a book called Design Patterns: Elements of Reusable Object-Oriented Software that every one who is something seems to have read (People generally don't admit that they have read it as it is getting old, and doing so has become somewhat a cliche. But they all have)The book itself is quite theoretical but you can find some down to earth examples at the bottom of that wikipedia page. I also have a couple of shortcuts that may get you startedEnginuityPolymorphic Singletons;  I think you should start making a game.You will see how to tie everything together, or at least you will have more specific questions. It doesn't matter, if your first game/program isn't perfectly structured, but you will have an insight to the stuff.So jump right into it!   ;  Design patterns seems like what I'm looking for. I haven't read much of it yet, but I'll finish it later and probably get the book just because it's an interesting read.   ;  The whole idea of creating managers is so that programming your apps/games can be easier. For example in my game engine I create a texture manager to handle loading and managing texture files loaded into my games.  I can specify to load a file, and the manager will take care of the nitty-gritty details making sure that duplicate files are not loaded, memory is allocated as needed and access to all loaded files is easy to get to.Another manager that I use is one for user config options.  This manager allows you to associate game actions (like attack, jump, move, etc) with user selected keys.  The manager lets me (in a modular fashion) write my game logic without having to worry about what key/command the player has selected to perform that action.  The last manager that I can think of that I've created was the GUI manager.  This one is a beast!  It manages all my graphical user interface assets like buttons, scroll bars, menus etc.   All of the code for these managers is viewable from my website if you are interested   