   New to game programming, Looking for guidance
  Hello GameDev,    Before I ask my question I'll begin with a bit of background. I'm a junior in college and a computer science major. the Languages I've learned consist of Java, Scheme, and Ada. I feel I am best versed in Java, but I have always had a desire to learn C++.    Anyway, game design has long been an interest of mine and I've done a few very small projects in Java. After reading a lot the past few days I've become very interested in beginning with a tetris type game and then moving on from there, I feel I understand the benefits from starting small which are represented in some of the articles I've read on this site.    Now my main question has become about which books to choose. I feel like I've exhausted the lists of game programming books, reading reviews and descriptions, and I'm having trouble deciding. The beginners list on this site is helpful, but I feel it may be a bit outdated. I think my chosen path will most likely be C++ but I am unsure from there (unsure about APIs DirectX etc.). I plan to learn C++ prior to designing games, but I am interested in peoples suggestions on where to begin. I was thinking maybe a book about programming games with C++ and DirectX, but honestly I have no clue.    Lastly, I am sorry if this topic has been covered multiple times. I read through a lot looking for some direction, but in the end I felt this could be my biggest help. Any suggestions, or even personal experiences would be extremely appreciated. Thank you!   
  C++ and DirectX?Frank D. LunaIntroduction to 3D Game Programming with DirectX 9.0c: A Shader ApproachThere is also a DirectX 10 version of this book.   ;  Thanks for the quick reply! I guess when I said C++ and DirectX I was mainly referring to what I felt seemed to be the most suggested path when starting game programming, is this true?Also, this book looks great and the reviews are mainly very positive. Would you suggest beginning with 3D though? I guess I thought it might be simpler to begin with 2D and slowly work my way into 3D. Again thank you for your help!   ;  You (of course) have many different options.There's the road I took:Spent years studying before even attempting a simple game.  Most of this studying involved C++.  Am I happy about my choice?  Mostly...  I feel I got a lot of the hard learning out of the way, and created a good knowledge foundation for myself, though I wish I had gotten more experience along the way as well (finally got this after my 'study period', though I still do a lot of studying currently -- it's good for you).Or there's the road I'd take if I were to do it again:I'd make a 'simple game' (your tetris idea would do fine) using a 'simple language' (something like Python perhaps), with some 'simple-to-use libraries' to handle the lower-level stuff for you (maybe PyGame, though I don't have experience with it).  This will give you a nice perspective: you'll learn all the little details you need to concern yourself with when making a game and more importantly how long everything takes (it's usually always much more time than initially imagined -- you'll learn the importance of development efficiency and why choosing good libraries [rather than doing everything yourself] is so useful).  And in the meantime I'd be studying C++, OpenGL, and other deep topics on the side.   ;  I agree with Gamer Gamester that you should start with a simple Game.But you do not need to learn any intermediate Languages, since you already know how to program in Java. Go straight to C++.C++ can be used by a beginner in a simple way, like plain C.I would start with a Text Based Game in C++ and Win32. An RPG or Sports Management. Then a 2D graphical Game, with either SDL or still Win32.Then you can jump to DirectX. The Frank D. Luna at the moment will just be a bed read. It's a good Book to have even if you are not going to try the Code now.What type of game you want to create ultimately?   ;  Thank you Gamer Gamester, I think I know what you mean by getting down the basics. I guess I never thought of C++ as being so expansive and difficult to learn compared to other languages like Java. So you don't think I could start small in a similar way with C++? Also, do you have any suggestions as far as guides or books to get started with this. Thank you for your help and for sharing your experience, reading that helped.;  Thank you Hiigara, that does sound like a great start. This narrows it down a lot for me and I think it will be much easier for me to choose a book and get myself going.  I guess my only remaining question is if you have any suggestions on which book or where to begin with this? Thanks again Hiigara! I think I'm figuring out where to get started.   ;  You can certainly use C++ to make a simple game.  But along with it you'll want to use a good library like SDL or SFML to handle most of the 'dirty work'.  Since this first game is simple, and your library handles all the low-level stuff, you'll mostly be handling game logic.  That's the thing: a scripting language (like Python or Lua)is often better suited for the game logic (high-level) stuff anyway.If you've programmed in Java you could probably pick up Python quickly and be making your first game tomorrow.  Check out this neat little tutorial.I don't think C++ is really as hard as so many people say.  But Python is going to be more efficient in terms of development-time.  The idea is to complete your simple game as quickly as possible.  You want to learn all the little lessons that come from completing a game, lessons that are independent of which language you use.   ;  While I dont agree with all of it... the book "Code Complete" is well worth reading.;  Thanks Gamer Gamester, I see your point and that tutorial looks like a great place to start. The second I get some spare time(next week is finals, and I've got programming projects that have to be done then.... sigh)I'm going to dig right into that.Also, Thanks Brain, that book has a lot of good reviews and sounds interesting. I might have to get my hands on it.   