After Java

The days of client side Java are clearly drawing to an end (if they weren’t already there).

What are all of your next-step plans?

I’m focusing on ultra-light dumb-clients for my games, that can easily be rewritten in flash/html5/iphoneOS/whatever. I plan on sticking with Java on the server-side.

If IE9 supports HTML5 Canvas I’m switching to it.

If Quake 2 can be ported to JavaScript using GWT, I figure I can continue to write in Java or Scala.

JavaScript VMs are getting a lot faster. Not as fast at HotSpot, though (HotSpot really is an awesome technology and it will be hard for any company to catch up with it). But it’s decent. For most 2D browser games, it will make no sense to continue using Java if HTML5 Canvas is on every browser.

I really like the JavaFX language, but it’s not taking off. The latest demos still crash or freeze my browser, it’s never going to run on iDevices, the coolest Java handsets run Android, and some new TVs are going to run Android. Does JavaFX currently run on any devices? Does Sun/Oracle not have the proper connections anymore?

As for downloadable desktop games, as everyone has already said, it would be nice to be able to have a clear, legal way for indies to distribute HotSpot with their games (unless there currently is a way and I didn’t know - I haven’t been on the board in a while)

Now that Oracle has acquired Java it would be time to step it up a notch?

I generally think Java is too heavy to be used for browser-based applications (Applets, JavaFX). It won’t replace Flash nor JavaScript. The focus instead should lie on standalone applications/webstart instead. That’s what makes the language great! We got:

  • Windows
  • Macintosh
  • Linux
  • UNIX
  • Android (except Swing)

I propose to put more efforts into the following:

  • J2SE /w Swing for Android
  • XBox
  • Playstation
  • Wii

Yes, I agree!

You have a point with the Applet/Flash thing… ive been trying to escape the embedded window from the beginning, never really liked having to play in a constrained area. Much more like having fullscreen access at hand. Since OpenGL and Java are widely dispersed, I do wish they would remain coupled and advanced to the console areas. Lwjgl seems pretty good though just started messing with it.
C++ remains the breadwinner at the moment for me. Not sure what other major focus Java really has, I have a feeling game developers represent a fairly small percentage of total Java software development.
But trying to beat Flash seems kind of hopeless, it is so well entrenched. hmm opera is running applets better these days

Webstart, OpenGL, for game developers, seconded.

I’d quite like to see some more AOT cross compiler work in the Gnu toolchain so I get get Java stuff running reliably on just about any damn platform ever. Like iPad for example.

Cas :slight_smile:

Anyone tried C# with Silverlight?

Here’s an idea! How about creating a Java Version specifically designed for game developers. Although I develop with Swing, I can do without if there is good replacement.

Call it JGE (Java Game Edition):

Core Technology:

  • Core libararies: java.lang, java.util, java.io… (ditto JSE but no AWT, no Swing, no SQL…)
  • java.net + java.nio for Networking
  • Open GL
  • GUI library similar to Swing to support buttons etc.

Target Platforms:

  • Desktop: Windows, Macintosh, Linux, UNIX
  • Mobile: Android, … (should be easy?)
  • Consoles: XBox, Playstation, Wii

Obviously Oracle would need to push it. Providing support for all consoles might not be possible (companies might not agree). However at least one should be doable?

Why Sun/Oracle/… must always push it? If you want something you need to work on it, not just wait (forever) for someone else to do it… Sure certain things can be done easier with big company, but the goals can be achieved by different means. For example we (community) can create nice plugin from scratch, it’s not that difficult. The real problem is in penetration. You need killer apps for that, that people really want, if people really want something they will install anything, it’s just few clicks away anyway. The problem is the same whether you’re small or big company. Big company can invest huge amount of resources (developers and money). Small companies can unite. There’s always a way.

You might think that consoles are unreachable for small companies, so having JRE would be helping. It wouldn’t help actually that much, if you don’t have resources (developers and money) for acquiring devkit and license and go through verification process, you won’t be able to publish anything anyway :slight_smile:

Speaking of a real work, I work on JBullet to provide full blown physics library and PureSwing as continuation of development of original Swing with things done right. LWJGL community folks are toying with virtual machines and/or creating a game-oriented plugin. There are several options when it comes to creating JVM, we can use parts of OpenJDK, Apache Harmony, gcj + classpath, or roll our own JVM or AOT compiler using eg. LLVM (that’s what I’m experimenting with in my free time, the AOT compiler).

We could mess with AOT compilers, console support, custom game oriented JVMs and hope that Oracle will do more to push Java for home client side applications (bearing in mind their entire business is in the enterprise domain). You could do that, or you could switch to an environment which already does all of this and more. That is what I intend to do over the next few months as I will be switching to using C# and XNA. This is my after Java.

XNA has a bigger game development community, is actively pushed for game development by a large company, is under active development, is pushed for commercial game development, is available for PC/console/mobile platforms and has a growing indie game market place already setup. The only thing Java has over XNA is applets (XNA is only partially supported in Silverlight thanks to third party libs), but I’d happily trade them in for any of the above (I’m sick of all the applet and version compatability issues of Java).

Flash is still dominant for browser games, is spreading to more platforms and is being improved on every release. This is dispite people saying it will be killed off by the rise of HTML 5 + WebGL. A good alternative to Flash. Over the last 5 years it seems Java is still Java. All of the issues it had, no good support for videos and music, most examples of Java applets still look really poor, 3D graphics is still just bolted on and not included or standardised in the JVM and the examples of truly awesome Java apps are still entirely server side. The only memorable event I can remember is that Java 2D, on Windows, doubled in speed.

Note this is just my opinion, I’m not saying everyone else should follow and drop Java for games.

That’s good pragmatic approach, but with one big downside: you’ll lock yourself into Microsoft only world. For indies, it has been discovered that support for other platforms (Mac and Linux) is surprisingly benefical to sales and other things despite much lower number of users compared to Windows. Good article about this: http://blog.wolfire.com/2008/12/why-you-should-support-mac-os-x-and-linux/

You’re not allowed to do that. The source language has to be either C, C++, Objective C or Javascript. Anything else is prohibited, no matter how much to recompile it to other languages inbetween.

Hm. Well, at least I’d have PS3 and XBox potentially.

We have 90% of what’s needed to make a brand new open sourced plugin that addresses the whole applet problem apart from 1 small thing (“installed base”). The cut down VM I’ve already done and done well - under 2.5mb compressed - and with LWJGL on top of it it’s about 3mb payload. There’s just the NSAPI plugin bit to do and installation gubbins.

Using OpenJDK, natch. The whole thing can be GPL2’ed with Classpath exception and that’d suit everybody down to the ground.

Cas :slight_smile:

This sounds excellent and does solve the size issue with Java desktop deployment. But the skeptic in me can’t help thinking this (or an equivalent) should be provided already.

Cross-platform Java support is far from perfect. I’m usually scared to show Mac users the demo’s on my site because I’ve had the same work perfectly on one machine whilst they and crash Safari on another.

I’ve easily had less trouble with Mac than any other platform.

Cas :slight_smile:

Those numbers also match Jeff Vogel’s (Spiderweb, Geneforge) sales:

So cross-platform seems to be good for indies.

Keep in mind that the reason why games sell better on the Mac side is because there are generally fewer available. Apple has put together resources for developers to freely advertise their games for the platform, and people are hungry to buy. However, now with Apple “slacking off” on their side, and with Steam coming to the Mac in just a few weeks time, I’m curious how that advantage is going to hold up.

There still won’t be very many steam games. At first, it’ll just be the Valve games.
Other games (except for the dosbox ones and the flash ones) will require a lot of manual work to port, and the Direct3d ones probably won’t get ported like ever.

It would good to know the progress with java store. No update in multiple months. It seems to be dead, for now. If it’s not dead then that might be an interesting opportunity for java games on the desktop.

Lots of 3D games are built on top of middlewear which abstracts them away from the graphics allowing it to be run using Direct3D or OpenGL for rendering. Even for those that don’t, there are some small game development houses that specialise in porting other companies Windows games to Mac and Linux.

I believe EA have also been porting their backlog of games to the Mac for a year or two, or are at least very interested in doing it. I think it’s big publishers like them who will have the biggest impact.