[java] State of Java Game Development

Started by
20 comments, last by Jerry Lynn 24 years, 1 month ago
I thought that it might be interesting to start a series of discussions on the state of Java game development. I’ll throw a question out and if everyone seems interested I can continue to throw out additional topics every couple of days. If we get some good comments I will sum everything up in an article (maybe add a little additional research) and submit it to this board (might be a good way to bring some new interest to the thread). Topic one: In its current implementation what role do you see Java playing in game development? What, if any, soon-to-be-released Java related technologies will most impact this role in the future?
Advertisement
I don''t see playing any kind of major factor in mainstream gaming any time soon. Partly due to the fact that "mainstream" gaming isn''t about good games, in my opinion. It''s all about who has the biggest, fastest, most expensive technolodgy. And when push comes to shove, C is gonna beat out Java anyday because most of it is compiled into ASM. Another reason I don''t see it being a heavy-hitter is that it is very hard to learn, or so it seems. In my view, java will start to grow in gaming as more and more amatuer programmers start to make games with it, but if you can use VB and point and click your way to a fancy FPS, I don''t see it attracting a lot of new game developers.

As for the new technology comming out, it would have to be better compiler technology, and more distributions of current runtime libraries. I really don''t like applets too much, and so when i think of people making java games i think of downloaded applications that have the ability to bring along a compatible runtime. But it seems that I am in the minority and that most people who make games in java make them as applets. Which is a shame because not only do I still have to download all the code, most of the time through multiple http calls, I have to download it everytime i want to play it. I don''t think a lot of people see java as a real programming language, more as a web page add-on. Just a second ago I was talking to someone who tried to play one of my games, it doesn''t work under the MSVM and I told him that. He told me that he doesn''t know that much about java and that he only has the libraries that came with Win98. What am I to do with people who won''t download the appropriate libraries, when I am not allowed to redistribute them myself?

Whoops... seems like I''m bitching.... I think I;ll leave it, but better to stop now.
Just some comments to kick off the debate : )

I think most people would agree that Java will not be the development tool of choice for ‘traditional’ commercial games. These games usually need the most performance they can get and have budgets that make Java''s productivity enhancements unnecessary.

However, Java may play a role in game development in a couple of other areas:

- Advertisement: Disney''s web site comes to mind. They frequently make applet based games available as part of their marketing efforts.

- Customization and Mods: I have seen discussions pertaining to the use of some kind of JVM hooks for scripting mods and customizations to games. This has already been done with the Quake engine by third parties.

- Two Part Game Engines: Java based game logic executables on top of a core game engine in C or C++. This way you would get the performance benefits of C for the performance sensitive components of the game and the developer productivity benefits of Java for the non-performance critical game logic. With JIT technology this seems very feasible (the game logic gets compiled as the level loads, for example).

- Cross platform game development: Now that Linux is gaining in popularity there MAY be an actual use for cross-platform game development. Some game genres, such as turn based strategy games, don''t need cutting edge performance and could be developed in Java (taking advantage of the cross platform aspects).

- And of course, amateur developers will probably flock to Java in droves once the Java Media Framework matures…
As an aside... what libraries are you using that you cannot redistribute... All of the core JDK classes can be redistributed with the JRE or the Java 2 Plug-in, can''t they?
quote:Original post by Jerry Lynn
...
- Advertisement: Disney''s web site comes to mind. They frequently make applet based games available as part of their marketing efforts.
...


Here''s a crazy idea, demos of your new c/c++ game in java. I don''t know how it''d be for modem users, but Burning Metal 3D loaded up fairly fast on my university''s T1 connection. Now if that''s possible, I''d venture to say that you could easily load the graphics and data for your first level, without it being much of a pain for the user. Again, this is assuming that Burning Metal 3D isn''t slow to load up for modem users.
The second part of any applet--sorry Jim, but what''s the point of running a Java app like you would a regular C/C++ program, is to get the code onto the client. IMO, you''d need to take advantage of all native code that''s already on the client. Then all that would have to be downloaded would be java code that drives the game logic and the native code.
That''s what''s been crossing my mind, but I haven''t had time to think about it, yet. Opinions?

joeG
Prototyping games in Java seems plausible, particularly if you could take some of the code over into the actual development (such as the Two Part Engine idea). I have read of some amateur developers posting about doing the same thing with VB and DirectX for a game that were going to implement in C++.

So if I understand you - you are proposing having a Java applet cached or a C++ engine installed locally that could download game content dynamically from a server over the internet...

Even if the slowness of a modem connection makes this infeasible (particularly if you have to download the Java 2 Plug in or and additional library such as Java 3D) high speed connections such as ADSL or Cable modems are becoming more prevalent and should offer enough speed to make it and Applets in general a viable platform for some games (again mostly in the amateur/freeware area).

Also I believe that the Java 2 Plug in has applet caching.

Here is a thought: how about Java based mobile agent technology (such as the Voyager ORB from ObjectSpace). Bot games that rely on IRC seem to be poping up left and right. Something similar could be done with Java mobile agents (just more brainstorming on my part).


Edited by - Jerry Lynn on 2/3/00 3:06:03 PM
What about WildTangent''s (www.wildtangent.com) approach? They use Java (or java-script or VBScript) to talk to their "WebDriver" which is just a fancy name for their ActiveX object. All they''re really doing is wrapping "native" calls to the ActiveX object in Java classes and then those "native" functions do their thing (mostly calls to D3DRM and DSound) and return results back to the Java Runtime. It''s a good idea and experimenting with things in java-script rather than having to compile all the time is pretty nice. I don''t think I''d ever want to write a 3d engine in java-script (certainly not VBScript), but writing some of the game subsystems in java-script might be a good idea because it''s easy to patch (just hit refresh). I''ve written a multipart series of articles on how to make your own WebDriver, but no one responded to my proposal on the "Article proposals and requests" forum, so I haven''t posted it yet. If I can get just a few people to say they want to see it, I''ll go through the trouble of polishing it and submitting it to GDNet.

-Dave

Quick Question - can web drivers be written in Java (or more exactly, J++)?
Pure Java games as applications are really not very interesting - In this context, Java is just a programming language competing (on equal terms) with C and C++. The gamer couldn''t care less how the game was written - if it sucks, it sucks, nobody is going to buy an inferior game just because it was written in Java.

When used in an applet, Java is effectively doing something you can''t do in C++ - which in itself justifies the use of Java. It is a different market, open to a different type of games.

IMHO Java as a language for game logic is an obvious step. Currently most major development houses write their own scripting languages, compilers and virtual machines. Rather odd, considering the amount of resources SUN and others put into JIT and other compiler technologies. I would expect it to be rather difficult to produce something that would outperform these VMs (Unless you drive a Ferrari and your last name is Carmack )

IOW, I see two applications of Java in gaming: As a language for gamelogic and in Platform independent "no install" applet games. Directly competing against C/C++? In time maybe.

Speaking of wildtangent, there is (at least) two alternatives that kick a lot more butt:

http://www.cult3d.com

http://www.superscape.com

- similar idea, just a better implementation...

/Niels
<b>/NJ</b>
Wow, that superscape stuff is nice. I'm impressed.

-Dave



Edited by - dvm on 2/4/00 5:26:10 AM

This topic is closed to new replies.

Advertisement