Indies and Java

I’ve been following Cas’s progress with Alien Flux for some time now (great work, btw :)), hoping to use him as a sort of benchmark. I love Java in my day job, developing web apps (well, love all of it minus EJB, grrr) and would very much like to use it for games. I’m taking the plunge Real Soon Now and starting up an LLC to get into the Indie thing for real, and it is decision time.

Well, actually, I’ve already made my decision and will not be going the Java route just yet. At least, not for anything I plan to sell. The only thing that is keeping me from it is distribution. Yes, I know of Jet, I know of WebStart. Neither of them is the optimal method, IMO. I just can’t feel secure that the average “What’s a Java?” Joe will be able to get my Java game actually started - either from lack of knowledge or lack of desire to download the JRE + the required extensions (JOGL/LWGL, or whatever). I’m not bashing, and I’m not throwing Java out the door. I love it too much. I’ll still be working with it at my day job (until I quit next month), and I hope to do some experimental freeware with it when I find the time. If only I could go the boxed CD route right now, Java would be my baby.

I’m wondering how others feel on this issue at the moment. I see several here who are doing, apparently, hobbyist-type stuff as I have been. I know Cas went the Jet route with Alien Flux, and I’ve seen Tribal Trouble recently - not sure how they are planning to handle distro. Anyone else considering the move to real Indie work with Java, and if so, how are you planning to distribute?

I intend to reevaluate when I get my first project out the door (fingers-crossed). Just like to see some opinions on the current state of things.

I think that in a perfect world there isn’t anything easier than running av Java Webstart app. But in reality it seems to have some issues, especially on non windows platforms, and a lot of people doesn’t have a recent JVM version installed.

Hopefully Webstart will will become more and more reliable for every Java release. As of the “already installed JVM userbase” I think the best way to increase that is to release a lot of cool games. Remember that every developer who makes a game that seems so interesting that a person takes the time to install a JVM to play it, adds yet another person to the JVM userbase which the whole community benefits from. Anyway, I think you should go with Java Webstart as you might have noticed :smiley:

There are ways around this…

Cas :slight_smile:

[quote]Anyone else considering the move to real Indie work with Java, and if so, how are you planning to distribute?
[/quote]
I actually haven’t decided yet.
Going for the ‘JET route’ is easiest for the windows uses at the moment, but requires more work from me (ditching AWT code and write my own substitutes :-/).
IMHO, Java WebStart will be the best and neatest way to distribute. At the moment the lack of availability of a current JRE on most desktops is a problem but I’m having my hopes up that this will change (Sun is actively working on it).
Going for JET for me is just a temporary workaround and not the preferred way of distributing.

Erik

Jet is more than just a compiler by the way. It’s a complete JVM in it’s own right and has advantages in its own right too.

I’m just … not using it currently because of some problems.

Cas :slight_smile:

Yes, but it has disadvantages too :slight_smile:
I mean isn’t this JVM compiled with your program? That means you’re distributing a JVM with every .exe you release doesn’t it? Compared to the ‘perfect world where everybody got a recent jre + jws installed’, this is quite some overhead.
And of course it sacrifices portability, so you’ll probably have to distribute and maintain an addition bytecode distribution as well.

Erik

[quote]The only thing that is keeping me from it is distribution. Yes, I know of Jet, I know of WebStart. Neither of them is the optimal method, IMO.
[/quote]
FWLIW, I’d avoid JWS completely, probably at least until 1.5.x becomes stable. JWS has too many non-obvious problems that cannot be fixed by your code - they are bugs that end users have to work around, and you have the chicken/egg problem of “if they can’t run my program, how do they get the instructions to tell them how to kick JWS enough that it will run my program?”. If they’ve closed the webpage they downloaded from, they may not be able to go to your website any more (happens often).

OTOH, given how extremely difficult it is to get a single release out there, and to do all the marketing, promotion, re-design (based on the first month or two of feedback/sales/etc), support, etc…I would actually just release JAR files at first. See what happens. If it goes badly, get some feedback from your website visitors (use session-tracking HTTP log analyzers to see if a large percentage of people download the game but never play - this would suggest the requirement of a JVM was a problem). Equally, using similar techniques, you can track fairly easily whether your typical customer actually doesn’t have problems with jvm etc.

And if the evidence looks bad, release a JET version. Etc. Coincidentally, this advice is similar to the optimization process :slight_smile: - unintentionally (i.e. this is based on business experience, not developer methodologies).

I dunno, never had any real problems with jws on any machine I’ve tried (5 or 6).
Sometimes an update of a new version doesn’t start immediately but the 2nd time after you uploaded a changed jar. Nothing serious.

Erik

I should also point out with regard to users understanding “what Java is” that the Java technology logo has an 84% brand recognition in the consumer market…as a technology, not coffee. People may not completely understand why they need “Java” but understand that they just do. PC vendors understand this too…(wink)

-ChrisM

Has anyone seen http://www.puzzlepirates.com/? I heard about them a while ago on the MUD-DEV list, and knew they were using Java. I just checked their FAQ and they include the JRE in the client download. It seems to work for them.

Then again, this is quite a different model from the shareware approach. Encouraging nonetheless ;D

Actually I was already asked by several hardcore gamers and one casual female(!) gamer for more small and cute webstart games. I was kinda surprised that they already had Java installed and I was even more surprised that webstart worked for em :slight_smile:

So… yes, I agree with Chris. Players get used to it. Some of 'em already know enough about that topic and they get more each day.

I think we just need some more (free) “guerrilla applications” (wow a new buzzword ;D) [~a more subtle approach than a so called “killer application”]

Does 9mb count as “small” any more?

Cas :slight_smile:

Well Cas, I think 9mb is small to reasonable :slight_smile:

-ChrisM

P.S. Lets catch up this coming week.

[quote]Java WebStart will be the best and neatest way to distribute.
[/quote]
This and all belief in JWS is predicated on the belief that Mr. Joanne Average user has a broadband connection. Sure its not required, but its unbearable to use without (for large downloads at least). (EDIT 2 megs is large on dialup!) I don’t know any stats but I’m sure at least 75% of internet users are still on dialup. Not to mention what that implies about the same person downloading the latest JRE.

Of course this observation does not apply if you cop the elitest attitude ‘If joe blow doensn’t even HAVE broadband then he doesn’t deserve to play MY game!!!’

I plan to use Java for toy games on the website and use c++/SDL for the real meat.

I somewhat disagree with your assessment. Everyone playing WildTangent’s games are not on broadband. Everyone playing EA’s premiere games are not on broadband. Everyone downloading the ton of content from PopCap are not on broadband. Everyone (you get the picture).

I really believe that the emergence of P2P services over the last 4 years has gone a long way to easing the download pain of the average internet media user. YES there will be those on dialup that can’t wait for the game to DL (and there are some on broadband that can’t stand to wait either) but as the world moves towards broadband everywhere, this will continue to diminish.

Just look at real world examples of the lengthe that people will go through to get access to content. 2 1/2 million people waited outside of electronics stors for up to 3 DAYS for the chance to buy a PS2 when everyone knew that there were only going to be 500k available at launch in the US. Entertainment content does WACKY things to consumers.

-ChrisM

One more example. Look at SonicBlue. I can send a TV show I recorded to you, over broadband, if you have a SonicBlue player as well. It takes 8+hours for a 1 hour show to be sent. Just because you have broadband dosen’t mean content delivery will be fast. Likewise, if the content is good enough and desireable enough, people will wait.

I really don’t see any connection between having to be on broadband and JWS.
JWS actually helps cutting down download times. When I upload a patch or a new version, only the changed parts are downloaded instead of the whole thing. In my case that’s often something like a 80kb d/l for a new version instead of like 3Mb. And that really counts since I’m on dial-up too.

Erik

Quick note for anyone who’s not used dialup in a while: for single downloads (e.g. for any particular game) the big big big problem with dialup doesn’t tend to be the speed, it’s the fact you get disconnected too easily, and on most ISP’s automatically every 1-2 hours. (nb: I recently spotted an ad for an ISP that is now offering to charge you extra per month for the priviledge of extending that to 6 hours between disconnects. Clever idea)

OTOH, the speed becomes the dominant issue whenever you have to repeatedly download things for one particular game. E.g. I gave up playing Blizzard games over dialup not because the games sucked over dialup but because the “compulsory” patches came frequently enuogh to annoy the crap out of me - and they were BADLY written, so that if you got most of the way through, and lost your connection BAM! Start again; do not pass go. The same applies for JWS games - if the patch is small each time, they work great on dialup. If any of the bits being patched tend to be large on a frequent basis and/or cannot be resumed from previous point, then JWS sucks on dialup (n.b.: I’m not sure if JWS resumes partially complete files?).

As far as many dialup users are concerned, fancy downloading systems suck largely because the vast majority of people who roll their own are lazy gits and don’t implement resumable downloads (blizzard, for instance; that was inexcusable). It’s stupid, and it just shows yet another reason why you shouldn’t re-invent the wheel - you probably won’t get it right. dialup users have downloaders already - heck, on my laptop I’ve even got a great one for linux (better than all the windows ones put together!), as well as three for windows.

So, it makes me tear my hair out if I can’t get at some content on-the-road because the connection keeps dying, and the idiot who is offering (whatever it is I’m trying to download) has put it in a feature-poor custom downloader :(.

And for the love of when are you going to get the auto-updating JVM onto magazine coverdisks!!! It needs a year long campaign to get the JVM out there onto coverdisks of all the major magazines, preferably along with some compelling mainstream content (ie. Yet Another FPS or RTS I suppose).

In fact the JVM needs to be given out on CDs at every possible opportunity! Get it on AOL’s install. Get it in a non-computer sunday glossy. Get it at Starbucks as a free coaster (haha!). Get it everywhere. Guerilla marketing.

Cas :slight_smile:

[quote]And for the love of when are you going to get the auto-updating JVM onto magazine coverdisks!!! It needs a year long campaign to get the JVM out there onto coverdisks of all the major magazines, preferably along with some compelling mainstream content (ie. Yet Another FPS or RTS I suppose).

In fact the JVM needs to be given out on CDs at every possible opportunity! Get it on AOL’s install. Get it in a non-computer sunday glossy. Get it at Starbucks as a free coaster (haha!). Get it everywhere. Guerilla marketing.

Cas :slight_smile:
[/quote]
I agree that cover disks and the like are a great idea, one that we have discussed internally. However, the cost of doing this is UNBELIEVABLE. Anyone want to hazzard a guess as to how much money AOL has spent doing this? I have a figure, but want to see what other people think it is :slight_smile:

-ChrisM

[quote]I agree that cover disks and the like are a great idea, one that we have discussed internally. However, the cost of doing this is UNBELIEVABLE. Anyone want to hazzard a guess as to how much money AOL has spent doing this? I have a figure, but want to see what other people think it is
[/quote]
Excuse my ignorance, but are you talking about having the JVM on an existing coverdisk, or creating and spreading new disks?
I can imagine the latter will cost a fortune (c’mon, just tell us how much :)), but putting the JVM on already spread coverdisks can’t be that expensive can it? I mean if macromedia and the likes can do it…

Erik