here java java java, good boy!

Discussion in 'Game Development (Technical)' started by george, Oct 11, 2006.

  1. george

    Original Member

    Joined:
    Aug 8, 2004
    Messages:
    343
    Likes Received:
    0
    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
    ________
    WEB SHOWS
    ________
    Property For Sale Pattaya Thailand
     
    #1 george, Oct 11, 2006
    Last edited: Aug 28, 2011
  2. MrMark

    MrMark New Member

    Joined:
    Aug 15, 2006
    Messages:
    11
    Likes Received:
    0
    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 :eek:
     
  3. Sillysoft

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    831
    Likes Received:
    0
    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 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, which is not free, but it's very easy to use. JSmooth 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.

    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.
     
  4. Aldacron

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    116
    Likes Received:
    0
    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.
     
  5. killarkai

    Original Member

    Joined:
    Apr 24, 2006
    Messages:
    38
    Likes Received:
    0
    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
     
  6. oNyx

    Original Member

    Joined:
    Jul 26, 2004
    Messages:
    1,211
    Likes Received:
    0
    1) Eclipse/Netbeans

    2) Netbeans comes with a pretty good one

    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/ProGuard

    5) SVN/Ant

    6) Jet (pricy)/GCJ (tutorial) 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/
     
  7. princec

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    4,873
    Likes Received:
    0
    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 :)
     
  8. stiill

    Original Member

    Joined:
    Feb 13, 2006
    Messages:
    108
    Likes Received:
    0
    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.
     
  9. michalczyk

    Original Member

    Joined:
    Jun 8, 2006
    Messages:
    81
    Likes Received:
    0
    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

    Flow

    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.
     
    #9 michalczyk, Oct 12, 2006
    Last edited: Oct 12, 2006
  10. Dan MacDonald

    Moderator Original Member Indie Author

    Joined:
    Jul 26, 2004
    Messages:
    1,425
    Likes Received:
    0
    This thread needs more Cas.
     
  11. mot

    mot
    Indie Author

    Joined:
    Oct 21, 2004
    Messages:
    439
    Likes Received:
    0
    It's all been said before in other threads. Somebody should really compile a FAQ on this.
     
  12. princec

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    4,873
    Likes Received:
    0
    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 :)
     
  13. raigan

    Indie Author

    Joined:
    Jun 13, 2006
    Messages:
    49
    Likes Received:
    0
    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!
     
  14. princec

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    4,873
    Likes Received:
    0
    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 :)
     
  15. Bad Sector

    Original Member

    Joined:
    May 28, 2005
    Messages:
    2,742
    Likes Received:
    5
    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...).
     
  16. michalczyk

    Original Member

    Joined:
    Jun 8, 2006
    Messages:
    81
    Likes Received:
    0
    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.
     
    #16 michalczyk, Oct 13, 2006
    Last edited: Oct 13, 2006
  17. princec

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    4,873
    Likes Received:
    0
    Tell Chaz, he's the brains behind the site :)

    Cas :)
     
  18. raigan

    Indie Author

    Joined:
    Jun 13, 2006
    Messages:
    49
    Likes Received:
    0
    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..
     
  19. cybermonk

    Original Member

    Joined:
    Aug 24, 2005
    Messages:
    40
    Likes Received:
    0
    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. 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 :)
     
  20. princec

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    4,873
    Likes Received:
    0
    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 :)
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer