   Where to go from here
  As with most first posts I imagine that most of the replies to this will be links to other threads where people have asked the exact same questions.  I just ask that you not be annoyed, I did look around some (At the resource thread for instance where I found the suggested projects thread and degree thread interesting.)Now here is my problem, as brilliant as I am, I can not stand school.  Spending two hour classes on something that takes me half an hour to understand is annoying (oddly enough, if I already know it I'm usually alright with just getting a refresher).  I plan on going to University to do Computer Science but don't want to wait four years (the length of the degree) in order to start programming games.Now my abilities are rather sound.  I can program in C++ (Having read a few books on the subject including Sams teach yourself in 21 days which I found horrendous.  Programming and Problem solving in C++ on the other hand was godly.)  I understand (hope I understand, rather) Object Oriented Programming (I read The Object Oriented Thought Process which was another great book).  Have poked UML 2.0 distilled but, couldn't get through it thus far as well as passages here and there from other books.  It's pretty decent for a 20 year old, right?I'm reading something about Windows Programming now (almost done) and then I'll be moving on.  But, for everything I know I'm shaky.  I could program pong, could add my own touches to it aswell, but I don't know if I can program it correctly.What I'm looking for are suggestions for books (or articles/tutorials/videos/etc) for certain topics:Game Engine ArchitectureAIGame programming styleThe first to just get a grasp on it, I don't plan on being an engine programmer just being able to handle one well, the middle is my area of interest, I can program AI my way but, I want to program it the right way and the last is the most important one.  I don't want to reinvent the wheel with everything I do, per se, so I'm looking for a book that'll stop me from doing that.And just generally any suggestions you can think of.  I'm hoping to get a job in the industry before finishing my degree, within a year would be great.I'm a decent programmer though, as I said and, with more confidence will probably be industry ready in no time.  Part of me wants a mentor, another part of me wants to learn everything on my own.  Part of me wants to program small games another part thinks it's a waste.  Part of me wants to learn all the topics I'd need (a list of those would be great, too) and another wants to learn as I go....In summary, I need direction.  As you can tell by my post, I'm sure.Count on me editing this tomorrow to clean it up :P   
Quote:It's pretty decent for a 20 year old, right? ...I'm a decent programmer though, as I said and, with more confidence will probably be industry ready in no time.From the information you provided, it dosn't seem like this from where I stand. It takes YEARS to become a decent programmer (in fact to become decent in most things). For how long have you been programming?Quote:I could program pong, could add my own touches to it aswell, but I don't know if I can program it correctly.Then you should just do it, you will learn much more from the experience then you could ever by reading a book. Programming simply is learned by experience mostly.You say you don't want to reinvent the weel, which is okay, but figuring some stuff out on your own is still a very valuable skill to have.Quote:I want to program it the right waySorry to disappoint you, there is no such thing as a "right way".^^Quote:What I'm looking for are suggestions for booksI'd certainly recommend you to get a copy of this book and/or this one. Oh, I dream of a world where every C++ programmer actually read these books...So my advice to you would be to simply keep on practising and reading and learning as much as you can and not to rely too much on your self perceived brilliance.   ;  It's kind of hard to know what to recommend, without knowing exactly what level you're at with programming. The only way you could really communicate to us how good a programmer you are would be to link to some examples.However, from your post, I get the impression that you might not be as good at programming as you think you are. You seem unsure of whether you could program even pong, and programming game engines is many orders of magnitude more difficult and time-intensive than programming pong.Programming small games most definitely isn't a waste... If you try jumping straight into programming full-blown 3d game engines, you will likely get overwhelmed. Plus, a lot of the things required for small games are scalable to larger projects. For example, the concept of a scenegraph and entities existing as nodes in the graph. I agree with DraganO, you should start out trying to implement a simple 2D pong game with a computer opponent. Then give the option to play against another player locally. Then give the option to play against another player on the internet. Then convert the game to 3D. Then allow players to hit powerups with the ball, etc. etc. etc...Even something as simple as pong is enough to get you a very basic introduction to many of the concepts you'll need to learn how to implement for a larger project, such as a game engine.   ;  I tend to have a very grandiose writing style which makes me come off as arrogant, sorry.  I do dislike the speed of college courses but they were introductory courses and I don't actually think I'm brilliant just, hopefully, off to a good start.  Thought I should clear that up.Effective C++ seems to be the book that comes up the most.  I also was thinking of the Donald E. Knuth books (The Art of Computer Programming, right?).  Would those be too advanced?  I'll be sure to pick up both books you recommended, though.Programming small games seems to be where to go, though, so I'll do that.  Thanks for the replies.  And sorry about the hint of arrogance, I add it everywhere but one cannot see me laughing at myself over the internet.