Yes, Jet is a perfectly sensible and legal way to do things, and I even already own it. It’d make my games somewhat faster and smaller too. It’s just an unnecessarily complicated step to deal with for the piddly little games I write. I certainly don’t need the performance Jet gives me.
I might add a Java logo back to my games and see if Chris would like to get a bit of frontpage exposure for Ultratron or something for a few days and see how it does.
Compiling with JET is legal as long as you don’t distribute parts of the Sun JRE with it, which you will have to if you use any AWT/Swing in your app. If you do, you have to ship the awt dll with your app to make it work, and if you ship that dll you have to bundle the rest of the JRE with it.
So it might make sense if you don’t use any Sun JRE parts, otherwise it only makes sense if you absolutely need JET’s performance.
As I understand it (which may be badly : ) JET compiled applications include all the JRE classes required to comply with the license (as Excelsior must comply with the license too).
The above was not quite true for the previous versions of Excelsior JET and does not apply at all to the latest Excelsior JET 4.0 which contains fully licensed Java SE API and makes executables that do not need the Sun JRE to run, no matter which APIs they use.
However, if you’re using LWJGL, you won’t need all that stuff, and you can use JetPerfect to throw out all unlinked code and give you teeny weeny executables. The Alien Flux demo was under 5mb when JetPerfected.
I don’t think you’ve got that option in JET 4. Since they become a Java Authorized Licensee they can no longer legaly reduce the download size. I’m trying to read some of their forums to get an answer. The closest I’ve got is this:
With JetPerfect, no JRE binaries are deployed unless required, which means the JRE is not being redistributed. Ergo you may distribute what you wish. For example you can ship with SWT instead. Or LWJGL
Sure go tell them that maybe they hire you as their publicity man. Are you even one of their employes ? Do you know of every possible interest Sun has in the market and every investement they have ? If not : then this is pointless. They don’t have a JRE just for indie games in the < 5Mb area. They have a runtime for mobiles and perhaps thats what you should be using no ?
We are not discussing applets here. This is about the jre that is suposed to be downloaded by all the people interested in using java technology.
Using Jet creates an executable right ? It works the same way for all the people no mater what cpu they are using.
Using a javavm it may detect what cpu the user has and generate better machine code at runtime for that particular user or more compatible one.
LOL! The reality is, there is very little code that needs to be CPU specific to achieve very fast execution. Believe me, Jet is f a s t. It’s like the server VM, except it starts up in an instant. In the context of small indie games it’s absolutely brilliant, and after all, for large indie games, the whole embedded VM thing just isn’t really an issue (see Tribal Trouble for the sole example of a big indie pure Java game with an embedded VM).
I’m referring not to Sun marketing in total, but to the area that affects end users of games and such. I’m referring to the applet disaster - where Sun appeared to have a tremendous advantage and then lost to technologies such as Flash. The same sort of thing is happening in the area of small downloadable games, where Java should also have a great advantage. Creating awareness among the end user of such things could help drive sales of Java enabled devices such as mobile phones, so the idea that this is totally irrelevant to Sun seems extreme.
[quote]Do you know of every possible interest Sun has in the market and every investement they have ? If not : then this is pointless. They don’t have a JRE just for indie games in the < 5Mb area. They have a runtime for mobiles and perhaps thats what you should be using no ?
[/quote]
I’m not attempting to suggest marketing strategies for all areas of Sun. I’m not talking about anything that has to do directly with JME. This thread is NOT about creating a JRE just for indie games. It’s about a modification to the license that would allow a very particular case of omitting parts of the standard JRE,leaving the remain parts unmodified. This is about anything that creates work for Sun outside of thinking up some new license terms. This isn’t about marketing J2EE or any particular aspect of Java. It is simply an idea to enable more practical distribution methods for embedded VMs in a manner that should not harm the Java brand and could potentially give Java greater exposure in the gaming market. The idea does not apply to cases where the embedded Java would be used to run arbitrary content, such as games on mobile devices or set-top boxes, where the JRE is built-in already. Since the PC doesn’t have a built-in JRE and we already are allowed to embed our on copy for exclusive use of our own application, I think this creates a special case.
If there was zero interest from Sun in the gaming market they would not have agreed to form the GTG. The fact that Sun is focusing on aspects for gaming that offer more direct commercial value to them makes perfect sense. But like it or not Java has a questionable reputation among casual users, if they are aware of it at all. The idea behind the license change would be to increase awareness amoung the people that would be benefiting from java technology without normally being aware. There is hope in that some people are aware that Java on a mobile phone means that they can download games for the phone. Most game devs for PCs don’t seem to think Java is capable or worth using. If there appeared to be more people using Java in PC games, simply because the game maker was required to display a “powered by java” message as compensation for being allowed to embed a stripped down JRE, then maybe it would slowly work in Sun’s favor to get more attention to Java.
Above we were discussing the value of displaying a “powered by Java” message. I used the applet case to demonstrate that Sun already does this for some things. We are NOT taking about a JRE that is supposed to be downloaded by all the people interested in using Java technology - I don’t know where you are getting that idea.
You realize that if they allow people to omit files from the jre it will affect everyone who use the jre don’t you ?
You mean taking almost everything out. The remaining part is javaw and a couple classes that go into java util and java lang classes. Why don’t you want to use the JME again ?
Theres a reason why Sun don’t allow other people to mess and redistribute their jre. You see when shit happens its them that people will criticise and try to get compensation not from the guy who screwed up with the installation and isn’t worth blaming. I don’t call this good publicity at all.
Yes and then people would start screwing up by messing with jre files and you would see a lot of java applications wearing the Java logo crashing more than windows applications.
Heres a very simple solution. When you want to sell your indie game tell your buyers its a java game that runs with version X.Y or bigger and give them the link to sun for them to download and install the jre.
It’s that easy. It takes about half an hour to download the jre from sun with a modem and they only do it once so this isn’t a problem. If they like the screenshots and the description of your game a modem will not be a problem.
If you just want to hide any traces of java from your games then there are much better solutions. Use Jet or whatever its called then strip/obfuscate your executable.
Ok its 0.1 interest then. Not exactly Microsoft games division but its better than nothing.
It will only effect those to which that particular aspect of the license applies of course. Those that are distributing their own embedded JRE that can’t be accessed outside of their product — yes that DOES include a lot of people. But it does not include distributions of the JRE such as those found in mobile device or bundled with a computer system - any case where the JRE is accessible outside of a specific application is specifically excluded. How many times does this need to be repeated?
Because JME is not the same thing at all. It would mean ADDing things to JME. Possibly improving performance of JME etc. JME does not include the HotSpot JVM for example. JME is a totally different thing. It is meant as a shared VM on resource constrained devices. I’m not talking about a shared VM. That’s the whole point. The fact that the JRE will not be shared is what enables the feasibility of chopping up the contents without effecting “compatibility”. This is about a very small and, if done correctly, undetectable (outside of reduced download times and distribution size), modification to the existing practices of many programs that use Java already.
What “installation” ??? This is an embedded JRE we are talking about. Something that is inaccessible to anything other than a specific application. It is 100% compatible with the standard JRE in the context of that application because it IS the standard JRE as far as that application is concerned, seeing as the only thing that could be excluded would be parts that the application did not ever use and is therefore unaware of.
Pure speculation on your part. Does AlienFlux crash more? you seem to be under the impression that there is something tricky to this. There is not. Don’t include the bits that your application can’t possibly ever use. That’s all there is to it. It only gets even remotely tricky (i.e. not hard at all) when you start doing reflection to load classes from the standard JRE, or where the JRE itself might do this. But that is manageable.
[quote]Heres a very simple solution. When you want to sell your indie game tell your buyers its a java game that runs with version X.Y or bigger and give them the link to sun for them to download and install the jre.
It’s that easy. It takes about half an hour to download the jre from sun with a modem and they only do it once so this isn’t a problem. If they like the screenshots and the description of your game a modem will not be a problem.
[/quote]
It is simpler (and more reliable) than that if you just use Web Start. But that would be missing the point (again).
[quote]If you just want to hide any traces of java from your games then there are much better solutions. Use Jet or whatever its called then strip/obfuscate your executable.
[/quote]
Where do you come up with this nonsense? I specifically made it a requirement that you MUST prominently announce the use of Java technology. I repeated it several times. You were arguing about it having any marketing value earlier. Now you are just making things up to argue about and aren’t following the thread at all.
So improve it yourself. Adding things is not a problem, removing things is. You should be asking them to add things to the JME not removing things from the JRE. For small games you won’t even notice the JIT is not there. For bigger games 16MB won’t even be a problem. So you don’t have a problem in any case.
You still don’t get it right ?
Geez where should i start
First Alien Flux isn’t a statistic.
Second things don’t work that way in the real world. People would find ways to abuse it. If you had a better understanding of how the market works you would understand what im saying.
Third a company like Sun don’t just make decisions based on forum discussions and browsing indie game sites. They have marketing analists and lots of other paid employes who can help them make good decisions and still the market is very unpredictable.
Allowing people to freely decide what the JRE is, be it embeded in a program or not, would be a disaster and would make Sun loose control of their own technology and people loose confidence on it with all the problems that would happen.
Unless you have a very good understanding of how Suns market works, something that Suns employes paid to study it have, your speculation is as good as anyone else. This “i know better than Sun” atitude is starting to get tiresome.
But you need a JRE to use Web Start right Sherlock Holmes ?
[quote]Where do you come up with this nonsense? I specifically made it a requirement that you MUST prominently announce the use of Java technology. I repeated it several times. You were arguing about it having any marketing value earlier. Now you are just making things up to argue about and aren’t following the thread at all.
[/quote]
You have misunderstood. I was just trying to give you a better alternative. Announcing Java tech is not just about putting a picture of the java dude in your game. People must be able to check if the jre is actualy there.
Then i think Sun can autorize people to legaly embed a smaller Java VM in their apps under certain conditions.
Nobody is asking THEM to remove anything. Writing the equivalent of HotSpot is a non-triial task that I don’t think is reasonable to expect of the game developers that would benefit from a reduced distribution size. Re-doing all of the other bits that could be needed doesn’t seem to be practical either.
How are you relating execution speed to the size of the game content? (small game = JIT won’t matter ???). We just don’t seem to be communicating here.
No, it is one sample point… collect some more then we can get to the statistics. You don’t have any that supports your point I’m aware of.
I know, like they already are with MoleBox :). Why would the revised license be any worse? (below you see to suggest that this is already allowed in certain conditions anyway.) What example do you have of the abuse you speak of that would not be violating the license? The details of this is really a job for the lawyers and Sun to work out I suppose… but so far I’m not seeing any evidence to support the idea that some harm would come to the Java platform as a result of these proposed license changes.
[quote]If you had a better understanding of how the market works you would understand what im saying.
[/quote]
Perhaps this is true.
I know, the forum discussion and indie game developers are simply suggesting that a proposal be made to Sun such that they might direct their marketing analysts and other relevant employees to take a look at the idea. We aren’t deciding things for Sun, we are simply trying to influence Sun’s decisions in a way that would benefit us… as users of Sun’s product this seems to be a reasonable thing to attempt. Aren’t we allowed to use the suggestion box?
Considering that what we propose is happening already and so far there is no disaster nor evidence to suggest that one is coming, I am hesitant to accept your position.
[quote]Unless you have a very good understanding of how Suns market works, something that Suns employes paid to study it have, your speculation is as good as anyone else. This “i know better than Sun” atitude is starting to get tiresome.
But you need a JRE to use Web Start right Sherlock Holmes ?
[/quote]
Yes. I suggested Web Start to eliminate the need for the user to choose a specific JRE that is compatible with your product. Let Web Start deal with that part. I was merely getting at this part of what you said, “…tell your buyers its a java game that runs with version X.Y or bigger and give them the link to sun for them to download and install the jre.” The “simpler (and more reliable)” part that I referred to was to let you code the versions of the JRE that your product is compatible with in a JNLP file to make it easier on the user, that’s all. On some platforms this means that Web Start will download an appropriate JRE if it is not already installed. That seems simpler than asking your users to do it manually every time.
(On windows I believe there is an active X control that can deal with much of the steps of getting a JRE installed for you. )
You have misunderstood. I was just trying to give you a better alternative. Announcing Java tech is not just about putting a picture of the java dude in your game. People must be able to check if the jre is actualy there.
[/quote]
For what purpose? The only thing i can think of is so people didn’t claim a product used Java technology when it didn’t. Is there really a need to be able to check for this? If I use some open source code in my project and follow the license terms and include a message saying what I did in my product, do I still have to make sure people can check that I REALLY used that code? How?
Well I guess that is what we are talking about, the “conditions.” Isn’t the bulk of this thread all about getting some more practical conditions in place? If so, is it just that you disagree with the conditions that I proposed? And, if so, what exactly is your argument then?
I am thoroughly confused now.
And sorry for being a bit harsh in this thread. The failure to communicate effectively is making me a bit snappy.
swpalmer
You have been clear enough… several times. I completely understand your points and agree with them.
Its a very simple point that some people seem bent on complicating.
You are asking them to change the license to let you remove parts of the JRE in certain circunstances like embeding the java vm in an application.
No it doesn’t matter. Most indie games < 5Mb are simple enough and use only a very small fraction of the CPU.
Collecting one sample point or two for three or half a douzen of them for that mater doesn’t make a statistic. A statistic is a collection of data done under certain circunstances that make it valid. You still have to choose the samples right and make sure you have a big enough collection of samples you can claim it’s representative of your population. This is what a statistic is about.
I don’t need to prove anything because i don’t want them to change anything. Im not happy with the way things are but im not bothering myself trying to push them about doing anything to change it. I prefer to use the technology available and work on the missing parts myself. Don’t count on Sun doing anything this century to make Java the best platform available for games.
That doesn’t let you claim there isn’t none only that you are unaware of it.
Of course. But also try to understand we may not know everything about their investments and strategy. Companies like Sun have paid prophessionals to collect market data, analize it and make management decisions. They also have many areas of interest besides what we know that are important for their technology.
Because its only being used sporadicaly not in a generalized way. I think we can agree that the more changes people are allowed to make to the JRE the bigger the chances to someone do it wrongly and create a bad image for Sun.
Open-source is a different case but any open-source project must make the source code available. With the java vm its obvious that if you want to use the java logo you must be able to prove that you are actualy using java technology under the circunstances allowed by a Sun license. Otherwise how would they enforce and control their license terms ?
Perhaps one of these conditions is paying some money to get customized java vm for a certain app. If you have enough bucks to pay them to for a custom license for your indie game im sure they wouldn’t mind about it. But we know this is not a realistic scenario.
I still don’t understand why not asking for adding what you are missing to the JME won’t be valid solution ?
[quote]I still don’t understand why not asking for adding what you are missing to the JME won’t be valid solution ?
[/quote]
There has been talk about a smaller, game specific JRE for years. A release has even been announced a few years back, but it never surfaced.
Realistically speaking, it isn’t going to happen and if it is, it will take a long time.
The point is that we want to propose a legal way for distributions which are not java, but use parts of the JRE under the hood, invisible for anything else other than the application itself.
It is like a shortcut to deal with the problem that the Sun JRE is not deployed everywhere and that it’s too big for many (maybe even most) to install.
What Sun would get out of it is more acceptance of Java in the indie games world.
Maybe we as a community should join forces with the JET guys somehow in their discussion with Sun about their JETPerfect issue which has, as I understand it, exactly the same problem. Sun is denying them to compile an exe of a java program which omits parts of the JRE in order to make the .exe smaller, even though the compiled exe is not a JRE at all (from a user’s point of view).
Many indies are considering JET to create easily distributable .exe files, but the Sun license makes this difficult again because it makes it impossible to make the compiled exe small enough.
Also true. Just throw some particles in… or a toys like springs, swarming behaviours etc. Having system requirements of 3ghz and up for a casual game would be plain silly. Without JIT java wouldnt be an option for me.