Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (132)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Webstart Rant  (Read 3056 times)
0 Members and 1 Guest are viewing this topic.
Offline DanK

Junior Devvie




Javver games rock yawel!


« Posted 2005-02-03 19:26:08 »

As nice as webstart could be, it isn't. Even when you get past the lack of documentation and a ton of other little quirks (especially if you are signing things), and then you still find yourself having problems with some people not being able to run it due to webstart bugs... so I find myself using jexepack which does almost exactly the same thing as webstart, only it makes an exe instead of using a jnlp file to run, and of course, due to that it own't work anywhere but windows... but I strongly suspect that there are less mac users, than windows users who can't get something to run right with webstart (and mac users probably suffer the same webstart issues as windows users).

Anyone want to give me advance warning about jexepack before I decide to rely on it for distribution, has anyone had a lot of problems with it or is it just an unknown tool to most of the community here?

Offline princec

« JGO Spiffy Duke »


Medals: 434
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #1 - Posted 2005-02-03 20:33:54 »

Why bother when you can simply package the whole thing up with NSIS installer?

Cas Smiley

Offline DanK

Junior Devvie




Javver games rock yawel!


« Reply #2 - Posted 2005-02-03 22:13:27 »

Why bother with which, webstart or jexepack? I think I'm firmly in the why bother with webstart group now, it'd be an excellent tool if it worked right (and had a few small enhancements would be a huge plus). The jexepack tool is fairly simple, and it can package up the jre as part of the executable though I personally didn't do that (but I know there have been cases where people wanted to). Both jexepack and nsis look difficult to use, though I'm assuming nsis probably is pretty simple to use once someone actually decides they are going to, I know jexepack had me feelin nervous about having to spend 4 hours figuring it out but once I looked at an example I was set in about 5 minutes... on the other hand, NSIS is free, so I probably owe it to myself to check it out.

Edit: Unless I missed it NSIS only provides an installer, you'd still have to use a .bat file or some other method of setting up your program to run, the jexepack creates a single exe file (with all resources) that a user can just run... it's not an installer, but by knocking it down to a single file it kinda reduces the need for an installer. I suspect that the single field is decompressing itself to a temp folder and then executing the java runtime (I know the java run time is used by the jexepack exe file) so for something with a very large amount of data files it could create a huge overhead for startup, I don't know if that's the case or not... my total file size is 1.8mb and I can't see any significant delay on startup (I'm on a pretty new machine though too... so it might just be barely noticable on this machine). I'm trying to get the game published, once that goes through or fails miserably, I'll post the game in the your games here forum (hopefully a link to a publishers website with it and not a link to my website where it can share a home with my other previous creations).

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline William Denniss

JGO Coder


Projects: 2


Fire at will


« Reply #3 - Posted 2005-02-04 07:01:01 »

The great thing about Macs is that Java with JWS comes pre-installed by default.  I think your sucess rate with Mac users would be nearing 100% due to this fact -- there is very little you can stuff up.  For example, unlike Windows you can't have two different versions of Java installed (this is a disadvantage from a developers point of view, but in my experiance most people with Java windows problems, including developers who should know better, are due to version confusion).

Additionally, Java updates come with all the other Mac security updates (unlike Windows), so the chance of a Mac user having the very latest version of the Apple JVM are also quite high.

Java swing apps also look like native Mac apps, and OS X has really good OpenGL drivers (helped by the fact that the OS uses OpenGL extensivly) so really it is a great platform to target ($$$).

Personally I like NSIS for windows deployment as well and have been using it for years.  I'll probably continue to release an NSIS EXE for Windows, and a zip/tar.gz for all platforms, plus a JNLP for those who like JWS (as much as I like webstart, I don't want to force it down peoples throats, and it does have its limitations).

Regarding your rant, I would like to hear some specific issues Smiley

Cheers,

Will.

Offline William Denniss

JGO Coder


Projects: 2


Fire at will


« Reply #4 - Posted 2005-02-04 07:05:46 »

Quote

Edit: Unless I missed it NSIS only provides an installer, you'd still have to use a .bat file or some other method of setting up your program to run, the jexepack creates a single exe file (with all resources) that a user can just run... it's not an installer, but by knocking it down to a single file it kinda reduces the need for an installer. I suspect that the single field is decompressing itself to a temp folder and then executing the java runtime (I know the java run time is used by the jexepack exe file) so for something with a very large amount of data files it could create a huge overhead for startup, I don't know if that's the case or not... my total file size is 1.8mb and I can't see any significant delay on startup (I'm on a pretty new machine though too... so it might just be barely noticable on this machine). I'm trying to get the game published, once that goes through or fails miserably, I'll post the game in the your games here forum (hopefully a link to a publishers website with it and not a link to my website where it can share a home with my other previous creations).


I normally give the users a "javaw -jar myApp.jar" style shortcut + a .bat for debugging (has console output).  Works pretty well for me.  But really, just use whatever works for you Smiley  I would still recommend having a JNLP, at least in addition.

Will.

Offline princec

« JGO Spiffy Duke »


Medals: 434
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #5 - Posted 2005-02-04 07:42:08 »

With the NSIS route, you embed the entire VM in your application (or if you are more pragmatic, just the bits of the VM you use Wink). Then you create a tiny stub .exe to launch your app with the parameters you want, or simply use a .bat file and invoke javaw.exe instead. I prefer the custom .exe route.

NSIS then packs it all down into an unbelievably small size using LZMA compression and turns it into a really fast and convenient installer.

For an online retail software product situation, Webstart is pretty abysmal. Apart from the bootstrapping issue (no webstart? Link doesn't work) people really don't feel like they've actually "got" anything worth paying for.

We all love Webstart in here but when was the last time you bought something delivered by Webstart?

Cas Smiley

Offline kevglass

« JGO Spiffy Duke »


Medals: 212
Projects: 24
Exp: 18 years


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #6 - Posted 2005-02-04 09:19:41 »

Puppytron?

Kev

Offline Matzon

JGO Knight


Medals: 19
Projects: 1


I'm gonna wring your pants!


« Reply #7 - Posted 2005-02-04 09:57:23 »

lol, touché

Offline princec

« JGO Spiffy Duke »


Medals: 434
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #8 - Posted 2005-02-04 12:42:51 »

Haha Smiley Yeah, but only my board acquaintances have bought it. Sales == 0 now.

Cas Smiley

Offline DanK

Junior Devvie




Javver games rock yawel!


« Reply #9 - Posted 2005-02-04 14:06:06 »

I didn't really expect webstart to be the way the game was sold, as it's not what current publishers of this type of game are used to dealing with (realarcade and shockwave are good examples where they have their own wrapper program that is used to time limit the demo). I was simply hoping webstart would be a reliable way to play a probably cut down version of the game on the web without the hassle of downloading anything.

Some specific issues with webstart that I can think of right now, the lack of layered security permissions, it's all or nothing (well, all, nothing or j2ee permissions though I'm not sure what that is exactly). I remember the 1.5 beta had a wicked habbit of grabbing the jnlp file, and then only getting part of it and losing the connection or something and basically screwing the download up, there is a thread around here somewhere listing the problems people have had, the only one I know of that's fixed is they finally change that ridiculous warning on the all permissions web start applications... my own brother was damn near shocked out of running it after seeing that warning (and other people who know me too). I've had a lot of situations where a webstart copy of something I wrote, wouldn't run for a lot of people but a jar version would. Of course, my mom couldn't get a jar version running because java wasn't in her path... and webstart was no issue... but all the other problems kinda drown that out. Like I said, webstart is almost a damn good tool, and I do think we could distribute games and sell them via webstart if it just worked more consistantly.

As for mac being better... a friend of mine has a mac, he's not that computer literate, so I was walking him through installing java (yep, cause whatever version he had was old) and when he tried to run the java installer... it said his os version was too low... I assume it's just a matter of downloading a patch to fix that, but I'm not really familiar with the mac os, no idea why he didn't just update his OS then, unless maybe it's a monster big file.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline swpalmer

JGO Coder


Exp: 12 years


Where's the Kaboom?


« Reply #10 - Posted 2005-02-05 17:52:24 »

Quote
For example, unlike Windows you can't have two different versions of Java installed

This is NOT true.   Mac OS X allows only one version of each major Java release, i.e. currently on OS X you can have one Java 1.3 JRE and one Java 1.4 JRE installed at the same time.
When Java 5 is available (presumably with the release of OS X 10.4 inthe first half of this year) one can only speculate.. but I'm guessing it will co-exist with the 1.3 and 1.4 JREs.

Offline swpalmer

JGO Coder


Exp: 12 years


Where's the Kaboom?


« Reply #11 - Posted 2005-02-05 17:59:31 »

Quote
As for mac being better... a friend of mine has a mac, he's not that computer literate, so I was walking him through installing java (yep, cause whatever version he had was old) and when he tried to run the java installer... it said his os version was too low... I assume it's just a matter of downloading a patch to fix that, but I'm not really familiar with the mac os, no idea why he didn't just update his OS then, unless maybe it's a monster big file.


Because Apple treats Java as a component of the operating system, they have fixed various issues with Java (usually AWT related)  with a combination of patches to the JRE *and* the OS.
Apple releases many minor OS updates for free.  For example OS X 10.2.x for all values of x are free to users that have purchased OS X 10.2.  But OS X 10.3 is an upgrade that you must buy. (Currently we are at OS X 10.3.7 - 7 minor updates have happened.)  Java 1.4 requires OS X 10.2 or above, I presume due to the existence of various hooks in the windowing system required for AWT to function properly.  I also think that the latest update to 1.4 may need OS X 10.3, and I think it is quite likely that Java 5 will require OS X 10.4.

The OS can be purchased for about $130 I think, and the updated OS' seem to include significant advancements making that price fairly reasonable... but obviously a factor in terms of one's ability to upgrade their JRE.

Offline Danskeren

Senior Devvie


Projects: 1


oi?


« Reply #12 - Posted 2005-02-07 03:27:44 »

Well if it is J4exe you are thinkin of I would concider just distributing the jar file. I have had so much trouble with J4exe:

The Random class f**ked up things. It gave the same random number for an entire second which meant that if ou run loops that uses different random numbers, those would all be the same.

Using the SCanner class was simply not possible. I dont know  if it was because j4exe was using Java 1.4 but I only had 1.5 installed and still it denied the existence of the Scanner class.

Offline William Denniss

JGO Coder


Projects: 2


Fire at will


« Reply #13 - Posted 2005-02-07 22:24:47 »

Quote
there is a thread around here somewhere listing the problems people have had, the only one I know of that's fixed is they finally change that ridiculous warning on the all permissions web start applications... my own brother was damn near shocked out of running it after seeing that warning (and other people who know me too).


Lets not forget you can get properly signed certificates so that you get a MUCH kinder warning message.

Will.

Offline tom
« Reply #14 - Posted 2005-02-07 23:26:16 »

But you still get a warning message. Asking you to trust what looks like an unknown company. People are not used to this and are still terrified and say no.

Offline DanK

Junior Devvie




Javver games rock yawel!


« Reply #15 - Posted 2005-02-08 00:46:14 »

The 1.5 scary warning isn't too bad, it's certainly no worse than the warning for an exe file which is appropriate.

I'm not using J4exe, jexepack is a different tool.

On the note of randoms, most of the time when I use a random (which is uh, just about every time I write something), I will using public static Random R = new Random() in my main class, this way it's only seeded once, since Random() is seeded with the current time and on windows 95/98 system time is only accurate to 55ms (currentTimeMillis will alternate between 50 and 60 ms differences). Anyway, anywhere else I use a random number, I usually reference that one. This should work fine for anyone who's just wanting random numbers, for those who use a seed for encryption or some other reliable generation of number sequences... it shouldn't be an issue.

jexepack homepage Linking this so anyone who wants to check it out can, I think it's a quality tool, I have not tried to embed the java runtime into the exe, it took me about 30 seconds to look at an example ini file, copy it to my game folder and set it up... and then like 15 seconds later on when I realized I forgot to include some other non-essential files hehe.

Offline jbanes

JGO Coder


Projects: 1


"Java Games? Incredible! Mr. Incredible, that is!"


« Reply #16 - Posted 2005-02-08 01:50:15 »

Quote
This should work fine for anyone who's just wanting random numbers, for those who use a seed for encryption or some other reliable generation of number sequences... it shouldn't be an issue.


If you want good numbers for encryption, then you should seed it yourself, through a set of strong algorithms. Even better, use a custom Random implementation. Something like the Mersenne Twister or TT800 should do the trick. :-)

Java Game Console Project
Last Journal Entry: 12/17/04
Offline princec

« JGO Spiffy Duke »


Medals: 434
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #17 - Posted 2005-02-08 07:33:36 »

The scary warning really sucks, and this is after the "miracle" of actually getting Webstart to work in the first place.

Cas Smiley

Offline DanK

Junior Devvie




Javver games rock yawel!


« Reply #18 - Posted 2005-02-08 16:56:32 »

This board is complaining that my message is to long no matter how short I make it?

Offline Y

Junior Newbie




Java games rock!


« Reply #19 - Posted 2005-02-08 17:04:43 »

Nothin' scares me, and too long isn't bad. Bad language is.
Offline Timedancer

Senior Newbie




Flower power!


« Reply #20 - Posted 2005-02-09 11:08:07 »


Seems to me the "scary message" makes Java quite impractical for distribution of my kind of game. Who, other than friends and relatives is going to click past that? Its kind of sad really, as there is an alternative. Back when I first started using Java, in 1997, one Java feature Sun was proclaiming was the "Sandbox Model". This allowed users fairly fine grained control over what runs on their computer and how. Over the years, this feature has been quietly knocked on the head and buried, presumably at the insistence of the Enterprise market. In an alternate world, in which Sun was interested in the end user market, the Sandbox could have been marketed as a feature that makes running Java programs more secure than running other Windows programs. The default configuration for JWS could be to only read and write to its own folder. The "scary message" could be replaced by an upbeat one noting that, because you are running Java, your computer is much safer than if you were running a native Windows program. Can't see that happening though.

I've been following the JWS discussion on this board for years. My conclusion is that if I want significant distribution for my game, I will have to get it rewritten in a language that is native to the Windows PC. I really like Java as a development environment. But as a distribution system for my kind of game, I think it very limited. I can see its usefulness in simple games that don't require disk access. And in retail boxed games that carry their own Java install and just look like any other game to end users. But for my game, intended for net distribution but does need disk access, I don't see Java as being practical. Sun is committed to the Enterprise market, not the end user one.

JWS, with its Enterprise orientation, is pretty much useless for mass market distribution. At best, it can help me reach a small "enthusiast" market for beta testing. And given the corporate orientation of Sun to Enterprise computing, I don't really see that ever changing.

Offline cfmdobbie

Senior Devvie


Medals: 1


Who, me?


« Reply #21 - Posted 2005-02-09 12:49:21 »

Actually, JWS does exactly that, in the form of Muffins.

No, the problem here is that most of the people above want to change display modes, load native libraries etc, and no security model can keep a system safe if they're allowed to do that.  So it warns the user in no uncertain terms that they're stumbling into dangerous territory.

Hellomynameis Charlie Dobbie.
Offline princec

« JGO Spiffy Duke »


Medals: 434
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #22 - Posted 2005-02-09 13:12:58 »

Which is all well and good and is great for us very very early adopters and Java developers who understand everything.

However for the average user the dialog is a disaster. They have not yet been educated in this matter yet, which is why Windows does not yet ask them to verify whether they want to install something or not yet (enforced code signing).

When in Rome, do as the Romans do. The whole security dialog should simply be removed if the code is properly signed and the OS ordinarily allows code to be installed.

Cas Smiley

Offline cfmdobbie

Senior Devvie


Medals: 1


Who, me?


« Reply #23 - Posted 2005-02-09 17:05:54 »

Now there's an interesting idea - only pose the question if the OS that WebStart is running on usually asks such questions.

But - alas! - users are stupid.  They've only just learned not to run EXE files, so trying to get them to understand that JNLP needs care as well is taking things a bit far.  And the fact that while running an EXE from the web requires confirmation, running a JNLP is just one convenient click makes them that much more dangerous.

As we used to say at an old workplace: "When determining the intelligence of your users, start at cabbage and work up".  Your average Internet Cabbage takes some time to get used to new things.

Hellomynameis Charlie Dobbie.
Offline DanK

Junior Devvie




Javver games rock yawel!


« Reply #24 - Posted 2005-02-15 14:26:02 »

As I tried to say before when the board kept complaining about message length, 1.5 changed the scary message from click yes to burn in hell and destroy your computer etc to do you want to trust this signed application distributed by Dan Kavanaugh

That's probably too tame now, but what can I say, I'd much prefer this to the other.

Anyway, changing a display mode shouldn't be regarded as being as dangerous as reading or writing to the disk (non-muffin) or of course, loading native libs. The malicious part of changing display modes is doing it rapidly for a long period of time which can cause damage to monitors (though presumably not any monitor sold in the last 10 years). Sun probably considers the idea that someone *could* mimic the entire screen of the computer it's running on, and then ask for private information that looks like it's coming from some trusted program (such as... maybe a prompt that looks like outlook express asking for username and password) and then send that information to some place else (the reason for the limitations on networking... not that I've ever found that limitation to be significant).

Muffins, while useful, are not gaurenteed to be in any way persistant, and the size of a muffin isn't exactly gaurenteed either, you can request a larger size but jws or whatever the user has on their machine that handles jnlp files can arbitrarily deny a muffin be made larger than 1k for example. Also, working with muffins is pretty confusing, I don't think the docs alone are enough, you pretty much have to find a working example, plus docs, plus a tutorial or two, and then you might get them working after a lot of time has been spent on it, but on the plus side, they can be used with a webstart app and not require a scary permission to make the information somewhat persistant. Another grip about muffins is of course, if you use them, you can't run that application as anything but a muffin (because it includes classes that don't exist for non-jws runs... unless you include dummy classes or something which still sucks).

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

rwatson462 (33 views)
2014-12-15 09:26:44

Mr.CodeIt (23 views)
2014-12-14 19:50:38

BurntPizza (51 views)
2014-12-09 22:41:13

BurntPizza (84 views)
2014-12-08 04:46:31

JscottyBieshaar (45 views)
2014-12-05 12:39:02

SHC (59 views)
2014-12-03 16:27:13

CopyableCougar4 (59 views)
2014-11-29 21:32:03

toopeicgaming1999 (123 views)
2014-11-26 15:22:04

toopeicgaming1999 (114 views)
2014-11-26 15:20:36

toopeicgaming1999 (32 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!