Riven
|
 |
«
Posted
2005-10-16 18:02:42 » |
|
For a large game I'm working on, I need to do math directly on native FloatBuffers. (Think: transforming vertices to write into a vertex-array for particle-engines) Converting back and forth between float[] and FloatBuffer to do the math just takes too much time, and math on float[] in the Sun client-vm is kinda slow anyway, as there is no bound-check elimination. So I really need to run this app with the Sun server-vm, and distribute it to everyone using this game.
The problem is the JRE license. For this game, it's just no option to let players download the JDK/SDK, it's just too big (59MB). Further, the JRE license allows no modification whatsoever on a distributed JRE, so I can't replace the client-library with the server-library (DLLs in this case). Adding the server-vm-library in the right directory does the job also, but still would be "modification" of the JRE.
Now, is it legal to distribute the Sun client-vm, and let the game download the server-vm library writing it to /bin/server/ and using it the next time the game is launched by changing the vm-args?
I can't wait for Java 1.6 which might (or might not) have two-tired compilation (client+server), and I don't really want to break the JRE distribution license. What are my options?
|
|
|
|
Matzon
|
 |
«
Reply #1 - Posted
2005-10-16 18:17:28 » |
|
Unless it's some big app for large company usually in the spotlight I would just ship it with the modified VM. The modification does not change the runtime in any negative way - and still consists of sun components. IANAL!
|
|
|
|
Riven
|
 |
«
Reply #2 - Posted
2005-10-16 18:37:59 » |
|
Yeah, that's only reasonable. But it would break the license.
IIRC what Cas said, "puppygames"-games also break the license, but there is no way to prove it, as it's nicely packed by MoleBox. Might be worth the $59, dunno yet.
What if my game would be a hit (~0.01% chance of that happening), would I even be allowed to distribute the JDK, or only the JRE?
|
|
|
|
Games published by our own members! Check 'em out!
|
|
princec
|
 |
«
Reply #3 - Posted
2005-10-16 18:38:48 » |
|
I don't break any licenses  FWIW you are freely allowed to distribute the server VM with the JRE. Cas 
|
|
|
|
Riven
|
 |
«
Reply #4 - Posted
2005-10-16 18:41:49 » |
|
Okay, thanks! I wonder when Jeff comes around and mentions the legal-advice-thingy again 
|
|
|
|
Raghar
Junior Member  
Ue ni taete 'ru hitomi ni kono mi wa dou utsuru
|
 |
«
Reply #5 - Posted
2005-10-22 17:43:20 » |
|
You are alowed to freely distribute add ons to JVM like MIDI databank, server VM, and ... additional libraries required by your application. (IIRC if your application would require part of SDK like appletviewer, or pack, you are alowed to distribute it too.) Only restriction I recall is requirement to don't break existing Java installation.
Using a simple program that prints a stupid text on console as an excuse to distribute 5MB worth of MIDI databank used by Java unrelated program would be practice to be frowned uppon.
If you look around you'd find a resource that explicitly names an examples of Java parts that are for sure alowed to distribute with your application. (Server VM, and MIDI databank are named in that document.)
|
|
|
|
|
Riven
|
 |
«
Reply #6 - Posted
2005-10-22 20:59:28 » |
|
My plan was to remove the client vm DLL then, as it's not used, but that would be modification... oh well, the moment Sun sues me for it, I'll add it back...
|
|
|
|
Vorax
Senior Member    Projects: 1
System shutting down in 5..4..3...
|
 |
«
Reply #7 - Posted
2005-10-22 21:20:25 » |
|
I'e stripped several things out of rt.jar and a few other places to reduce my download size. Is this breaking the license? The embedded JRE doesn't do an install, so it can't break any existing JRE's - infact, the user would pretty much have no idea it's there.
|
|
|
|
swpalmer
|
 |
«
Reply #8 - Posted
2005-10-22 21:36:13 » |
|
I'e stripped several things out of rt.jar and a few other places to reduce my download size. Is this breaking the license?
Yes.
|
|
|
|
kevglass
|
 |
«
Reply #9 - Posted
2005-10-22 21:53:54 » |
|
Slightly more wooly if you were to molebox your VM including a launcher that could only ever run your game?
1) There wouldn't be any implication that your "VM" was a Java VM 2) It would be difficult to prove that the executable was actually Java (since molebox encrypts the whole sherbang) 3) It wouldn't be break the core reason for not wanting stripped VMs to be distributed (dilution of the the Java brand in relation to the Java VM Spec)
I'd be interested to know what people think, or even better a formal answer. I mean, effectively, isn't this equivilent to native complialtion from an external point of view?
Kev
|
|
|
|
Games published by our own members! Check 'em out!
|
|
swpalmer
|
 |
«
Reply #10 - Posted
2005-10-22 22:04:17 » |
|
The molebox idea is quite evil  . It is effectively "stealing" the JRE binaries, or the bits you care about. I can't see anything in the license that allows you to do it.
|
|
|
|
kevglass
|
 |
«
Reply #11 - Posted
2005-10-22 22:55:49 » |
|
Agreed, definitely not explicitly allowed - but explcitly denied?
Its a real shame if it is - it would allow games writers round here to produce sub 5meg games for windows (with version for Mac and Linux made available), drawing people into the idea that Java can be used for good games - while still maintaining the ideal and intent of the license..
Its not like the license is intended to prevent distribution - since thats explicitly allowed.
Shame Shame.
Kev [goes off to delete his 4.4 meg install of his latest casual game]
|
|
|
|
Vorax
Senior Member    Projects: 1
System shutting down in 5..4..3...
|
 |
«
Reply #12 - Posted
2005-10-22 23:40:20 » |
|
Yes.
Well, I thought so  What's the point of a programming language if the things you build with it won't be used? No one wants to download a JRE and no one wants to download 15MB of bloat either. Sun should put together an ultra-light distro that can be included with downloadable applications. Either that or they should officially acknowledge and aprove solutions like Molebox.
|
|
|
|
swpalmer
|
 |
«
Reply #13 - Posted
2005-10-23 02:18:27 » |
|
What's the point of a programming language if the things you build with it won't be used? No one wants to download a JRE and no one wants to download 15MB of bloat either.
Sun should put together an ultra-light distro that can be included with downloadable applications. Either that or they should officially acknowledge and aprove solutions like Molebox.
Sun made Java Web Start so the VM is shared in a safe way. It's actually going to cause less downloading in the long run. Even if your customized JRE is only 35% of the original size, that's only 4 downloaded games until you start wasting bandwidth again.
|
|
|
|
Riven
|
 |
«
Reply #14 - Posted
2005-10-23 02:31:15 » |
|
Sun made Java Web Start so the VM is shared in a safe way. It's actually going to cause less downloading in the long run. The problem is that there won't be a long run! The initial JRE never gets downloaded because it's so damn big. We are talking about casual gamers here, and 56k modems.
|
|
|
|
kevglass
|
 |
«
Reply #15 - Posted
2005-10-23 02:38:31 » |
|
Yeah, the lose target that indie developers throw around is 5meg for the demo version.
Kev
|
|
|
|
Vorax
Senior Member    Projects: 1
System shutting down in 5..4..3...
|
 |
«
Reply #16 - Posted
2005-10-23 03:33:21 » |
|
Sun made Java Web Start so the VM is shared in a safe way. It's actually going to cause less downloading in the long run. Even if your customized JRE is only 35% of the original size, that's only 4 downloaded games until you start wasting bandwidth again.
If they don't have a JRE, they don't have Web Start. sarcasm warning...Do you think RealArcade, MSN Games, Big Fish, etc. will mind including a link to Sun's website to download the JRE? They of course will have to support users trying to install the JRE as well, because they have to support the visitors to their site (some of them are paying members). Do you think RealArcade has a launch wrapper for Web Start? Big Fish? MSN, since they are owned by Microsoft, surley they won't mind supporting a Sun JRE or making the launch wrapper for it. Infact, I am sure all those sites will be willing to make a WebStart wrapper for us Java developers. Java pwns the market in gaming, so they will have to support it. Do you think the customers will mind downloading Java, installing it, then returning to the page to download my game with WebStart? It'll probably only take 15-40 minutes total (depending on internet connection and speed reading EULA's) to get my game installed, with just a few web sites to visit and a dozen or so clicks. ....or do you think the customers would go to the next game on the list of hundreds and download "BeChuzzled" at 4.2MB? I doubt they would skip past my game, simply because the portals would have told me to take my months of work and redo it in a "normal" programming language and the customers would have never seen it. 
|
|
|
|
swpalmer
|
 |
«
Reply #17 - Posted
2005-10-23 04:23:03 » |
|
Sun made Java Web Start so the VM is shared in a safe way. It's actually going to cause less downloading in the long run. The problem is that there won't be a long run! The initial JRE never gets downloaded because it's so damn big. We are talking about casual gamers here, and 56k modems. People still use 56k modems?  I think the majority of internet users have high speed now. Sun has done some work to get vendors to pre-install the JRE, surely that has helped some. They have indicated that they are looking into ways to reduce the JRE download size and possibly make it download 'chunks' in an on-demand manner... but quite frankly there isn't much point. Downloading the JRE (15MB) takes so little time these days that it doesn't really matter. If the user chooses to launch your game it will probably take less than three minutes to download (often less than one minute). I would wait that long to see what a game was like if it caught my attention enough to press the "launch" button in the first place..
|
|
|
|
Riven
|
 |
«
Reply #18 - Posted
2005-10-23 10:45:25 » |
|
>50% in the USA is using dail-up connections. So much for 1-3minutes, think 50 minutes. You certainly don't want to loose 50% of your sells, would you? The other 50% that's left often don't want to install Java. "Nah, it will make my whole computer slow and unstable". And since the GC runs in insane high priority, they're sometimes even right, not to mention the browser plug-in loadtimes on <1GHz computers. Even my friends had to be convinced. "Maybe tomorrow...", and we all know what that means. Only showing screenshots could convince them to head to Java.com, which used to be like a portal with the JRE download-button somewhere 'hidden' inside a bloated layout and a Flash movie. I'm kinda surprised they seem to have a 1 button site now. Good thing. I'm afraid Java will never loose it's bad reputation, so you're left distributing it behind their backs, hoping for betters days. Last but not least: at indiegamer.com they seem to have a few rules from years of experience: - With every additional 10MB over the initial 5MB install-size you'll loose 50% of your players
- With every additional step required to play your game, you'll loose 50% of your players
This is for the casual-gamer market, ofcourse.
|
|
|
|
princec
|
 |
«
Reply #19 - Posted
2005-10-23 17:18:22 » |
|
Etc. etc. etc. Strip the JRE bare, Molebox it, and no-one is any the wiser. Except Sun lose another opportunity to pimp their Java brand because you can't mention it any more. I removed all references to Java from my splash screens etc. It's their own fault. In fact I don't even try to convince anyone that Java is good for games development any more because of this glaring issue. Cas 
|
|
|
|
g666
|
 |
«
Reply #20 - Posted
2005-10-23 17:55:04 » |
|
I removed all references to Java from my splash screens etc.
Really? I thought i had seen a java logo on the alien fluz splash screen. Moleboz sounds like a good idea, but it would be better if people were more educated into having the jre installed anyway, I read on a blog of the idea of a jre running a daemon on startup (multi tasking vm) and this seems like a god idea as long as it isnt to intrusive. (sun would probably make a "JAVA LOADING" splash on ur screen at startup tho....)
|
desperately seeking sanity
|
|
|
princec
|
 |
«
Reply #21 - Posted
2005-10-23 21:35:17 » |
|
Couldn't be bothered to change Flux. Spent far, far too long on that game. The JRE does not need to be pre-installed by end users. It needs to be pre-installed by Microsoft. Or very small. Or have a more useful license. Cas 
|
|
|
|
swpalmer
|
 |
«
Reply #22 - Posted
2005-10-24 02:47:43 » |
|
>50% in the USA is using dail-up connections.
So much for 1-3minutes, think 50 minutes. You certainly don't want to loose 50% of your sells, would you?
Well I couldn't find any exact data, but based on the information here: http://www.internetworldstats.com/am/us.htmThe projection for 2005 would indicate that 2005 is the year that broadband overtakes dial-up. "At the national level, 36 percent of US online users accessed the Web through a high-speed connection in the fourth quarter of 2003" My interpolation is admittedly crude. Taking the 26.2 million high-sped households from 2003 as 36% and multiplying by the appropriate factor to get the project 41 million households in 2005, I get 56% of the users having broadband in 2005. I had thought that I heard the 50% mark was passed already because of the lowering costs of broadband etc. At any rate the trend is clear. The dial-up market is shrinking and the broadband market is growing. And it is reasonably safe to assume we are somewhere near the 50% mark now. So it makes sense NOW to target broadband users. Not that I excuse Sun for not reacting fast enough to serve the dial-up users, but it is clear that even if they did nothing, that particular problem would eventually take care of itself. I think we are at that point. Sun is a bit late, sure it will be great to get the dial-up market as well, since they are still significant, but the majority of your customers are likely on broadband in North America. I disagree with PrinceC's strategy. By removing Java from any mention, and still using it internally I consider that stealing the JRE or the bits he likes. I do agree that Sun didn't react fast enough with a legal solution, but I stop short of endorsing the moleboxing of the JRE simply because I think it is in clear violation of the license. All Sun needed to do was to ADD a stipulation to the license that if you bundled a private JRE, stripped down or not, that you are required to display a "powered by Java technology" message and logo clearly on your product. That would start to put a much more positive spin on Java, particularly as a gaming platform. Now Cas' has gone and done the opposite (removing mention of Java) and obviously that only hurts Sun's efforts. Time to wake up, Sun!
|
|
|
|
princec
|
 |
«
Reply #23 - Posted
2005-10-24 11:07:31 » |
|
I disagree with my strategy too, and I completely agree with your final summary about what to do, but it leaves Sun in the thornily difficult position of allowing some numpty to produce a PuppyGames Java VM and actually sell it without having given Sun a bean. I did ask Chris about licensing the VM but the price was going to be hundreds of thousands of dollars, and seeing as I've made a staggering total of $3000 out of Puppygames ever, that wasn't going to happen. Cas 
|
|
|
|
swpalmer
|
 |
«
Reply #24 - Posted
2005-10-24 15:20:51 » |
|
... but it leaves Sun in the thornily difficult position of allowing some numpty to produce a PuppyGames Java VM and actually sell it without having given Sun a bean. Distributing a complete yet private to the application JRE still doesn't require that you give Sun a bean, and you don't even have to mention Java is used at all. So it's hard to imagine what Sun's hang-up is. They could be getting the Java brand some significant screen time if they tweaked the license.
|
|
|
|
princec
|
 |
«
Reply #25 - Posted
2005-10-24 21:41:10 » |
|
Ok then, I'll sell my cut-down VM, and call it Puppygames VM. The private launcher executable takes two parameters, one is a comma separated list of URLs, the other looks suspiciously like the name of a class that might implement public static void main(String[] args). It won't be called Java, nor will it run Java code, officially. In fact most Java code will break because it'll rely on AWT and other stuff I don't supply. Think again about it. Cas 
|
|
|
|
g666
|
 |
«
Reply #26 - Posted
2005-10-24 21:52:45 » |
|
Tthis is of topic but why is it called puppy games / shaven puppy, it really puts me off from even thinking about buying the games (which actually are not all that bad).
|
desperately seeking sanity
|
|
|
Jeff
|
 |
«
Reply #27 - Posted
2005-10-24 22:30:58 » |
|
Sun's "hang-up" has always been fear of platform fracture. (Look at the mess in the J2ME space were we allowed that to happen if you want some idea why its a bad thing...)
Having said that, I did my best with the JGP JSR to try to cram a properly blessed reasonably minimal and game specific variation down management's throats.
Woudl have worked too if anyone had cared enough to pony up the resources to build it. **sigh**
May yet come around to that again some day but Im not going to try myself again before I see signs that management will give it the necessary support.
|
|
|
|
erikd
|
 |
«
Reply #28 - Posted
2005-10-24 22:40:41 » |
|
Until that's going to happen, swpalmer's solution sounds like a good deal and very easy to accomplish. to ADD a stipulation to the license that if you bundled a private JRE, stripped down or not, that you are required to display a "powered by Java technology" message and logo clearly on your product
|
|
|
|
princec
|
 |
«
Reply #29 - Posted
2005-10-24 23:51:46 » |
|
Woudl have worked too if anyone had cared enough to pony up the resources to build it. **sigh**
Hey Jeff man, I've got that damned VM spec sitting here and it runs all my games :/ Why don't you wave Ultratron or Tribal Trouble under some top brass' nose and see if they smell the coffee? You never know they might see the light. I've said that as a product you could flog my mini-VM for $100 each as a "boxed product" to game devs around the world and it'd be a nice little earner with bugger all impact on the rest of J2SE. Cas 
|
|
|
|
|