Java game book audience focus

Hi all,
Dustin, Syrus and I are interested in the peeps on this forums opinions on our Java gaming book audience.

Originally, we were attempting to have a dual audience; Java programmers that want to learn game programming, and C/C++ game programmers that want to learn Java game programming.

The idea was that there is a fair amount of overlap in terms of Java specific things for either group, i.e. GC/JVM issues, JNI, and Java media APIs, specifically the Java Game Tech Groups core stuff (JOGL, JAOL, Jinput).

However, walk the dual line is “messy” enough in a enough areas that we are considering refocusing on one or the other. But we have heard arguements for both, and against either.

So what do you think? Which book would you like to see, or which do you think other would like to see published? What did you like, dislike about other game programming books you have read?
Thanks to any comments!

Last time I read anything related to game programming was FlightSim in C++ and that was really long time ago I have to admit. Would be nice if you come up with something related to games and “mention” Java at the same time.

If you intent to make a book with a focus on game programming and hope to atract any C++ guys, then it won’t happen unless there is code included in both languages. Words won’t do any good. C++ coders are well aware that is it simpler and faster to come up with code in Java but they won’t buy into believing that Java code can run comparatively as fast as that written in C++ - UNLESS - they can actually see it and run it for themselves.

my2 cents

I think that C++ game programmers have enough books to choose from.
The only reason for them to buy a Java game programming book would be to see the advantages of Java.

So I would focus on Java, trying to demonstrate how to do state of the art game programming in Java. It should show good solutions for current game development issues (3D engine, model loading, fx like lightning, shading, etc.) in Java.
You might consider comparing the “beautiful” Java solutions with ugly C++ workarounds if necessary, appropriate or even on your purpose as the book authors.

I think you can’t satisfy both groups - so please satisfy the main interest group: Java programmers that urge to see a Java game programming book using current Java VMs and packages like JOGL, JOAL, JInput or LWJGL.

“Java Game Programming For Dummies” and the other Java gaming book I can’t remember the title are both pretty much outdated. Honestly, how many new Java game programming books do you know?

Just my ad hoc brain dump.

Tommy

Hi
It really depends what problem you are trying to solve really, java programmers who don’t know how, or don’t think java is suitable for games, or C++ programmers who don’t think java is suitable for games. There are probably plenty of java developers who don’t think it’s good for games. A book for java games developers aimed at people who know java would be good, make sure it includes some nio for networking, jogl, joal, jinput and maybe touch on java3d/xith3d and stress the usefullness of scenegraphs. That sounds like a good book to me. But it would have to join the back of a list of game programming books I want and can’t afford though :slight_smile:

Endolf

Nice, this is exactly the kind of responce I was looking for. :wink:
Any counters?
I will say we are not interested in “selling” Java to a C++ programmer. The choice to use Java is assumed for this text, it to what extent we focus on game issues vs. java issues vs. game issue with Java (which was been the focus up to now) is where the shift would occur.

The code base for the book already is quite large working examples, ending in a complete 3D game/game level using JOGL, JOAL, and Jinput.

Hi
can you put some ()'s around your thingy v.s. whatsit to be more specific about what object the v.s. operator applies to in each case? :slight_smile:

Cheers

Endolf

I think the focus should be game issues with java. There are already tons of Java books and there are already books on game programming in general. The hole exists where you attempt to tie the two together.

It might make sense to touch on some issues of porting example code from general game books which focus on C/C++

[quote]Hi
can you put some ()'s around your thingy v.s. whatsit to be more specific about what object the v.s. operator applies to in each case? :slight_smile:

Cheers

Endolf
[/quote]
Sure!

"focus on
<applying game programming topics coming from C++ to Java>
vs.
"
Dose that clear it up at all?

The biggest issue I see with “Java Games for C++ prograqmmers” is that you have to assume 0 Java knowledge.
Just explaining basic java concepts is going to eat up too much of the book IMO.

Assume Java knowledge,as there are already too many books on that, and just show how to do game stuff with Java. you caqn explain that and suggest a few of your favorite “basic Java” books in the intro.

Anyway thats my suggestion.

Can I ask who you’re publishing with? I’m about to pitch a proposal for a book on “Java Game Servers” (which is a surprisingly rich topic when you get into it :)), and although I’ve got a shortlist of a few publishers who are most likely to be interested, I’ve probably missed some out (e.g. until I did some detailed research, I assumed it wasn’t even worth contacting O’Reilly at all…).

FWLIW, I’d be happy to discuss target audiences etc by private mail, although mine’s somewhat easier to define :).

I’m with thaaks on this one - there are lots of books on cutting-edge C++ games programming, almost none on even moderately modern Java game programming. All the java games writing books date from 1996 and cover java 1.1 and applets exclusively. No use to man nor beast.

Aim to Java programmers who want to write games. I think there are a lot out there who would love to but don’t think it is even possible.

I have a few more very specific questions :slight_smile: that would be of interest to a book’s focus.

  1. What “percentage” of Java programmers are actively interested in learning game programming and for what purposes (work, hobby, etc.)?

  2. If a programmer is interested in getting into the game market, should they learn C++ or Java?

  3. For existing game programmers using C++, why would they want/need to learn Java?

I have my own take on all of this, but need outside input :slight_smile:

[quote]1) What “percentage” of Java programmers are actively interested in learning game programming and for what purposes (work, hobby, etc.)?
[/quote]
I imagine that most of the java programmers who learned java while at university (or of that age range) have thought about it at some point. But mostly I imagine those who want to write games are the ones you have no social lives, like me :), looking around at work i’d say 50% of us play with writting games in our ever dwindling free time.

[quote]2) If a programmer is interested in getting into the game market, should they learn C++ or Java?
[/quote]
If they are writting a game themselves or as a small team, java, if they want to get into an existing games company then you would probably need C++, all the games companies if seen advertising (apart from the ones on these forums) all want C++.

[quote]3) For existing game programmers using C++, why would they want/need to learn Java?
[/quote]
See every article aver written on the subject of java V.S. C++. I suspect taht in terms of specically games related topis there is non, but in general terms, ie, memory management, development speed etc etc etc it’s the same as the ‘normal’ list we churn out :slight_smile:

HTH

Endolf

yeah I agree with Endolf…

except that an awful lot of game companies are stiul using C, not even C++. If you want to get a job in the exisitng industry, you better know both pretty well.

But if I were starting a garage game tomorrow I’d definitely use Java. Two primary reasons are productivity and code correctness.

(Third reason is C is yucky :slight_smile: I did it for 15 years but I can’t say I liked it.)

[quote]I have a few more very specific questions :slight_smile: that would be of interest to a book’s focus.

  1. What “percentage” of Java programmers are actively interested in learning game programming and for what purposes (work, hobby, etc.)?
    [/quote]
    I’m interested at the hobby level… I need a “real job” to support this lavish lifestyle to which I’ve become accustomed :slight_smile:

[quote]2) If a programmer is interested in getting into the game market, should they learn C++ or Java?
[/quote]
If commercially with an existing company - C/C++ would be required, at the moment. As an independant it doesn’t matter that much what language you use - knowing a language is the easy part. Knowing how to program (well) is the hard part. Smaller teams would benefit from Java and the productivity it offers, but also they will be set back because there is far less prior art to borrow from in terms of books, tutorials, game libraries etc… Of course everyone here is trying to even that up.

[quote]3) For existing game programmers using C++, why would they want/need to learn Java?
[/quote]
Sadly I think the main thing is going to be the stereotype of “Java is good for server stuff” combined with the trend toward online games. That might get them in the door. If there was a substantial non-windows game market that supported Java, like a console, then I would say portability would be a good reason. I’m not sure if Linux and Mac are enough. Though, I think the Mac market would like to see some high-end titles come out on Mac before they are old news on Windows. I still can’t find a store onther than Apple dealers that carries ANY Mac software on the shelf, for sure not games (I did spot MS Office X at one place).

I believe that a C/C++ developer working at a game company is very unlikely to pick up a Java book. Unfortunately, many C/C++ programmers believe that Java is “too slow” because they have experience with Java 1.0, if any. (And of course back then Java was slow, but that is no longer the case). In addition, people who already know a language that has proven to work for game development (C/C++), are unlikely to switch to another language that has not been proven yet (for game development). On the other hand, someone who already knows Java is highly likely to consider Java for games. Now days, many universities use Java as their first or main programming language because of the well-known advantages of Java. In addition, many universities have started to teach game development classes, which may choose Java (considering APIs such as OpenGL and OpenAL are now available). I think there are more programmers that know Java (and potentially some C) that would be interested in making games, than there are game developers (that use C) who would be interested in the book. If a developer is told to learn Java so that it can be considered for future projects, they will probably buy the book. However, how many people are in that position? Not many.

I also believe that referring to small C code segments in some chapters and assuming some basic understanding of C/C++ can be useful. I believe that when possible, both audiences should be targeted. However, when it is not possible, it’s safer to assume we are talking to Java programmers that are trying to make Java Games.

Is this “guess a number” ;)? I think the percentage of hobby game programmers is nearly the same for each programming language that is not purely intended to do game programming only.
Learning Java for game programming at work would already imply that companies use Java for game programming, right? I think this is not yet the case (except garage companies). So here I see the main reason for your book. Prove that Java is capable of doing it.

Again, if it’s a one man show or a small team looking for a language to learn, I would always suggest Java. Reasons are obvious.
But today I am afraid all “big” game developer companies use C or C++. And the boss will tell you which language to learn ;). I would suggest to learn C++ and Java. If you favor Java, try to introduce it in the company ;D.

Maybe to test if they are really “open-minded”?
Honestly, I think most people only switch a comfy environment (No, I will never say that C++ is comfy in any way!) if they are forced to or have a good reason.
The reason to switch is if the other programming language is better, has more features, better libraries, faster development cycles, a good community and so on…

So write your book, include a cool demo game (with installer and JRE/SDK) that rocks like hell and the book should describe how to build that game in X easy steps :wink:

Tommy

Hi,

you should aim your book to java programmers, which want to learn developing games in java. Don’t try to write a book for C++ programmers, they should first read a book to learn java (their are enough books available) and then read your book about developing games in java.

A book in the style of “OpenGL Game Programming” by Kevin Hawkins and Dave Astle would be great!!! ;D

ciao torsten

If I would buy a java game programming book now, I would want it to show me things that you experience after asking some question on this forum for example.
When you learn java at a university they probably dont show you how to make game animations fast in java, they dont talk about game programming at all. But you learn how to use threads and an example of what threads could be used for at my university was animation. And so we naturally think that threads are used for game programming to get different objects to move around. ( and its not, as I have heard hundreds of times here )

The thing is, threads CAN be used for animation, but who is going to tell you that theres a better way of doing things?

And maybe the book could explain how java really works, because when you hear “interpreted” you automatically think “slow”. Where I study the professors didnt explain much about how java works, and they mentioned “interpreted” a couple of times. its not like that now, is it? in the newer version, 1.4 and 1.5 ?

Something tells me that game programming knowledge in java is kind of an underground special community thing…because if you spend some time at java-gaming.org or at suns forum you always learn something new and cool that you couldnt pick up from the java docs. Maybe this book could pick up some of those things.

btw. sorry for my english.
:slight_smile:

[quote] 1) What “percentage” of Java programmers are actively interested in learning game programming and for what purposes (work, hobby, etc.)?
[/quote]
if u can get paid thats a result. also things like jogl and there games projects can be used outside of just making games. for one i made Sonys Connected Identity in Java using gl4Java. And thats used on eveything from TV adds to mobile phones in Japan. I just needed something that could draw fast and work across platform with rocking networking. Java fitted.

but hobby- well every days a hobby no? :slight_smile:

[quote] 2) If a programmer is interested in getting into the game market, should they learn C++ or Java?
[/quote]
i think u can get away with just the C/C++ part as much as the odd needed native call. i cant see why learning java cant get results needed for the present market- more of a case of theses loads more C/C++ programmers and examples then there are using Java at the moment. ATI, nVidia make all there demos in C/C++ same goes for Apple’s Demos. so i guess if u want to get more help learn C/C++. if u want a simpler life codeing when u got the hang of things do it in Java.

[quote] 3) For existing game programmers using C++, why would they want/need to learn Java?
[/quote]
Java is more powerful then C/C++ in the long run. networking works without it taking a weeks. and the big one: it will work on Mac, Windows and maybe Liunx- and the small changes and fixes needed are less work then a full port. less work means faster releace and that means more sales- more cash- nicer car!