JRE Download Size

I noticed recently that the size of the JRE 1.4.1 installer is ~ 8MB. This means any game that requires the JRE to be distributed with it automatically suffers a bloat of 8MB, which is a little hard for a developer to swallow, especially if he intends to distribute said game over the internet.

I’m wondering if anyone has really cracked open the JRE and tried to trim out all the files that don’t pertain to gaming in an attempt to get the size down? If so, I’d be real curious to hear your findings.

Regardless what you find, there are legal issues to consider. Sun states clearly what has to be part of a redistribution.

IIRC, you can leave out some utility programs, that’s all.

I’ve done it; it WinRARed down to about 2Mb, which is still a meg over what I’d have liked, but a lot better than 8Mb. This meant that I couldn’t use any AWT or indeed most of the other things in the JRE; it was the bare minimum JRE required just to run Hello World.

Of course it can’t be distributed unless you get an embedded license from Sun. I’m not sure how to go about this but I ought to ask Chris the details in case it comes in handy some time.

Cas :slight_smile:

I still think that 8Mb is not the problem at all since it is a one time download, just like many other extensions and drivers and such.
Man, gf4 videodrivers are almost twice as big and you need to update them more often. Nobody complains about that.
Why not? Because you need them.

Nobody needs the JRE unless we make lots of great games that are so irresistable that everybody will hurry to java.sun.com to dl it as soon as they can.

Except it’s not a one time download, is it? Java applications suffer the same old fragile environment that’s been plaguing everyone for years - bugs in older versions, bugs in newer versions, changed features, using newer features, etc.

A large number of people never download new drivers for their machines… and the majority of people don’t have the latest drivers, for sure.

So when you add up the requirement that your game will only run on the latest JRE (8Mb) with the latest drivers (16Mb, say) you’re looking at 24Mb of bloat to get the application to run correctly. Now, there’s nothing necessarily wrong with that except that for just a game it’s beyond the patience threshold of the majority of today’s modem-bound/non-tech-savvy users. It’s bad enough we have to make do with OEM video drivers without the added pain of a JRE install.

Cas :slight_smile:

I would really vote against a less functional JRE just to make it a smaller download.
I’d even say it could kill java because you can’t do much with it unless you go install a mish-mash of needed libraries anyway. People wouldn’t bother for sure and you would loose many developers that choose java because it’s so convenient.

What I would vote for is a system that would automagically patch the JRE to new releases in a web start kinda way. Maybe even patch it on a ‘per class’ base instead of ‘per jar’ as in web start.

[quote]Now, there’s nothing necessarily wrong with that except that for just a game …
[/quote]
Make that ‘for just one good game’. If there would be hundreds or even tens of good games, people would download the JRE with a smile on their face.

But isn’t it true that people that play games, usually upgrade their video drivers too, because they really have to?
I recently bought a new cd-burner because my old one broke down. That new one (an Aopen btw) was basically disfunctional until I flashed the firm-ware. I would never do it if it weren’t really necessary, but it was so I did.
The same goes for those damn buggy videodrivers that plague many videocards. Download, upgrade and download again.
Isn’t it true that Alien Flux needs the latest drivers on many video cards?
The JRE download and compatibility issues are nothing in comparison to driver issues IMHO.

I’m with erikd on this one… I don’t think 8 mb is a problem. Game-demos are typically 100MB for the small ones, video drivers as noted approaches 20MB, even very small games easily reach 10MB with maps, gfx, fx
, code and music (even a single mp3 track is 3megs)).

That said, it doesn’t need to get any bigger (save perhaps to include lwjgl in the std. package :stuck_out_tongue: )

What concerns me is that there are so many different RTs and really weird versioning - people are easily confuzed. Why, for example, is Java2 in a RT with version number 1.x ? Highly illogical.

[quote]is Java2 in a RT with version number 1.x ? Highly illogical
[/quote]
They must have been stoned out of their minds and lost all touch with reality ::slight_smile: :stuck_out_tongue:
That’s the best explanation I can come up with

Next big thing will be Java4 with version number 2.3

Well, we live in a world where Windows went from 98 to 2000, Solaris 2.8 is marketed as “Solaris 8” and reports 5.8 on a uname, SimCity went from 3000 to 4, and MPEG just missed out version 3 entirely…

I’m expecting Sun to start using complex numbers next…

Oh, hang on… Oracle 8.i… :o ;D

A.F. works on the majority of systems OEM drivers, but that only means 50% or more :slight_smile:

Deploying Games On The Internet Essay

This essay has been written before on the 'net by shareware professionals (which I’m not, yet), and probably better than I’ve done it, but the gist of it should remain the same.

When we’re talking business, we have to remember that the factors involved in someone buying your game are cumulative, and so even getting 100% correct on one factor will still result in abysmal sales if another factor causes only 1% of customers to pay. Let’s assume there are 600,000,000 people on the internet now (http://www.nua.ie/surveys/how_many_online/)- they’re all potential customers. Here are some of the factors involved:

  1. Getting visitors to your site. This is probably by far and away the most crucial factor in direct sales. It’s also the one which starts with the lowest factor and takes longest to build up. Let’s assume that a mere 0.001% of everyone on the internet at some point finds their way to your site to begin with.

  2. What are the minimum specifications for playing the game? If you said Win32, P100 with 16MB free RAM and a 2D card, you could be reasonably certain that 100% of your customers will be able to play the game. If, like me, you’ve required a modern OpenGL compatible system, with a 500MHz processor and 32MB free ram, you’re likely to find that only 20% of the internet can play your game. The internet is a big place - it’s not just North America and Europe. There are millions of PCs in South America and India which lag behind the typical system specification. But Moore’s law generally holds throughout the world - every 18 months, some aspect of a computer doubles in capacity. In 10 years’ time every computer on the internet is likely to meet my minimum specification. But for now, lets guess at 20%.

  3. Getting visitors to download the game. Your site navigation, demo sales blurb and screenshots are instrumental in getting people interested enough in the first place. Each one of these factors has a success rate in achieving its goal, which is to get someone to click “Download the demo now!”. Let’s assume you’ve got a really neat site with obvious navigation which allows 100% of visitors to find the link. Let’s assume that the sales blurb and screenshots convinces 25% of the visitors that they’re going to enjoy your game. (Various evidence from some professionals suggests that 25% of unique site visitors will start a download).

  4. How much of a hassle is it to download? There’s very strong evidence to suggest that 5.xMB is the limit before customers simply walk away and try to find something smaller. Often their modem craps out in the middle of things. One day the world will have broadband but until most of the world does, you can be sure that by the time you’re at 5MB that only 75% of visitors will complete a download. We could draw a curved graph:

0.5MB = 99%
1MB = 98%
2MB = 95%
3MB = 90%
4MB = 85%
5MB = 75%
6MB = 60%
7MB = 40%
8MB = 20%
9MB = 10%
10MB = 5%

  1. So they’ve done the download - how much of a hassle is it to install? Fortunately nearly all games have a good installation process. Unfortunately if you’re relying on the customer having a JRE installed then they’ll have to go and download that too if they don’t already have it. So although some of your customers have got the JRE already and haven’t got to worry about anything - some of them don’t already have it. We might optimistically guess that 1% of users already have a 1.4.1_02 JVM installed - yes, it’s very very rare to find someone with the latest JVM; the other 99% don’t. Factor in 20% for that 99% of users.

This brings up an interesting point in itself - Webstart does not affect the percentages. Installation from Webstart and installation from a setup.exe are basically equal in terms of getting sales. Its real advantages come in support, where incremental patching is less of a pain. Unfortunately the JVM won’t fix itself yet.

  1. How good is the game itself? Maybe 1 in 5 people like playing it enough to pay for it. After all, they’ve seen the screenshots and they didn’t get put off; they’ve read the blurb, and it sounded good - so this is a measure of how well your game actually lives up to the customer’s expectations. Customers are notoriously fickle creatures. 20% might seem to be a good rate.

  2. How well does the game upsell itself? Remember that old saying - “Sell the sizzle, not the steak”? The demo must remind customers to purchase the full version at every opportunity. It needs to offer an incentive to update to the full version. This involves careful tuning to make users want more when the demo finishes, nag screens, crippling, screenshots of features only available in the full version, etc. etc. It’s difficult to measure but rest assured if you put 0% effort into upselling your demo you will end up with a 0% factor and you won’t make a single sale. Let’s assume you’ve balanced & crippled the demo just enough to make it horribly addictive and that it stops just when it’s getting really exciting, and that at every opportunity - startup, shutdown, endgame - you remind people how to get the full version and where to go and what to do - and that you achieve a 20% success rate (ie. 80% of customers are entirely satisfied with the demo and don’t want any more than it’s got to offer).

  3. How easy do you make it for the customer to pay for the game? There are myriad ways to pay, and customers use all of them. Cash, postal orders, cheques, Switch, Solo, AMEX, Visa, Mastercard, Access, 3 sheep and their eldest daughter - you name it, they’ll try to pay with it. And they’ll try to pay by fax, email, post, or online. Each permutation has a weighting associated with its popularity; covering every single permutation may be a lot more effort than it’s worth. Let’s assume that you have a method of payment acceptable to 75% of your customers - perhaps paying by credit card & Switch online, or posting a cheque, cash, or postal order.

  4. Is it competitively priced for what it is? This is actually a surprisingly subtle issue. Too cheap, and people can’t be bothered to pay for it. $5 is too little - it’s not worth dragging the credit card out for it. Conversely, $25 is too dear for what’s perceived as a “no middle man” situtation (little do they know!) There does appear to be a sweet spot, probably psychological, of between $9.95 and $19.95 for internet delivered games. Note the 95cents - that’s an old trick, and still totally valid. Now an interesting thing is, it doesn’t seem to matter what the price is between those ranges. Once a punter has made up their mind that they like the game, and that it’s not too expensive for what it is, and not too cheap to bother, they’ll buy it at whatever price you decide. So let’s assume that 75% of the customers so far decide the price is worth paying.

  5. Inevitably the full version doesn’t work, or they decide it wasn’t worth the money. In the interest of good press and customer relations do not argue with the customer - just give them their money back, no questions asked. This figure is very low: around 99% of your customers will be entirely satisfied.

  6. Let’s assume that when someone’s got the full version it generally tends to find its way on to a couple of other friends’ computers, no matter how cunning you think you are with registration keys. And from there it might spread to a few other friends or work its way onto Kazaa. That’s life; live with it. This might limit you to, say, 10% of your potential sales because one in ten potential customers has already got your game! Don’t scoff - it happened to the Amiga, tragically, and was probably as instrumental at driving developers away from the platform as Commodore’s stunningly inept business direction.

Cas :slight_smile:

The mistake people make now is to add these percentages up - probably because the idiom is to see what it “all adds up to”. This is wrong - now you need to multiply them together!

Let’s assume our game demo is 5MB and the very latest JRE is required to run it.

We get 0.001% * 100% * 20% * 25% * 75% * 20% * 20% * 20% * 75% * 75% * 99% * 10% = 0.00000001670625%.

With those 600,000,000 customers on the internet, that’s 10 sales of your game. Rock on! If this were Alien Flux, I’d have $200 in the bank. Don’t laugh - I’ve seen developers lamenting the fact that they’ve had 7 sales all year! Unfortunately A.F. will have taken approximately 1 man-year of development, and we’ve got expensive wives and girlfriends to maintain, plus a tendency to buy titanium exhausts for our motorbikes.

Now it doesn’t take a very bright spark to realizing where to put the effort in to improve sales. The closer something is to 100%, the harder it is to get it any better - there is a law of diminishing returns. So you start looking at the lowest percentages and figuring out ways to increase them. Some of them are much harder to increase than others.

One of the hardest to increase is also unfortunately the most significant - site visitors. There’s a multibillion dollar industry involved in increasing traffic to sites so I won’t delve into it here. It will tend to grow on its own as your site gets older and more mature, and you release more games.

What about the things you can manage straight off?

Well, looking at the next lowest figures, it seems like we could entirely eliminate a 20% factor by not requiring a JRE download. It may not have dawned on you just yet what this actually means but I’ll spell it out: this will result in a five-fold increase in sales. Instead of making just $200 from Alien Flux, I could potentially make - hold your breath now - $1,000. It has to be said that the Jet version is Win32 only - but that simply means that my Mac and Linux customers will have to download a JRE and use the jarred version, and as they represent less than 1% of the PC gaming market, I can live with it :slight_smile:

The next thing I’d want to look at is customer feedback about the demo, and making alterations to the game to make it more what the customer wants. Be careful here! Vociferous customers are like cuckoos - the loudest biggest bird in the nest tends to get the worm at the expense of all the real nestlings. An example is the complaints I’ve had about difficulty playing A.F., and the control should optionally be via joystick. It took a very short length of time for me to surmise the difficulty was indeed far too hard, and I’ve toned it down to the point where it’s basically trivial on levels 1 and 2. The control method, however, is what makes A.F. the game it is - it’s unique, simple, elegant, and powerful - and once you’ve mastered it, it’s ideal for the game. So that’s staying. There’s a host of other little suggestions I’ve put in, and tweaks here and there. Maybe I’ve doubled that 20%? If I’d stuck to the 1.4 JRE distribution method that’d be 20 sales instead of 10 - nice! But because I’m doing both those things I’m going to be looking at a jump from 100 sales to 200 sales - that’s another $2,000.

And so on.

Nearly all the other changes you can make to your game are business related and don’t involve programming skills. Your business skills are considerably more important than your programming skills because there are considerably more business factors involved. It really puts your programming time in perspective and makes you realise the fundamental truth when the retailers claim that they spend twice as much on marketing as they do on the development of a game.

But remember - if any factor ever gets to 0%, you’ll have 0 sales. You can’t slack on any of them.

When we’re not talking business - well, it’s just toys and idle time, so who ca]
about the size of the JRE?

Cas :slight_smile:

That’s interesting

[quote]When we’re not talking business - well, it’s just toys and idle time, so who cares about the size of the JRE?
[/quote]
OTOH, when we’re just talking about business you probably would have made your game using C++ and maybe in the meantime wait for another Cas to show up to create the tools and proof that it can be done in java. And switch when the time is good.

I still believe it is somewhat important (at least in this community) that, apart from everybody’s individual businesses, that java succeeds.
I just can’t believe that simply trimming down the JRE to a barely functional one will be the answer.
Only delivering good (and yes, well marketed) java stuff will help.
And clever distribution of the JRE. Which may be among other things a 1 time barebones JRE that automatically and silently downloads standard libraries when needed… But then still, even if it’s a 1Mb JRE, the reward has to justify the effort.

Hmmm, food for thought :-/

'tis indeed food for thought but brings us right back on topic: Sun already have a tiny barebones JRE - J2ME. But strangely it’s not available for Win32 with a nice Hotspot VM. I tirelessly campaign for the J2GameEdition :slight_smile: Mainly because I’d like to be involved in the design…

Cas :slight_smile:

Slightly off topic, but, may I suggest:

J2EE - Enterprise Edition
J2SE - Standard Edition
J2ME - Micro Edition

… and for us:

J2GE - GAME EDITION.

I like it muchly.

[quote]and as they represent less than 1% of the PC gaming market, I can live with it
[/quote]
For some reason I have the feeling that for Alien Flux this number may be higher than that because it’s java and so availble to mac and linux folks as well for a change.
And I bet lots of people on this board (probably more than 1%) are linux and/or mac users.

Good :slight_smile: The more the better.

Cas :slight_smile:

I’m still not sure about a J2GE idea (however cool 8) the name might be).
I think it will get confusing to have so much JRE’s. Man, people would maybe even have to install a SECOND jre to play a game on their PC.
How you gonna sell that?!
I’m getting more towards a barebones java install that automatically downloads & installs packages as needed. Whether that are ‘J2GE packages’ (so to speak, gaming specific packages) or J2SE packages.
JRE size would not so much be a concern for adding standard packages & features I could imagine AND it would make installation much easier on our poor dial-up modems.
So 2 installations of the same thing:

  1. The small ‘lazy’ install
  2. The bigger, complete installation

As a side note, IIRC the JRE was at one point 20Mb in the early 1.4 days.
Frankly I was surprised it got as small as 8mb these days :slight_smile:

To be honest, I never understood Sun’s strategy regarding the way the JVMs, and even Java itself, treats its hierarchy.

An example from another industry: M$ decided to end the days of 16-bit, retitle everything Windows XP, and use one codebase. This would make XP Home the base version, XP Pro the workstation version which adds on things needed for workstation, and there was SUPPOSED TO BE an XP Server version, which added to the Pro version even more. Too bad this scheme didn’t work.

Why didn’t Sun create a MINIMAL set of packages that are part of J2ME and upwards, and then everything else becomes an extension, or “profile” to use their parlance, on top of the base system? Unless, of course, this is a continuation of the grogginess I am experiencing today and that’s what they actually did…

I think Cas’ point refers to the JVM itself, not the packages shipped though. The point is that there are certain optimizations that are required for a gaming JVM that aren’t part of the client or server JVMs available today (correct me if I am wrong, Cas). The question would be whether or not those optimizations could be made to the client or server JVM such that one would not have to worry about which JVM is needed, without bloating it, either. I doubt that’s possible.

[quote]I think Cas’ point refers to the JVM itself, not the packages shipped though
[/quote]
As far as I’m concerned, the point of a bloated JRE regards te JVM and the packages. Especially the packages even since I guess these make up for most of the JRE.
Furthermore there is no such thing as a JVM without the packages belonging to the JRE. Well such a thing is not distributed anyway. Please correct me if I’m wrong.

Any ‘gaming specific optimizations’ would not harm the client or server VM at all, especially since the client VM is probably mostly used for games anyway. I think these optimizations would hardly bloat the JRE like AWT or Xalan for example do. (The server VM is not part of the JRE distribution anyway)

Erik