Is there an all in one solution to deploy to all three, to create the installer and everything else properly? If not, how are you implementing all three, with as little change to the code as possible. Thanks!
http://javagamesfactory.org - create a user-account (this is to ensure you and only you can edit the details of your game and make updates), go to the games page and click “create new game”, supply the screenshot, the icons (if you have any), the description, etc.
Then upload your JAR files, specify the main-class, specify what JVMs it runs on, test it (!), click the publish button, and voila - a ready-made JNLP file that will install on all 3 platforms with no further effort from you.
Also automatically integrates as many of the standard 3rd party games libs semi-automatically - you just need to choose the lib + version nummber you’re game uses, and it will be included in the installer automatically. Does require that someone has already uploaded the lib + specified what it needs; it’s a simple process, and I’m working on getting more lib authors to do it, but the actual lib + version you need may not be avialble for this auto-inlcude right now, in which case you’ll have to supply them yourself as JAR files.
Thanks that sounds great! But maybe this is another topic, if I make it a WebStart then how can I sell it for a profit? I thought I should make installables for each system and sell the full version,
InstallAnywhere (Now v5.0*) creates installers for a bunch of platforms. You can embed any VM you want with it.
Should be a lot of alternatives ofcourse.
* That version might be very hard to find, but it’s free, so definitly worth the hassle!
If you go the WebStart route, just cripple the game in some way and sell activations codes.
Hm I kinda look to Cas’ Puppygames.net to see what I should do. It looks like he makes EXEs for Windows, SHs for MAC, then Webstart for Linux. I thought that Mac could do Webstart easily, so I’m curious why its a shell. I’m sure he thought it thru, Webstart was a no go except for Linux, which I can only guess because it was too complicated to make an install for.
Also the InstallAnywhere solution looks really good except it costs an arm and leg …
As can Windows. Effortlessly.
Really, he probably wanted to make it a .app bundle (.dmg would be best of all), but couldn’t be bothered to go that far
IIRC he’s stated several times that the webstart version (the “LINUX” link) works on mac perfectly well. He’s just trying to make it seem as “normal” to the OS user of each OS as possible.
Technically speaking, though, that means:
- windows: exe
- OS X: dmg
- linux: RPM + DEB
…and he’s not done the last two. But c.f. his many previous comments on not caring about linux anyway (market far too small, users dont register games).
Cas does use an .app bundle on the Mac. Packaged as a .zip since it is easy to do it that way when you don’t have a Mac. Otherwise, Blah is correct. a .dmg (compressed disk image) with the .app (Application Bundle - i.e.fancy folder) is the preferred method to distribute a Mac app.
Ah, yes, of course. From the OP’s words, I interpreted that the zip contained the game without .app wrapping. Oops!
What program does Cas use to make the Mac installer? If I want to package my game for Mac, do I need to use one, or can a Windows program do it? Too bad I don’t have any friends that have a Mac. :’(
You can package for the Mac without a Mac. Basically an application bundle is just a special directory structure. You will only need one copy of the mac java launcher binary. Technically you can grab that from a .zip of Puppygame’s Ultratron or somthing - but I don’t know what the details are on the legality of distributing and using that binary without actually owning the Mac OS that it came from. I suspect it is ok…
There are some articles on java.sun.com about making your application more Mac-like. They explain the structure of an Application bundle.
Here are the details: http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/index.html
So just an endordsem,ent. I’;ve been a fan of InstallAnywhere for al ong time. They used to have a free basic version but I think that went away when Macrovisio bought them
Actually, I use Install Anywhere at work, and for the Mac version of our product I specifically don’t use it. In general “installers” should be avoided on the Mac. In the case of InstallAnywhere it wasn’t doing anything useful for the Mac environement and was very un-Mac like.
You can get an Ant script to make your Mac Application bundle very easily. For Linux and Windows I continue to use InstallAnywhere.
Note also that there is a reference implementation of an installer that looks a great deal like InstallAnywhere that was done as part of JSR-38
In fact, I wrote about it here almost exactly two years ago. http://www.java-gaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=tools;action=display;num=1044023986
The reference implementation can be found here:
http://www.openinstallation.org/
Cool. Ill have to try it out!
Does anybody have experience with Install4J?
http://www.ej-technologies.com/products/install4j/overview.html
It looks pretty cool. It’s a multi-platform Java Installer made from Java made for Java. Seems like it can do everything you like. It also integrates into Ant if needed!
Anybody tried?
I used launch4j
http://launch4j.sourceforge.net/
But I think it is a cross-platform tool for wrapping Java applications distributed as jars in Windows executables only …