View Full Version : here java java java, good boy!
george
10-11-2006, 11:12 AM
ok so if you remember my post long ago about choosing a cross-platform rad development environment, i've been exploring this for some time now, originally opting for c++... well you know java is looking pretty darn good right now after experimenting the last months (yes princec, you heard right). the problem is, there is so much out there, i'm not sure where to start... please give me your recommendations -- i want (prefereably free/open source/widely used/mature):
1) a great modern ide (i think eclipse is the most popular?)
2) a great gui designer (?)
3) which java sdk version should i use? i want to release this product as trialware (commercial grade), so i need a widely used version. however, i don't want to be stuck with older technology, i would like to use the latest java features and benefits. i plan on releasing my app in 6 mon - 1 year
4) an obfuscator
5) version control / build management
6) windows exe generator or whatever it is called, and something similar on the mac
7) and other must have tools for developing a professional grade product
like i said, i would like these tools to be open source and/or free and mature. i want to build my product on an advanced, stable, and open platform utilizing open technologies. (i don't mind paying a little money for some things if i have to in the future, such as a good obfuscator (as long as its affordable) ).
p.s. this is going to be a windows and mac business application (similar to quickbooks, but not as grand). possibly a linux version too, and maybe a pocket pc or palm version later on.
thanks.
george
MrMark
10-11-2006, 11:31 AM
1) Eclipse all the way, best IDE i've ever used.
3)
Your going to need your clients to install Java on their machine. That pretty much wipes out the entire casual games market. A few Java based UML tools I've tried actually include the java SDK in the download to avoid installation problems :eek: This is for a product marketted towards developers.
5) SVN or CVS, can't remember what they stand for, but they are awesome source code version solutions, SVN is the newer one
6)
I've never heard of such a thing, but if its possible to complie java into a win32 binary, then you've just solved 3.
That said I would still consider c++ :p Java is evil :o
Sillysoft
10-11-2006, 02:30 PM
1) a great modern ide (i think eclipse is the most popular?)
Eclipse or NetBeans are probably the 2 most popular free ones.
2) a great gui designer (?)
I think that both Eclipse and NetBeans have a gui designer for them.
3) which java sdk version should i use?
If you want to target MacOSX 10.3 (which maybe 10-30% of mac users have) then you should use Java 1.4. Otherwise, you can go for Java 5.
4) an obfuscator
yGuard (http://www.yworks.com/en/products_yguard_about.htm) is what I use. It's free and works well for me.
5) version control / build management
I use SVN for version control, and apache ant (and my IDE) for builds.
6) windows exe generator or whatever it is called, and something similar on the mac
I use exe4j (http://www.ej-technologies.com/products/exe4j/overview.html), which is not free, but it's very easy to use. JSmooth (http://jsmooth.sourceforge.net/) is another one that's free, but it was a little bit dicey when I tried it out a while ago. For the mac I just use ant with the jarbundler task (http://www.loomcom.com/jarbundler/).
7) and other must have tools for developing a professional grade product
You might want a profiler. There are a bunch out there, but I haven't used one intensely enough to really recommend one. The JProfiler demo worked for me to do a bunch of profiling before releasing.
Aldacron
10-11-2006, 02:38 PM
1) eclipse
2) there's are a few plugins for eclipse, but I don't recall the names offhand
3) 1.4.2 will cover the most bases for you, especially in the Mac market. 1.5 isn't a bad option though for a release 6 months down the road -- but it does cut you out of a segment of the Mac market. I can't remember which version of OS X shipped with 1.5 - maybe it was 10.4. I also don't know the stats on OS X versions. If you don't need 1.5 features, then go with 1.4.
4) can't help you with this one, but I can say think long and hard before using choosing to use one. Most Java game developers aren't using them, AFAIK, and probably for good reason.
5) SVN (Subversion) is leaps and bounds better than CVS
6) Consider that most exe creators are just wrappers and still require the JDK to be installed. If you want something that actually compiles an executable, both Excelsior Jet and GCJ can get you there. Jet is commercial and GCJ is free (part of the GCC toolchain and available on Windows) -- but if you are using any awt components (and probably swing) GCJ won't help you. Also, Jet will still require the awt dll if you are using it, so that won't help you either. Don't even worry about it on Mac. Mac OS X comes with Java preinstalled, and launching Java apps is not a hassle.
Depending on the size of your game, you might consider bundling the JRE on Windows and just creating your own launcher executable. Oddlabs and Three Rings do that successfully with their games.
I often see newcomers to Java worrying about obfuscating code and compiling native executables. In reality, you can get by perfectly fine without either. For a small game, like a match-three or some such, compiling an executable might have more benefit just because of the target market -- otherwise I wouldn't bother.
killarkai
10-11-2006, 08:23 PM
1. Eclipse
2. VE(visual editor) plugin for Eclipse works fine for me
5. I use freepository.com for CVS hosting, you can use it for free under 200MB
1) Eclipse/Netbeans
2) Netbeans comes with a pretty good one (http://www.netbeans.org/kb/articles/matisse.html)
3) Use 1.6. If you want to use generics use -source 1.5 -target 1.5 otherwise the same with 1.4. (Be sure to only use classes/methods from the version you target.)
4) Jarg (http://jarg.sourceforge.net/)/ProGuard (http://proguard.sourceforge.net/)
5) SVN/Ant
6) Jet (http://www.excelsior-usa.com/jet.html) (pricy)/GCJ (tutorial (http://www.cokeandcode.com/node/422)) and for Mac you can just create some zip application bundle. Currently the GCJ garbage collection is very slow, but it should improve in the future.
7) Well, yea... some profiler would be a good idea. Netbeans comes with a good one. And libs... lwjgl (or jogl+joal+jinput) and jorbis.
http://www.javagaming.org/
princec
10-12-2006, 03:30 AM
Pretty much the same sorts of answers as anyone else, except, I wouldn't bother with an obfuscator, as it just makes tracking bugs in released code more of a chore and doesn't actually slow anyone down if they want to crack it or find out how it works.
I can't recommend Jet highly enough if you want to go down that route, it's a fantastic product and turns Java into a true C++ beater.
Cas :)
stiill
10-12-2006, 10:43 AM
Your going to need your clients to install Java on their machine. That pretty much wipes out the entire casual games market.
Not true, if you go old enough. Go onto pretty much any Windows machine, starting with 98 I think, and type jview from a command prompt. There it is, the Microsoft JVM.
Homestead (http://www.homestead.com/) has been distributing consumer Java apps for something like 8 years, and at least while I was there, very few customers had to download a JVM. There were a couple really troublesome JVM versions that we'd force an upgrade on, because of their bugs.
If you use a sufficiently old Java version and run in-browser, your reach is probably only exceeded by Flash. I'd imagine much of Runescape's popularity is due to the fact that it can be played on install-restricted computers at places like schools and libraries.
michalczyk
10-12-2006, 11:06 AM
Not true, if you go old enough. Go onto pretty much any Windows machine, starting with 98 I think, and type jview from a command prompt. There it is, the Microsoft JVM.
If you use a sufficiently old Java version and run in-browser, your reach is probably only exceeded by Flash.
I was going to say the same thing. If you stick to Java 1.1 you will reach nearly as many users as Flash. This is what I'm doing for my (in progress) online applet game. According to my Google Analytics 92% of my visitors have Java installed (and 96% flash). I bet about halft of that is MS Java 1.1. And if you think Java 1.1 is too limited, just check these award winning Java demos I took part in creating:
(done in 1998, using Java 1.1)
Apex (http://www.scene.org/file.php?file=%2Fparties%2F1998%2Ftheparty98%2Fjav a%2Fdemo%2Fapex.zip&fileinfo)
Flow (http://www.scene.org/file.php?file=%2Fparties%2F1998%2Ftakeover98%2Fjav a%2Fdn_flow.zip&fileinfo)
Though they will run somewhat faster on modern systems as they were meant to be seen on 300-500Mhz machines.
The only thing that is really limited in Java 1.1 is sound support. Other than that, for making casual online applet games Java 1.1 fully capable.
Dan MacDonald
10-12-2006, 03:03 PM
This thread needs more Cas.
It's all been said before in other threads. Somebody should really compile a FAQ on this.
princec
10-13-2006, 02:52 AM
I'd say something but can't think what to say, except that there's nothing stopping you embedding an entire JVM in your Windows downloadable. It'll double the size of your distro but no-one cares any more. Java's perfectly fine for casual games.
My advice is to target 1.4.2 by the way for the next 2 years or so which will hopefully give most of those older Macs time to die off.
Cas :)
raigan
10-13-2006, 08:03 AM
the one thing that's keeping me away from java is that alt-tabbing out of Titan Attacks sometimes results in it being horrendously slow when i alt-tab back into it -- it runs at about 1fps.
i managed to get the top score on the scoreboard using this problem/frame-by-frame mode to play through the whole game twice (took most of an afternoon..).
i think java would be a great solution for easy-to-develop openGL games if it weren't for the "random slowdown" thing. alas..
raigan
p.s - my score was removed, which i don't think is very fair -- i didn't cheat!
princec
10-13-2006, 08:25 AM
the one thing that's keeping me away from java is that alt-tabbing out of Titan Attacks sometimes results in it being horrendously slow when i alt-tab back into it -- it runs at about 1fps.
i managed to get the top score on the scoreboard using this problem/frame-by-frame mode to play through the whole game twice (took most of an afternoon..).
i think java would be a great solution for easy-to-develop openGL games if it weren't for the "random slowdown" thing. alas..
raigan
p.s - my score was removed, which i don't think is very fair -- i didn't cheat!
There is no random slowdown, and that problem is absolutely nothing to do with Java at all. It's most likely a video driver problem which trips up LWJGL somehow.
Cas :)
Bad Sector
10-13-2006, 09:06 AM
I would make a game in Java - a language which itself is very good and clean - if i didn't have to use 3rd party JNI libraries (LWJGL) to get good graphics in good speed. With JNI the whole "compile once run everywhere" thing goes out of the window (and already is at the edge with all these JVM 1.4.x vs JVM 1.5.0 vs Windows-does-come-with-java issues).
Also there isn't any standard installer method. JAR is a joke, isn't configured properly in Windows -if at all- and even if it is everywhere configured properly, you get no icon, since it's an archive not an executable.
I don't see the point in using Java if i have to create three different installers, one for each major OS (or even four, there are Intel and PowerPC based Macs now - if i use LWJGL or other JNI lib, i'll need two versions of the lib) using platform specific methods (a .run script or something in Linux, installer .exe in Windows, a disk image bundle in MacOS X).
I could use C++, a portable framework and build the code in each platform. By doing this, i also would avoid distributing JVM with the game (yes it does matter - even if many of your users don't have a problem downloading 20MB files, some will have slow connections - some may even be at work or a netcafe with full USB Flash Drives, or something.... and even if they don't care, you should care because those extra 10MB, or whatever the size it is, are extra bandwidth taken from your server). Not to mention the JVM hell that Linux has (some use Sun's, some use Kaffee, some use other strange VMs...).
michalczyk
10-13-2006, 09:15 AM
I'd say something but can't think what to say, except that there's nothing stopping you embedding an entire JVM in your Windows downloadable. It'll double the size of your distro but no-one cares any more. Java's perfectly fine for casual games.
I agree. I think the extra size, when including jvm, is becoming less and less relevant. BTW, princec, I wanted to say something to you for some time now, :mad: but never had the chance to. So here it goes... (hope you will take it like a man) Basically, I think that your puppy site... KICKS some MAJOR ASS!!! Man that is one neat site you got there. I totally dig the design ! ; -) You should enter a contest with it, a sure winner in my book.
princec
10-13-2006, 11:04 AM
Tell Chaz, he's the brains behind the site :)
Cas :)
raigan
10-13-2006, 02:12 PM
There is no random slowdown, and that problem is absolutely nothing to do with Java at all. It's most likely a video driver problem which trips up LWJGL somehow.
Cas :)
hm.. well, i've never seen it happen with any other games, and i've played a lot of freeware/shareware in the past year.. over 10-20gb worth.
I find it really frustrating that there's no simple solution for writing hardware-accelerated cross-platform games. Flash has got me addicted to write-once-compile-for-multiple-platforms..
cybermonk
10-13-2006, 04:08 PM
I started using java and lwjgl recently. For me, it speeds up my development, because I have a lot of experience with java.
1) I really like IntelliJ IDEA, but it's not free.
4) I can also recommend proguard (http://proguard.sourceforge.net/). I've been using it since the beginning, since the author is an ex-colleague of mine. And I've seen it evolve into a very solid product! Open source btw.
7) JProfiler is a very useful tool, also for fixing deadlocks :)
princec
10-14-2006, 06:25 AM
hm.. well, i've never seen it happen with any other games, and i've played a lot of freeware/shareware in the past year.. over 10-20gb worth.
I find it really frustrating that there's no simple solution for writing hardware-accelerated cross-platform games. Flash has got me addicted to write-once-compile-for-multiple-platforms..
If the window thinks it's in the background it runs with a 100ms delay between updates btw, maybe that's your problem here.
Cas :)
My framework does the same (in dev mode), but I couldnt reproduce that behaviour. And as soon as he clicks on it it should regain focus (it should already get focus if you alt+tab to it)... unless something is really really b0rked with his setup.
vBulletin v3.6.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.