They're moving to Flash, here's why...

Interesting,

http://blog.sharendipity.com/were-moving-to-flash-heres-why

Kev

Seems…um, reasonable, but late. Even here nobody seems to think Java is a viable solution for deployment to the web, especially if you’re actually basing a business on your product. Applets cause browser hangs more than they work (Pulpcore applets being one of the few exceptions, thanks for figuring all that out David!), and even as a Java developer I have never been able to get my system set up to run a significant percentage of JWS apps without having to look at the stack traces and reconfigure based on what crashed.

It’s a shame, too, because for actual coding Java is much more pleasant than AS3 due to the great tools (the language itself? Meh, I’d call it a draw), and the VM is still far superior. Too bad that the plugin has never been made to work right…

I think that Java basically works (even the old applet plugin), there is just more work and resolving many details needed to create good/reliable result… But why not create libraries/toolkits for this? Like PulpCore, if that works very nicely, then it can be done and others can reuse it.

I’ve tried the application from the blog, but didn’t have chance to test it, since I’ve got exception in log. About missing gluegen-rt in java.library.path. But that’s clearly programmer’s fault. I’m bit speculating here… but if this simple thing is wrong how many others things they get wrong in their implementation? Generally, I see many rants about Java, and many of them are clearly programmer’s faults. Java is very helpful tool, but that doesn’t mean it does everything for you.

There is also other issue or more dilemma. OpenGL applets. They’re cool and awesome. I’ve recently saw OpenGL applet using LWJGL and it was really slick experience (and it was using Slick indeed :P), worked without flaws. When there were first versions of OpenGL support in applets, it was very buggy, and didn’t looked as viable solution at all… but looking at what LWJGL folks achieved it’s really good result. Unfortunatelly when the user is really unlucky it can still crash not because of app, LWJGL or Java, but because of fault drivers and even the whole OS can freeze… I don’t know if it’s good idea to push OpenGL to applets then… plus it requires much bigger download and requires signed code which is something I’m not much comfortable with, but that’s more of minor thing when you come with something really good which shines when done in OpenGL. And that’s the dilemma :slight_smile:

I totally agree with the article (about losing about 30-50% percent of your audience), my stats show the same.

Problem is I can’t move to Flash, because I have no experience in Flash whatsoever.

I didn’t until 5 weeks ago. It’s a fun transition so far, though painful to work in compared to my beloved Java.

From my point of view I don’t care about accessibility, given my sites don’t get more than a few thousand visitors a day. The big difference so far is there are plenty of portals, ad systems and communities that can help a small games developer make at least some money from it.

Kev

I was looking at actionscript the other day with a wistful eye… It’s not so hard, check this out.

Re the 30-50% losses, is this because of java versions (ie 1.5 not running on 1.4) or because there’s no java at all? I hunted for distribution figures for java versions but no luck… :frowning:

I think that Java is a viable solution deployment to the web, I like Java Webstart very much and my game has been installed by thousands of people without any problem (except those who don’t use the Sun JVM).

[quote=“Riven,post:4,topic:32488”]
Well, that puts you about even with most of the Flash developers out there. :slight_smile:

Having seen your skill with Java, I absolutely guarantee you that within a week of coding AS3 you’d be a better Flash coder than probably 90% of the people out there making Flash games (including many of the “experts”); the coding quality in Flash-land tends to be extremely low, but the art is usually a lot better due to the artist-friendliness of the development environment - it’s very easy to find (cheap!) artists that know the tools, and to integrate their work into a game. Re: code, the calls you have to make to do things are slightly different, but they are very standardized, and there’s usually only one or two ways to do each thing. And the language itself is dead simple once you get the hang of it; for most purposes, you can design as if you’re writing Java, just with a few quirks here and there. Again, though, the IDE experience leaves a lot to be desired (as far as I can tell, the only way to go is to get the official IDE or pay for the Eclipse plugin, both of which suck compared to Eclipse/Netbeans/IntelliJ for Java), which is the main reason I somewhat dislike it, and you have to get used to performance that’s at best half of what you get out of Java, and a whole new bag of optimization tricks (a lot of micro-optimizations are still, unfortunately, critical in Flash).

IMO, the crucial difference is not that many people will come to your site and leave because you’ve got Java; it’s that your game is going to live and die on your site, and only your site. This is fine if you’ve got a healthy amount of traffic, as site-based ads tend to monetize content better than embedded ones, anyways, but if you don’t get much traffic then it doesn’t matter. Flash games get spread far and wide, and the good ones will show up on hundreds of different sites and portals, the vast majority of which won’t accept any submissions that aren’t Flash. Even if you make 1/10 the ad revenue per view, I’d guess that the viral nature of Flash games means you’ll end up making quite a bit more money in the end if your game gets popular.

The reason that sites won’t accept non-Flash stuff is probably that a) users have a lot of trouble running Java applets (system hangs, browser crashes, the dreaded omnipresent “red x”), and b) since most of the games making the rounds are Flash (partially due to a) ), there’s no point in setting up content management systems that can even support anything else. Most of these sites literally couldn’t embed Java even if they wanted to.

That’s part of the problem, though - yes, thousands is a good number for a Java Webstart game (though I will note that I can’t try TUER myself, the php file wants to save itself rather than display…maybe it’s because I’m on a Mac). However, successful Flash games are measured by the millions of hits they receive per month!!! This crucial scale difference is what determines whether you can do something only for fun versus for real money and for a living. People trying to make careers out of casual games pretty much have to stick with Flash.

For downloadable games for sale, it’s another story; people are willing to do a bit more to install something that they’ve paid for (unfortunately game sales are a bit tough to drum up in many cases, though the mobile market is looking better and better in that regard). But for casual stuff, you get one click - if the game doesn’t work right within about 15 seconds, it’ll never get another look from that person.

IMHO this represents a failure of JOGL, or native code in general, rather than Java.

Longer download, native libraries that don’t work 100% of the time, and the “Trust” dialog = loss of users.

I saw the exact same thing with another Facebook Java applet. It used native libraries, and people complained about the startup experience either being slow or not working at all. Instead of porting the native libraries to Java, the developers ported to the native code to ActionScript because the perception was that it was Java’s fault.

If your applet has the right startup experience people won’t know - or care - if it’s Java or not.

(Java penetration rates are between 85%-95%, depending on who you ask.)

Yeah, my stats say ~85% of the visitors have Java.

But that doesn’t mean the applet works! It can hang for quite a few obscure reasons.

[quote]What’s the penetration for that based on Milpa players?
[/quote]
I don’t have an exact numbers perhaps Milpa needs some sort of pinging.

Analyzing log files it hard because of robots, repeat players, etc. But, looking at the numbers, I could “guess” a minimum of 80% and probably around 85-90%. These are folks who download the assets zip, so they’re “inside” the game.

[quote]Yeah, my stats say ~85% of the visitors have Java.

But that doesn’t mean the applet works! It can hang for quite a few obscure reasons.
[/quote]
Adobe also reports 85%, and their methodology suggests they only count times when the applet works. From http://www.adobe.com/products/player_census/methodology/

[quote]The survey presents respondents with several pages, each with a graphic image in a different media file format, and asks respondents to indicate whether or not they can see each image. Depending on which images the respondent is able to see we are able to identify which version of the plug-in technologies they have installed on their computer.
[/quote]

I must admit I’ve not come across a computer in the last 3-4 years that hasn’t had at least Java 1.4 installed on it already - and I’ve fiddled with a fairly large number of them. The problem mostly it seems is that people just can’t figure out how to make applets run successfully. I’m going to have a stab at it soon with Titan Attacks and friends, which should be interesting.

Cas :slight_smile:

This is an interesting conversation. As someone who has used both Flash and Java, I have to say that they really are very different mediums at this point. Some of the games I have made in Java I realize would be better in Flash, and vise versa. If you’re going for quick easy and casual, Flash is the best bet, but anything immersive or complicated should be done in Java.

This:

is just about how I see it.

Building and distributing casual web based games can be done in Java applets, is just alot easier and quicker in Flex/Flash. If you’re trying to be productive (which is the reason most of us use Java) or trying to make a few bucks then it’s still way more effective to use.

I still believe in Java for desktop and/or more heavy weight games - as soon as the data structures get complicated or the computation gets heavy it wins out every time.

As you can imagine, it’s been a hard thing to accept for me. The hardest bit was realising that casual web games for tiny bits of cash is what I’ve been trying to do for years :slight_smile:

Kev

When TUER was only a student project, my teacher was under Macintosh; if she hadn’t been able to launch my game, I would have had a very bad mark (0/20). The php file produces a JNLP file and the MIME type is well written (so that your operating system knows that it is a JNLP file that has to be opened with javaws), you only have to open the file with Java Webstart. I have already done my best to be sure that it works fine everywhere with the JDK 1.6, lots of people have succeeded in playing with TUER under Mac. I’m sorry, that was not clear, TUER works fine under Mac OS X 10.5 software update 1 with the Apple JRE 1.6, I should have said it before. There is an equivalent link to a JNLP file here:
http://tuer.tuxfamily.org/tuer.jnlp
Some browsers automatically use Java Webstart when the MIME type is set at the beginning of the file, that is why I do it inside the php file (I’m not allowed to modify the configuration of the server, nor php.ini, httpd.conf neither mime.types):


<?php header("Content-type: application/x-java-jnlp-file");
      echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";    
?>

At least one of these methods should work. I will ask the administrator to add the following line the Apache configuration file .mime.types:

application/x-java-jnlp-file JNLP

or this in httpd.conf:

AddType application/x-java-jnlp-file .jnlp

I have put it into .htaccess but I don’t know if it works. If you’re under Safari (with an old version above all), please use MisFox to configure the association between mime types and default used applications.

Lol, 850 000 000 computers are Java-enabled ;D In France, you have to install Java if you want to pay your income tax (at least Java 1.5) and consult some information about reimbursements for your health care. Therefore, only a few people don’t have Java.

And then what? Should we all use Flash rather Java? Why is there so much defeatism here? As I already said, we have to find alternative ways to live from gaming (earning money with our games) instead of complaining we cannot do this yet, it is a more constructive approach and that is what I have tried to do with the FGF.

Aye, it’s all about the crappiness of applets really. If you’re after the ultra-casual gamer who browses by and plays a game for a minute or so during lunch you’ve got to “just work” as soon as they open the relevant web page. Applets seem to have been neglected by Sun for years (who are more interested in adding wizzy new features like drag-to-desktop rather than addressing the core reliability/usability issues).

If (like me) you’re going for the more indie/shareware people who expect to download and unzip/install something then Java makes much more sense. Flash doesn’t work here since you want good performance (and quality expectations are higher) and it’s advantage of just-working in browsers doesn’t matter any more. Similarly native code gives you the performance but makes development and crossplatform builds a right pain.

Pick your goals and market, then pick a technology that fits.

Ah, okay - that looks like it’s working now; that’s not a Java problem, to be fair, probably something related to the way Firefox is handling the MIME type, I’m not entirely sure.

I’m really not trying to be defeatist, honestly, I apologize if that’s how it came off; I’m just suggesting that in some cases deploying to Java is not the best thing to do. I think that kevglass is right on, that for games with more going on in them that don’t really fit in to the “casual” category, Java is going to provide a far better user (and developer) experience than Flash; for things that you expect people to drop in and play for just a few minutes at a stretch, or games that you want (need?) to get massive numbers of views on or pull a sponsorship for, Flash is the way to go unless you already have a site that will get you a large number of hits (that can definitely be done, but it’s a whole different problem from writing games!). It sounds like kevglass is moving more in the casual direction, and that’s also probably where I’m headed as well, though I’m also keeping a keen eye on mobile (at least we have Android!); for people doing desktop games or things that need a lot of computation or 3d, Java’s still by far the best option (if not quite the fastest).

In any case, for small games it’s a snap to port them to any language you want once you have working Java implementations (most Java concepts map pretty directly on to almost any of the other popular languages, especially if you’re careful about that stuff as you develop), so it’s probably not that big a deal anyways. :wink:

A couple things to point out:

Just because a game is on only one site doesn’t mean it can’t go viral. Digg, Reddit, StumbleUpon, and hundreds of game sites will all point to your site.

Also, just because a game is a casual game doesn’t mean it can’t use complicated code heavy computation. Sometimes the simplest ideas require complicated algorithms under the hood.

Recently i had to deal with a business application that used a very simple applet, and guess what, the applet didn’t work under Java 1.4 (it should have). It just presented a blank area. After the client upgraded to Java 1.6 the applet worked. I guess its the same situation with Java applet games. “It just doesn’t work”. No popup to upgrade to newest Java, no automatic plugin download, “It just doesn’t work”. I think that’s the biggest problem. Oh, and the security popup. And the startup time of the applet. And the user shouldn’t even know he is interacting with a Java applet.