PDA

View Full Version : RFC: Installers and Java



Simon
Jan 11th, '06, 04:23 PM
I'm working on the installation process for v3 (at least, working on the general plans) and have a few thoughts and questions for folks.

First off, the basics:

Under v1 and v2 of HD, the installer provided you with a copy of Java which HD used. This made the installers rather larger than they needed to be and made (are making) it very difficult to upgrade the version of Java that HD uses as Sun releases new copies.

I'm going to change this in v3. HDv3 will require that you have installed Java 5 (or better) on your system. By relying on the system Java installation, it makes upgrades and the like much easier and opens up a number of possibilities for me.

It also means that there is a single file that you need to download to run HD, regardless of your platform (since HD is 100% Java). If you have Java 5, you can run HD.

So far so good.

Since we're moving over to the new service contract model as sales of HDv3 start, I'm also thinking about changing the structure of things a bit. Namely, eliminating the distinction between an "update version" and a "full version" -- there will be just one version of HD...the one that you get access to with your service contract.

Apart from being a LOT easier to manage on my end, it allows me to do fair bit more in the way of updates, maintenance, and distribution. All in all, it should be good for all involved.

And before people get too nervous about it, the pricing for the service contract (which gives you access to HD and all updates) will not be the "full version" pricing. It will likely be slightly higher than the current upgrade price ($20), but not by much. I'll leave the specifics largely up to DOJ to decide on that (I'll be going over it with them once I get them a close-to-final copy of the app to look over). So folks that don't have HD yet will get a bit of a break ;)

And so we come down to the installer itself (finally). With the items outlined above, all that's really needed to run HD is a single file: HeroDesigner.jar. I'll make it an "executable JAR file", meaning that you can simply double-click it (or your system equivalent to launch an application) and HD will launch. In order to create a somewhat more friendly directory structure, I'll likely create a VERY simple installer program for folks....really just something which asks you what directory you want to create for HD to be saved into. I'll create a WebStart application to do all of this, which will also give the benefit of checking your system for the requisite version of Java and helping you to download/install it if you don't have it yet.


So what I'm thinking of doing is the following:

1. Provide a simple service contract purchase. If you purchase the service contract, you get access to the basic installer and all updates to HD that are released during the term of your contract.

2. Create a WebStart "installer" which will check your system to ensure that you have Java 5 or better installed (and prompt you to install it if you don't), find out what directory you want to save HD into, and download the main JAR file for HD into that directory. The first time you run HD (by double-clicking on the JAR file), it will create the files and directories that it uses (plugins directory, trace.log, and appPrefs.xml).

3. Purchases will be online only. This will help a LOT with the management of the service contract model (allowing me to track purchases through the online store database directly) and will allow for proper management of the installer and other related files.

4. Export templates will not be included with the installer. You'll be directed to the Export Template directory on this server to choose which templates you want to download. I'll likely be enhancing that section of the site to provide simple thumbnails/screen grabs of the format that each export template will provide. This has been one of the things that has kinda been bugging me -- many folks don't even realize that the export templates have been updated since the current installers were created ;)


In all, it's looking like a full install of HD will amount to about an 8.5MB download (assuming you already have Java 5 or better installed). Once you've downloaded it, you pick and choose which export templates you want and any plugins that you want to use.

Thoughts?

RPMiller
Jan 11th, '06, 05:01 PM
I can't think of a single thing to question. It all sounds very simple and straight forward to me.

Derek Hiemforth
Jan 11th, '06, 05:03 PM
All sounds good to me. :)

gojira
Jan 11th, '06, 08:17 PM
Another app i use also does Java Web Start. It's been great, no worries here.

I have DSL however. How does this all work if you don't have net access? That's the only wrinkle I can think of.

Simon
Jan 12th, '06, 02:55 AM
Another app i use also does Java Web Start. It's been great, no worries here.

I have DSL however. How does this all work if you don't have net access? That's the only wrinkle I can think of.
Same way the upgrades have always worked: you need to have web access in order to purchase/download HD.

Once you've installed it, you don't need to be online (obviously).

Starwolf
Jan 13th, '06, 09:45 AM
The web access only is also the only kink I see. I personally have a 7mbs broadband connection, but I have a couple players in my group that don't have web access. It would sure be nice if there was a way for people to at least buy the core product on CD even if they could not update the app. Of course such a self contained CD would have to include at least the Java 5 runtime module (a self contained unit without it would be kind of a disappointment, as you couldn't run the app at all). In any case I will be pushing and shoving to the head of the purchase line just as soon as it's released in ANY format.... Just my $.02

Simon
Jan 13th, '06, 09:51 AM
The web access only is also the only kink I see. I personally have a 7mbs broadband connection, but I have a couple players in my group that don't have web access. It would sure be nice if there was a way for people to at least buy the core product on CD even if they could not update the app. Of course such a self contained CD would have to include at least the Java 5 runtime module (a self contained unit without it would be kind of a disappointment, as you couldn't run the app at all). In any case I will be pushing and shoving to the head of the purchase line just as soon as it's released in ANY format.... Just my $.02
I think that requiring web access to get the application/updates is going to simply be a fact of life going forward.

For those that don't have web access, they can either borrow a friend's connection and save the files off to a CD or thumb drive or head to the nearest Starbuck's (or other free wireless hotspot).

You won't need to be online to use the app (obviously), but (as is the case with an increasing number of applications), you will have to be online to purchase, install, and/or update the application. Purchasing a support contract without the ability to get at the support site really doesn't make much sense....

Starwolf
Jan 13th, '06, 09:57 AM
I think that requiring web access to get the application/updates is going to simply be a fact of life going forward.

For those that don't have web access, they can either borrow a friend's connection and save the files off to a CD or thumb drive or head to the nearest Starbuck's (or other free wireless hotspot).

You won't need to be online to use the app (obviously), but (as is the case with an increasing number of applications), you will have to be online to purchase, install, and/or update the application. Purchasing a support contract without the ability to get at the support site really doesn't make much sense....

Very true....

However I have to go buy a spill proof keyboard now as all this talk about V3 is making me drool on my keyboard..... :D

Wilfred_Death
Jan 15th, '06, 05:53 PM
........
I'm going to change this in v3. HDv3 will require that you have installed Java 5 (or better) on your system. By relying on the system Java installation, it makes upgrades and the like much easier and opens up a number of possibilities for me.............


For this, can you please make the JRE selectable, in a config file or something. ?

That is if it depends on the JRE being at someplace or other...
Especially for any upgrades...

The average windose user is going to have their "Java Run Time Environment"
Somewhere in C:/Program Files/java/jre.

Of course others may have more, and different entries....
particulary if they have the JDK or the Servlet Development Kit or both.

Or like me, develop using 1.4 and 1.5 and so on.....

It'd be Kind Of nice if it checked for %JAVA_HOME% if that is set.

At the moment, I've ditched Web-Start and the "public JRE" because it interferes too much with things ...........





And so we come down to the installer itself (finally). With the items outlined above, all that's really needed to run HD is a single file: HeroDesigner.jar. I'll make it an "executable JAR file", meaning that you can simply double-click it (or your system equivalent to launch an application) and HD will launch. In order to create a somewhat more friendly directory structure, I'll likely create a VERY simple installer program for folks....really just something which asks you what directory you want to create for HD to be saved into. I'll create a WebStart application to do all of this, which will also give the benefit of checking your system for the requisite version of Java and helping you to download/install it if you don't have it yet.

Also the Executable Jar File concept depends on two things:
The Correct entry in the Manifest File,
And the Users File Associations at least under windoze...

For someone who doesn't use Java as a development language, they're probably not going to have an association for .jar files.

Some packages I've got lately, assume that : You don't have an association set up by default, and proceed to write in their new one.

Then you wonder why your other Java stuff is not working, ony to find that the file association has been changed....

Or if you uninstall the package, the .jar association is removed.

So: Can you pleaase have HD3 base it's file associations on %JAVA_HOME% or be editable....


And maybe in the docs give a link to "How to set Windows File associations"?

Simon
Jan 15th, '06, 06:01 PM
HD won't be doing anything with file associations -- that's the job of the Java installation on your system.

I will likely distribute various .bat and/or .sh files to help folks who don't want to run with the executable JAR file (which, of COURSE requires a valid manifest in the jar file).

JAVA_HOME points to the java installation that is (typically) set as the default on the system. It is also oftentimes not set at all on many systems. So HD will neither rely on it nor use it. When you run HD, it will run under the default Java on your system. If you are one of the few that have multiple Java installations on your system (and need to have an older version of Java set as the default), then you fall into the category of more advanced user who should be comfortable telling your system what version of java to use when running HD.

As far as a selectable JRE -- HD will require Java 5 or better. It will not run under Java2 1.4 (or earlier). If you have multiple releases installed on your system, there are any number of ways in which you can specify the version that you want to run HD under.

rjcurrie
Jan 15th, '06, 07:59 PM
Not directly related, but is there some way that HD could display its "install directory" to make things easier on users who may not know or remeber where they installed HD? Or will the new installation/update system make this redundant? I was thinking about something on the "About" box.

gojira
Jan 16th, '06, 09:45 AM
Not directly related, but is there some way that HD could display its "install directory" to make things easier on users who may not know or remeber where they installed HD? Or will the new installation/update system make this redundant? I was thinking about something on the "About" box.

This is a good call. "Ditto."

I have a system where Window's "Program Files" is on D: rather than C: (long story about upgrading), so I do like to know where stuff is at, just in case. If HD works with the "Add/Remove Programs" system in the Control Panel, that's fine.

gojira
Jan 16th, '06, 09:47 AM
I will likely distribute various .bat and/or .sh files to help folks

.sh? Hello? Does this imply Linux and BSD support? Now that would be very cool.... :cool:

rjcurrie
Jan 16th, '06, 09:57 AM
.sh? Hello? Does this imply Linux and BSD support? Now that would be very cool.... :cool:

HD has been available for Linux and Solaris since day 1.

ghost-angel
Jan 16th, '06, 10:09 AM
.sh? Hello? Does this imply Linux and BSD support? Now that would be very cool.... :cool:
HD is Java .. it's available on anything that can run Java. If you can get your old Atari to run Java you can put HD on it.