6
\$\begingroup\$

I'm thinking of picking up the book called "Killer Game Programming" by Andrew Davidson, but its pretty old, now. I know Java, and I've been messing with jMonkeyEngine for a few days, but I'm curious to see if I would benefit from the 3D chapters of this book.

The book was published was in 2005. Has Java changed to the point where this book would now be obsolete, assuming it was up to date at time of publication?

\$\endgroup\$

closed as too broad by Kromster, DMGregory, Engineer, Josh May 16 '17 at 16:01

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 3
    \$\begingroup\$ It certainly isn't obsolete but Java3D is a PITA and for games it's a very poor choice. Imo the book is really nice to learn the basic concepts of game programming and that stuff but if you already know all that and your focus is 3D you'll probably be disappointed. \$\endgroup\$ – Raoul Nov 10 '10 at 9:48
  • 1
    \$\begingroup\$ @Raoul: thank you for introducing me to a new acronym. \$\endgroup\$ – Jaime Soto Nov 10 '10 at 14:20
  • 1
    \$\begingroup\$ @Gnemlock, I think I understand what you were aiming to do with this edit, but I think in this case it invalidates existing answers (since they were written years before 2015 and so don't directly address the updated framing of the question). As I understand the conventions here, we usually try to preserve aspects of questions that are relevant to existing answers, even if that means leaving some questions a bit imperfect. \$\endgroup\$ – DMGregory May 11 '17 at 4:27
  • \$\begingroup\$ @DMGregory, I had missed the updated years entirely. I'll edit this to focus on the original publication. \$\endgroup\$ – Gnemlock May 11 '17 at 4:38
4
\$\begingroup\$

A better question might be: why are there no new books on Java game programming? Java got pushed out of the in-browser experience by Flash and was never able to steal away C++ game developers in a big way. Nevertheless, Minecraft is completely fun. Both those books convey design principles that are applicable to any language or environment and the hand holding is not overbearing. Reading them will not instill any bad habits in you, so I say go for it.

\$\endgroup\$
4
\$\begingroup\$

You can actually find a number of the chapters for free at the book's website.

Java 3D was a neat API, but has since been "put on hold" in January 2008. It's not looking good, 3 years later and with no apparent progress towards starting up again. I would probably recommend looking into JMonkeyEngine or LWJGL instead (the former being closer to Java 3D, with a scene graph, while LWJGL is OpenGL in Java so it'd be more low-level).

Also it's extremely unfortunate that Java 3D is/was hosted at java.sun.com because the Oracle acquisition messed up some of the webpages. For example, many of the links at the Wikipedia article for Java 3D are now broken thanks to Oracle. So hopefully you will be able to get to all the downloads and documentation you need; but you might want to check now, before you buy the book!

Personally, I found Java 3D to be rather neat. I didn't do much with it, but I did buy this book and another about Java 3D in an attempt to learn it. It seems to be a well-made API with similar goals to Java (cross-platform - working on all machine, screen, etc. configurations).

One last note: there was one Java 3D game I knew of, called Magicosm (later renamed to Cosm). I was excited about it! But, well, you can read the story on that page. Still, archive.org has a copy of the old website which explained all the game ideas and progress of the game. So it appears that it is definitely possible to make a game in Java 3D.

\$\endgroup\$
  • 1
    \$\begingroup\$ +1 for jMonkeyEngine and LWJGL - far more suitable for games than Java 3D ever was..... \$\endgroup\$ – mikera Jul 19 '12 at 5:42
3
\$\begingroup\$

It might be a good foundation and it discusses concepts that are not often discussed in context of Java. If you follow the author's work you'll be impressed with what he has gone on to do with Java and Computer Vision (CV).

You can get some older and unpublished chapters to Killer games here. Also the code from the book is there too.

He has also gone on to do some interactive gaming with Kinect and has written a lot about it.

\$\endgroup\$
2
\$\begingroup\$

Has Java changed to the point where this book is now obsolete?

Never, apart from few changes in the JDK, it is nowhere near the word "obsolete".

IMHO, its always better if you know about the old technology and how it evolved well in hand before you start learning the new technology.

\$\endgroup\$
  • 4
    \$\begingroup\$ "IMHO, its always better if you know about the old technology and how it evolved well in hand before you start learning the new technology." Well, I'm certainly glad I didn't start learning .NET 1.1 when 2.0 was out. Anyway, with java the biggest recent change was the introduction of generics in 1.5. So if the book is older than that you won't be learning any good templates. \$\endgroup\$ – Nailer Nov 10 '10 at 9:58
  • 1
    \$\begingroup\$ What I actually meant by "learning" was not that it would make a difference if i learnt .net 1.1 before .net 2.0. What i meant was if you learnt the technology used before as compared to now. Like if i gave an example , if i had been using structure pointers to refer to a game object in an old technology, now i am using classes for referring to the same game object. So i meant this, knowing (not learning) the old things does provide you with an edge over knowing only the new things \$\endgroup\$ – Vishnu Nov 11 '10 at 4:04
-1
\$\begingroup\$

You may want to learn javascript and webgl instead. Combined with HTML5 that will allow you to develop platform-independent games for mobile and computer.

It doesn't really answer your question, but it might be better for you.

\$\endgroup\$