I purchased these three books from Amazon about 10 months ago when I decided I wanted to make video games as a profession. After I bought these books I was shocked at how much coding experience was really needed to make a video game. At that time, I set these books aside and purchased:

It took a few months, but I completed Head First Java and learned the basics of the language. I then emptied my 401k and enrolled in a local college for computer science, where I am currently the "only guy that knows whats going on." Now I still consider myself a mega newbie because I have no real world experience. However gaming wise, I am able to create RPG Text games with all the bells and whistles. I want to move into graphics and more advanced topics because I feel it is now time to make this transition. That being said, I am picking theses books back up in hopes that they will further my knowledge and point me in the right direction as far as game programming goes. Now back to the point of this topic.

Is anyone familiar with these books? I have read a few pages of Programming Video Games for the Evil Genius and have noticed many, many, programming errors. So I put that book down and I have been wondering about my other two game programming books (books 1 and 2). My main concern, are the concepts and code they teach deprecated? I would prefer to learn "the latest and greatest." Can anyone suggest any books or material that may be worth purchasing?

My college has game programming classes, but those are 2nd and 3rd year classes. Because I decided to take the initiative on my own, 11 months ago, I am way past these beginning teachings of the college. I do plan on staying in school, but I don't want to wait on them to teach me something I feel I am ready for now. Algebra in school has been the best refresher and I know I need more math in order to be truly successful with real programming.

Furthermore, I understand becoming a programming guru, takes many many many many years of experience and practice. While I am 26 I know I may not become a successful game programmer for another 10+ years. That being said, I do know what I want to do in life and it is make video games and program entertainment for the masses. I am committed to this and will do what it takes in order to achieve this goal. Part time jobs at Mc Donalds and living in "slum" apartment complex with internet is all I need. All I want is time and practice (and women <lol). I will have it one way or another. <mini rant

Anyhow, I hoped that this thread has summed up a little about me and conveyed my questions in a way that will hopefully make the reader understand me and my intentions.

Of the the best Java programming books (on java a topic but not specific to game development) is "thinking in Java"by Bruce Eckel. you can find open source versions of it as a PDF download all over the web.

The reason i think this is one of the best books is the way it introduces concepts are very progressive and more intuitive than most.The book assumes no prior knowledge and will take you from basics to advanced topics. (warning its a decent sized book )

I've been really impressed with the Brackeen, despite its being the most out of date of the three you mentioned. Unfortunately, I don't know how to best recommend reading a book with deprecated code/tech in it. On JGO threads I've occasionally pointed to chapters/solutions in the Brackeen and left a question wondering if his approach still is the preferred. None of these has been answered yet.

I recommend taking an "Agile" approach to study where it pertains to games. Generalized computer theory IS a good thing, as well as continuing to build one's experience and knowledge with Java. But for a specific application, I say jump in with both feet and tackle the issues as they arise (and no more, unless it is really personally interesting). Similarly, the Agile discipline recommends just implementing requirements, with an eye towards refactoring as you go rather than trying to solve everything in the first pass. The same can pertain to knowledge in this field, especially given the fast-changing tech and the need to hunt down resources from so many different blogs/articles/github projects/etc.

"Head First Java" helped me at an early stage with a few concepts, but occasionally seemed to me to make things more complicated by overly breaking things down so far. My favorite general Java book is "Java Programming" by P. Sarang. The few chapters I've read from the Eckel have been very good as well.

"We all secretly believe we are right about everything and, by extension, we are all wrong." W. Storr, The Unpersuadables

Once I read a book on game programming. It told only stuff that I already knew. So I have never read another such book. I rether would buy a book about OpenGL or Java in general, because they have a broader spectrum of content to choose from.

Once I read a book on game programming. It told only stuff that I already knew. So I have never read another such book. I rether would buy a book about OpenGL or Java in general, because they have a broader spectrum of content to choose from.

Right on. The book on OpenGL is likely going to target C/C++, but if you learn Java first you should be able to read it and translate the often simplified code just fine so there is no reason to ignore that incredibly vast source of information.

C++ and Java are both C-based languages; their syntax is very similar. Where it gets complicated in C++ code is in the way the language features are used and abused, but most of the game/graphics programming books I have read stick to the basics and assume you don't know much C++ at all, so the code is really basic and readable. But I learned C/C++ long before I learned Java so I can't really guarantee that it will be true for everyone.

Push comes to shove: most good books are written with C/C++ in mind. Do you really want to miss out because of something as trivial as not knowing a programming language that is for a large part the same as a programming language you already know?

"This Evil Genius guide goes far beyond a typical programming class or text to reveal insider tips for breaking the rules and... " ~ Evil Genius description on amazon.I wouldn't recommend this book, simply because it looks like it was written for kids that want to learn to make games, not learn good Java programming skills.

I have Brackeen's book. I really like it, but it's an odd mixture. The first quarter is taken up by describing how to make a 2D side scroller using Java2D. The rest of the book is taken up with a very in-depth description of a software 3D engine (like Doom). None of this is "state of the art" but IMHO he teaches good Java style, with OOP where appropriate. It also covers some optimization techniques and there's a bit about sound and network programming. It would be completely possible to make a good 2D platformer using the code and ideas he gives. Not everything has to be OpenGL. That said, higher level OpenGL libs such as libGDX didn't exist when he wrote the book, however the techniques he describes are absolutely applicable to other libraries (things like state management and collision detection).

The 3D stuff runs very well, however it's on a Minecraft level of graphics. But then, look at how successful Minecraft is :-)

You can download the source from his website and check out the 3D engine yourself. From memory he supplies Ant build files which you can import into Eclipse, and compile and run from there.

Maybe, if I have time, I can bung WebStart versions up on a website so you can run them directly. I'd probably need to ask his permission to do this though.

"I have never done unit testing and I don’t find it a very useful concept" - Jonathan Blow

In my opinion you can't read a book and learn how to make games. You need to actually make games and get feedback about those games to improve. Reading a book is just a technical skill. You also need to be able to compile all the technical skills in a way that people like it.

In my opinion you can't read a book and learn how to make games. You need to actually make games and get feedback about those games to improve. Reading a book is just a technical skill. You also need to be able to compile all the technical skills in a way that people like it.

I know you can't read one book. I have 5 java books. Two of them teach the basics of programming and the other 3 cover video game programming and techniques. Practicing the code presented in the chapters of these books and the tutorials I find online have been a wonderful thing. I now know a lot more now then I have ever known. The more code I learn and the more techniques I learn, the more I get this "matrix vision" when I play other games. I see how they solved problems in logic which enables me to reproduce these concepts. For instance, I was playing Zelda a link to the past and when he jumps from a "high" spot to a "low" spot, I see this as: Character collides with specified tile, trigger jumping animation, move player to down a tile. Hope that makes sense. Before I started learning and reading, I had no idea some of the programming tricks that were going on. The more I learn to code and the more I play SNES games like zelda and others, the more I feel like I am figuring out problems. I assume that most all programmers who have been doing this for awhile have this ability. It's new to me and very exciting.

The real reason for the game programming books, is for a jump-start in game programming logic. While I do believe it may be a bad idea to solely rely on a game programming specific book to get you started, I don't believe that they are a bad read. As I mentioned in the first post, once I started reading these books, I knew I needed to know more about programming before I got started in those books. The introduction to books 1 and 2 state that the reader should already know the basics including, gui/graphics, threads, inheritance, polymorphism, etc.

My goal is to become a great programmer. I don't believe in shortcuts. I believe in trial and error. All big things start small. To build efficient and fast video games, you need to know more than game specific programming techniques. I think you need to be a "well rounded" and experienced.

I respect everyone on this forum and especially those who have contributed to this thread with their opinions. I do appreciate each and every one of you. I may not be a wise programmer and I am not a skilled programmer, but I believe with hard work, and constant practice, only good things will happen.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org