Slashdot Mirror


Sun Pushes Java For Games Market

mysterious_mark writes "Sun has a new initiative promoting Java for game development, according to a story at CNET News." Interestingly, the company is trying to convince game makers that you can make state-of-the-art titles in Java as easily as simpler browser or phone games: "Java also has been used to build a number of simple online PC games, such as card games, but the language can be used to create sophisticated graphics for A-list games, Melissinos said. 'Some people may have the misconception that Java can't do great, high-performance graphics, and that's absolutely not true.'"

76 comments

  1. It's a hardware problem by ObviousGuy · · Score: 1, Troll

    Java can be used to make these A-list games, but the hardware doesn't exist to run them at any reasonably acceptable speed.

    --
    I have been pwned because my /. password was too easy to guess.
    1. Re:It's a hardware problem by Kethinov · · Score: 4, Insightful
      hardware doesn't exist to run them at any reasonably acceptable speed.
      You forget that not all games are first person shooters. A good game of chess online can be done just as fast in Java as it can be in C++ if you're running a reasonably modern computer. Take it a step further and consider empire building games such as Civilization. Those are also easy on the system. Java can handle it quite nicely. Java was built with crossplatform compatability in mind. It's slowness is minimal and a wonderful tradeoff for the fact that I can run a java app in Windows, Mac, Linux, Unix, or any other major OS.
      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    2. Re:It's a hardware problem by GR1NCH · · Score: 1

      Sure the cross platform implications are great, but lets be serious now, what A+ title could be programmed to run at a playable speed in Java? Even the civ builder games like Civ3 have fairly complex 3D Terrain systems now.

      If Sun wants to push towards game development, all the more power to them, but Java is not ready to make any A+ titles in its current state.

    3. Re:It's a hardware problem by Golthar · · Score: 4, Insightful

      Obviously trolling.

      When you are creating a full feature game in Java, you will steer well clear from things like Swing/AWT and libs that will slow down a lot.

      Also, as you can't manipulate hardware from Java, you will always need a library which can do some of the really high speed work for you.

      Java3d can be used, but recently a very popular lib named LWJGL" has come out to deliver direct bindings to OpenGL/AL

    4. Re:It's a hardware problem by Goldberg's+Pants · · Score: 0, Troll

      You could probably pull off turn based strategy games no problem, ones with slow moving or non-existent graphics. But really, Java simply CAN NOT compete with other languages. I mean really, if it could, you'd figure someone would have ported Doom or Quake by now.

    5. Re:It's a hardware problem by Kethinov · · Score: 1

      You're right, Java can't compete with stuff like C++ for overall power. But Java could easily be used to, for example, design a Super Nintendo-like graphics game. Easily. Not everyone wants 3d rendered games you know. Many people like simple 2d sprites in a simple 2d environment. Brings back a cartoony, video-game feel.

      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    6. Re:It's a hardware problem by p2sam · · Score: 4, Informative

      Nitpicking...

      As you mentioned Java3d, you must know that Java3d can either use software or Direct3D or OpenGL, therefore your assertion that Java can't manipulate hardware is only true in the sense that ANSI C can't manipulate hardware.

      Also see gl4java at http://www.jausoft.com/gl4java.html

    7. Re:It's a hardware problem by Golthar · · Score: 1

      Yes, but at the lowest level Java or OpenGL4Java still use C.

      Actualy one of my earlier posts in this thread also points to a more direct binding to OpenGL

    8. Re:It's a hardware problem by Goldberg's+Pants · · Score: 1

      Yeah, but if you want that, you can just download emulators and roms:)

      And while you and I may feel that way, in todays market, ain't no way a 2D Mario style game would sell anywhere near enough copies when it seems most gamers only care about the latest whizz-bang 3d. (I've seen Java 3D. It sucks.)

      I think Visual C++ is so ingrained into Windows game development that Sun don't have a snowballs chance in hell of pulling this off.

    9. Re:It's a hardware problem by p2sam · · Score: 1

      More nitpicking ...

      Yes, but at a even lower loevel, Java, C and OpenGL still use machine code.

    10. Re:It's a hardware problem by Golthar · · Score: 1

      Uhm, no shit einstein..

      Sorry but this is heading nowhere.
      Yes ofcourse eventualy its machine code, im talking Native code (C) as oposed to Java (interpeted)

    11. Re:It's a hardware problem by p2sam · · Score: 1

      There is nothing magical about the C language (or the Java language). C uses a compiler to translate into machine executable code, which will be loaded by the OS, and executed by the HW.

      Java interprets Java bytecode and JIT them into machine executable code, and executed by the HW.

      It is not necessary the case that the same algorithm implemented in C always run faster than Java, and vice versa.

      There are all kinds of run-time optimizations available to Java because the VM knows a heck of a lot more about the program than the C compiler.

      See
      http://www.idiom.com/~zilla/Computer/javaCb enchmar k.html

    12. Re:It's a hardware problem by pommaq · · Score: 1

      Yes, that's right.
      For instance, the incredible flight sim IL-2 Sturmovik (which is 90% written in Java) only PRETENDS to run at 60+ fps on my Coppermine system. Go back and hide under your bridge, troll.

    13. Re:It's a hardware problem by the+eric+conspiracy · · Score: 2, Insightful

      You're right, Java can't compete with stuff like C++ for overall power.

      The problem with C++ is that it cost twice as much to develop the same program in it, and it is far more likely to have memory leaks, double frees, stack overflows and so forth when you are done. Clearly the correct solution is to go low level only when you need max performance through external libraries that are hand optimized mixtures of assembly/C.

    14. Re:It's a hardware problem by Golthar · · Score: 1

      I have been coding both Java and C++ for 3 years, I know all this stuff...somehow I think you are just nitpicking

    15. Re:It's a hardware problem by Anonymous Coward · · Score: 0

      That looks like a very interesting game. As you seem to have some tech details on it, question:
      It doesn't seem to be multiplatform. Why? What's the graphics api it uses? What does the (10%, I assume) fraction of non-java code do?

      Thanks.

    16. Re:It's a hardware problem by pommaq · · Score: 1

      IL-2 uses so-called "dirty java" which means that the game logic and most of the engine is java, but parts of it uses C++. Most of the C++ code is for DirectSound and DirectInput (which along with the commercial viability of the other platforms, I assume, is why it hasn't been ported), but the graphics engine probably has C++ code in it too. I don't have all the info, but you can check the forums on their official website. It might have more details.
      It's really an excellent game. The best WWII flight sim to date.

  2. TO the metal by adamy · · Score: 4, Interesting

    It seems lately that most games are using a combination of C to the metal for the heavy ligfting, and Python or some other scripting language for lighter stuff. It seems to me that Java might be a good replacement for the scripting side. Take a game engine that is already portade (Unreal. Doom, Quake) and allow it to be customized using Java may make sense.

    Heavy lifting highly optimized code/ OTOH would still be in C or something else that goes to the metal.

    --
    Open Source Identity Management: FreeIPA.org
    1. Re:TO the metal by Golthar · · Score: 2, Informative

      Yes, in fact there are some libraries available that will do the bare metal stuff for you.
      Also, a lot of the runtime code swapping capabilities will make it easier/nicer to create mods by the community.

      Try looking at the Java gaming online forum

    2. Re:TO the metal by dimator · · Score: 2, Informative

      Check out this article about "Dirty Java." (Sorry, it requires a registration at gamasutra.) It's a little dated, but I think it still applies.

      --
      python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
    3. Re:TO the metal by _wintermute · · Score: 1

      As Java is strongly typed and needs to be compiled, I think that it is not as effective as a language like Python or JavaScript for scripting. JavaScript is an interesting one because there are a number of free interpreters (including the one in Mozilla) and it has a pretty familiar structure to most programmers.

      --
      technoshamanic resistance within hyper-transgressive ontology
    4. Re:TO the metal by gl4ss · · Score: 3, Interesting

      with the change from dos to windows and then with the modern directx's, opengl and sdl people write less and less to the metal themselfs, if at all (afaik most modern games use c++ and then directx for the gfx, sure, 2d games still do lot of the dirty gfx manipulation themselfs but they shouldn't need to really).

      most of the heavy gfx work are supposed to be done by the gfx card and it's drivers, most of the heavy sound stuff are supposed to be done by the soundchip and it's drivers. they can't do game logic, loading, deciding where to look, glue and all that (though, it looks like the cards are pushing to be possible for that too) and that would be pretty fine for coding in java.

      --
      world was created 5 seconds before this post as it is.
    5. Re:TO the metal by Hard_Code · · Score: 1

      Java3D has native OpenGL implementations, but that is completely invisible to the developer. If you are on such a system with a native implementation (e.g. Windows) it will be used. Otherwise the pure Java implementation will be used. Completely transparent to the developer with no code changes. This also goes for some Java2D functions which can be accelerated under the covers.

      --

      It's 10 PM. Do you know if you're un-American?
    6. Re:TO the metal by Anonymous Coward · · Score: 0

      Except it's not invisible at all.

      If you have hardware acceleration "under the covers" the game will be playable. If not, the game will not be playable.

      Seriously, CosmoGL (a software OpenGL from SGI) was hand tuned x86 ASM, and it wasn't even remotely playable for Quake 1. Do you really think that a 3D rasterizer written in Java will be more competitive?

      Abstraction is nice, but ignoring performance is only realistic for J2EE applications, where everything is bottlenecked by the database anyway.

  3. really? by nekoes · · Score: 1

    Melissinos said. 'Some people may have the misconception that Java can't do great, high-performance graphics, and that's absolutely not true.'

    I was under the impression that it was true.

    I guess not, but then again I guess that you don't need these games to run at any where near acceptable speeds...

    --
    Hey, it's my OPINION that dogs have eight legs and make a sound like a car horn every time they take a piss.
  4. oh cool, now my games can be as slow, buggy and... by Desmoden · · Score: 0, Troll


    memory intesive as my app servers?

    ug, no thanks.

  5. JAVA and OpenGL are gravy by arcadum · · Score: 1
    I did a little 3d JAVA programming a while back and it makes sense to make a game with it. I am certain that future PDAs/camcorders/whatever they want to be, will have both a java runtime environment and DX/OpenGL hardware, so why not code your game in it?

    As long as your JRE is peppy/smart you are golden.

  6. Java3D not available on Mac by str0be · · Score: 2, Interesting

    For whatever reason, Sun haven't gotten around to making the Java3D libraries available for the Mac. This is a shame, as Java in the games industry needs all the help it can get, and cross-platform Java3D could have been a real benefit.

    1. Re:Java3D not available on Mac by halfnerd · · Score: 2, Insightful

      Actually Sun should spend much more time reviewing the Java3D architecture. It is much slower that for example the GL4Java bindings (which should be available for pretty many platforms). I don't know if this has changed, but this information is based on this report.

  7. I wrote a simple RTS engine in Java... by harborpirate · · Score: 2, Interesting

    A couple of years ago a friend and I wrote a simple RTS engine in Java.

    It was a tile based 2D game. Now, we weren't experts at writing super speedy display code, but we did preload all the images into memory, double buffer the frames, and crop areas of the map which would not be shown before displaying them.

    It got a whopping 8 frames a second. With 1 moving unit on the screen. Needless to say we quickly abandoned the project.

    Machines have gotten faster. The Java display engine is undoubtedly slightly improved. My guess is its still got a long way to go.

    --
    // harborpirate
    // Slashbots off the starboard bow!
    1. Re:I wrote a simple RTS engine in Java... by metalpet · · Score: 2, Interesting

      Obligatory counter-example:
      Frag Island, a veyr impressive quake-like FPS, written in late 1997. ( so quake-like that they ripped off a bunch of quake graphics and let you play in multiplayer in an authentic quake map with an authentic rocket launcher. ID lawyers didn't like, although Carmack was reportedly impressed.)
      You would get more than usable framerates on 320x200. Keep in mind that was on way old 1.1 JIT runtimes. Things have gotten better.

      On a sad note, it seems the page/applet is still dead. I wish they'd have done something with their fast java 3d engine coded over AWT, which looked like nothing short of a small miracle.

    2. Re:I wrote a simple RTS engine in Java... by Golthar · · Score: 1

      What version of Java were you using and what kind of specs are we talking about?

      The Java Graphics was indeed crappy, which has been improved (and support for full screen exclusive mode has been added)

      How can you say it has a long way to go if you haven't tried it recently?

    3. Re:I wrote a simple RTS engine in Java... by harborpirate · · Score: 1

      The engine my friend and I wrote was completely 2D, using AWT only. Apples + Oranges.

      That said, I've actually played with Java 3D also, and it's reasonably fast, though not as fast as OPENGL+C. (Certainly that would be expected though)

      Java 3D is closer to what a developer would need to develop a serious game in Java, but I think its still for the most part underwhelming.

      I haven't seen any reasonably advanced games written in Java 3D. Hopefully someday that will change, but without a lot better performance I don't see it happening.

      --
      // harborpirate
      // Slashbots off the starboard bow!
    4. Re:I wrote a simple RTS engine in Java... by harborpirate · · Score: 1

      P3 450, 128MB RAM, TNT2 Ultra graphics card. Java 1.2, I believe.

      I haven't written a game in Java since then, but that doesn't mean I haven't written Java code. I have the latest Sun One development environment on my machine, and I really like it. I've actually been working on parsing XML log files for a Java project recently in my spare time, which I have very little of.

      Honestly I haven't seen enough improvements to the AWT to think it would be worth my time to pursue another graphics engine.

      If you know of a Java 2D graphics engine out there that runs at a reasonable speed, I'd love to check it out.

      --
      // harborpirate
      // Slashbots off the starboard bow!
    5. Re:I wrote a simple RTS engine in Java... by metalpet · · Score: 1
      > Apples + Oranges

      Well, not really. Frag Island didn't use "Java 3D" or any other fancy API that didn't exist 5 years ago.
      It was doing all its rendering in software, and was drawing a plain bitmap on a plain AWT canvas, probably using a method very similar to yours (ImageProducer etc..).

      The (now rather dead and smelly) site for the applet is at: http://hem.passagen.se/carebear/fraggame.htm

      Unfortunately it doesn't load as it seems to be missing some data files, but the code is there for the grabbing and the jading.

    6. Re:I wrote a simple RTS engine in Java... by AndersDahlberg · · Score: 1

      A couple of years ago a friend and I wrote a simple RTS engine in C++.

      It was a tile based 2D game. Now, we weren't experts at writing super speedy display code, but we did preload all the images into memory, double buffer the frames, and crop areas of the map which would not be shown before displaying them.

      It got a whopping 8 frames a second. With 1 moving unit on the screen. Needless to say we quickly abandoned the project.

      Machines have gotten faster. The C++ compilers is undoubtedly slightly improved. My guess is its still got a long way to go.

      Dumb*ss

  8. MMORPG and server side programming by _wintermute · · Score: 5, Interesting

    Although I think that it remains a very long way off before ID will be developing the 'next big 3d thing' (tm) in Java, there is perhaps room on the server side end of things, particularly as MMORPGs start to garner more attention.

    No matter what the marketeers at Sun tell you, Java will never perform as well as C/C++ and when it comes to creating realtime 3d environments, every bit of speed is crucial. That said, Java has some pretty extensive graphics APIs and hooks into OpenGL and DirectX, which can be useful. For games that are not graphics intensive (and they do exist), Java may well be useful, particularly as you get all sorts of libraries and memory management for free. With JDK 1.4, Java is actually pretty fast on the client-side these days, you mat be pleasantly surprised if your experience is with older versions of Java. Coupled with modern processors (gHz!!) you can end up with a pretty responsive system. But client-side Java was never my cup of tea and it is still not even close to your C++ 3d engine.

    However, many modern games are moving online, and the possiblities of Java are much better here. MMORPGs are interesting because you connect graphical clients with servers. The servers are essentially gigantic rule engines and state machines - client input is taken, processed, perhaps things are stored in databases (this is essentially what you do when you save your character) - . The system may have to integrate with payment engines and credit card processing facilities provided by third parties. None of this stuff is graphical at all, it is all about pure data processing and distributed computing.

    Funnily enough, this architectural model actually coincides with what the Java people call 'Enterprise Applications' and there are incredible facilities in Java to implement this type of application. And the thing is, raw system performance is only part of the story in this type of application, scalability is perhaps more important (the ability to serve a large volume of clients), amny of the limitations of such systems are actually the I/O level of the application, trasmitting through sockets, writing to disk, communicating with the RDBMS. There are also server-specific implementations of the Java Hotspot JIT compiler, with optimisations for the particular tasks required of server applications and the best thing about this is that as the application runs it gets more and more optimised (and as the server is designed to run indefinitely ...) You can purchase or download an Open Source Application Server which will give you things like clustering and failover for free (meaning that you can leverage of this system to provide multiple 'shards' or servers or such things for your game).

    DISCLAIMER:
    I am a server-side Java programmer with a loathing of swing, so I amy be a bit biased.

    --
    technoshamanic resistance within hyper-transgressive ontology
    1. Re:MMORPG and server side programming by Pxtl · · Score: 1

      I've played some simple online-games with browser-based Java. Its good fun, and you can log in from anywhere. The problem is that now, with the JRE schism brought on by the MS/Sun lawsuit, all the online Javascript-based companies are gone under or reformatting themselves (like my favourite game, WormHole, was taken down and is being recreated for cellphones). There's also a good robo-rally clone.

      None of these games are epic, mind you, but its nice to be able to play an innovative game agains a large number of human players at any terminal (even the library).

  9. Re:oh cool, now my games can be as slow, buggy and by stoborrobots · · Score: 1

    You mean they aren't already???

    AFAIK, the only times anyone recommends getting a bleeding-edge system, is to run "servers" or "games"...

    Everyone else can use lower-spec machines...

    I thought that meant that they are as slow, buggy and memory-intensive as each other...

    (PS: I know that I left out DV editing...But it ruins the point...)

  10. i suggested this long ago to sun by Anonymous Coward · · Score: 0

    i interviewed with sun after finishing school and suggested this exact thing during the interview. they never gave me a job.

    1. Re:i suggested this long ago to sun by Anonymous Coward · · Score: 0

      I find this difficult to believe! Those bastards!

      Perhaps you forgot to capitalize the works on your resume. It seems to be a problem you have.

  11. are we talking about the same java here? by jpt.d · · Score: 1

    well are we? ????

    --
    What we see depends on mainly what we look for. -- John Lubbock Now search for that bug slave!
  12. More Information by halfnerd · · Score: 2, Informative

    Check out this

    I read it just yesteday and must day that I'm impressed with all the information in this report. Certainly a good resource on this subject.

  13. can we use 1 button @ same time now? by jago25_98 · · Score: 1

    on phones and pdas?

  14. Heh by bromba · · Score: 1

    In other news: "Melissinos redefines the meaning of the expression 'high-performance'. Gamers disagree." ;)

  15. Sucess in Mobile games? by idries · · Score: 5, Insightful

    Java has already caught on as the dominant format for making games for mobile phones, but the language has yet to be widely used for PC-based games.

    Not so. Mobile games are still an evolving area, and J2ME is already dying out in favour of C++ SDK's for specific platforms. The limited kind of games that J2ME has given us are not products that people are willing to pay for.

    This is because *real* games need platform specific assets. Sounds that match the sound playback hardware, graphics at the right sizes and colour depths, models with the right LOD for the renderer etc.

    Once you're providing a platform specific set of assets, there's very little benefit in having platform independant code. Mobiles don't have alot of CPU or RAM, and if you're not going to have platform portability anyway, then there's really no point in using Java. You're much better off programming on the metal. Native phones like the SPV and the N-Gage already allow this, and offer C++ SDK's, which mobile game developers are using.

    SDK's like this are not available on phones without operating systems (because they don't have memory protection so you can't let 3rd party executables onto them, an issue neatly side-stepped by J2ME). However this problem will be overcome by implementations like BREW or by just adding memory protection. It just a matter of time.

    Having said all that, I now write PC games and I think that Java could have a bright future there. Not in games written entirely in Java, but with Hybrid games. Java will never compete for speed. It's a fact, live with it. But 90% of a games' CPU time is spent curring around 20% of the games' code (i.e. the renderer, routefinder etc.). If that 20% is written in C/C++/asm and some percentage (large)of the rest in Java, the speed issue will of little consequence.

    The real question here is why? C++ works very well thank you and the tools and API's required to create a hybrid game such as this are a real pain (when compared to just hitting F7 in VC++). No kind of marketing speak from Sun is going to make programmers go through that pain, just for the sake of 'using Java'. If the tool's were better and Sun put alot of effort into supporting this kind of deployment then game developers might well take it up. Not for platform independance, but for memory managment and the other *real* benefits of Java (simplified inheiretance, useful RTTI, serialisation etc.). That's were Java can be useful and that's what Sun should be talking about.

    Also, if you really want game developers to use your technology, it's got to work on X-Box and PS/2. FACT. So get to it Sun, you've got plenty to sort out before you start nagging us with your marketing hounds.

    1. Re:Sucess in Mobile games? by jeanjean83 · · Score: 1

      Now I'm no fan of Java, and I totally agree with the fact that small devices with limited hardware capabilities should not be using Java, It's a total waste. And Java will never compete in speed with C/C++, Sure won't, but C++ doesn't compete in speed with C, and C won't compete in speed with assembly, but as computers get faster, the difference becomes marginal. If you wan't the most out of it, it has to be done in assembly, but that alone doesn't mean that doing it in assembly will automatically make it fast, because skillfull Java programmer by no means is a skillfull assembly programmer. And you really have to do a lot of "unnecessary" things in assembly, but that control gives you speed, but also much more error prone. That said, I don't think assembly should be used to other than where it's absolutely necessary, and for Java. I think the main threat is the fact of having a company behind a language. I mean, do we really want to have Sun be the judge of what platform will get a good virtual machine and what platform won't. I know there are "self made" virtual machines, but AFAIK Sun is trying to make a buck here, so they probably don't want to be compatible with them... I'f Java lives on, and computers get faster, more and more games will be made in Java. The positive thing here is that, when we see some of todays titles being ported, and running well on Java. Think about the machines running it, think of what can be run with native code that day.

    2. Re:Sucess in Mobile games? by idries · · Score: 1
      1. C++ doesn't compete in speed with C

        This is simply not true. There is no *conceptual* reason for the same algotithim to be any slower when implemented in C++ rather than C. The only reason that this is ever the case is if the C++ compiler is "worse" than the C compiler (i.e. it produces less efficent code, as was true of most early C++ compilers). Or if the C++ implementation uses some of the 'slow' features of C++ (templates, virtual functions etc.), but to match *exactly* an existing C algorithim these need never be used.

        In fact, C++ offers const and inline, which can provide dramatic performance increases in certain situations. These are not in C at all (although most C compilers have supported them for ages, and I think that they're actually in C99, anyone know for sure?). Bottom line, you can write a C++ program that will produce the same asm as any given C program (that's why C is a subset of C++). Granted there may be some kind of *really* subtle differences todo with volatile or somthing, which might be an issue on some embedded platforms or somthing, but for PC's it not an issue.

      2. C won't compete in speed with assembly, but as computers get faster, the difference becomes marginal

        The difference becomes marginal as *compiler* technology improves. If a compiler creates slower asm from your C than a hand-written version, it will be slower no matter what machine you run it on. The only effect that CPU technology has on the asm/C argument is that as CPU's get proportionally faster when compared to memory access speeds, there is less speed gain to be had from optimising your computations and more to be had from optimising your memory accesses (or other kinds of peripheral access), any decent C (or C++) compiler should allow as much control over your memory accesses as hand-written asm. That's why PC games tend to contain less and less asm these days.

      3. I'f Java lives on, and computers get faster, more and more games will be made in Java

        It's not just speed, you can't easily get back the RAM that a VM has taken off you just by starting up. People still begrudge C++ the memory taken up with vtables, the memory overhead of Java is huge by comparison.

      4. I mean, do we really want to have Sun be the judge of what platform will get a good virtual machine and what platform won't. I know there are "self made" virtual machines, but AFAIK Sun is trying to make a buck here, so they probably don't want to be compatible with them...

        I think that the only way Java will ever get into the games sector is if Sun it totally open about VM implementations. Trying to make incompatible versions etc. will just hurt their sales, they're not M$ after all. Speaking of which, if the next XBox has an embedded .NET interpreter thingy, then I think that there's a much stronger case for people to be talking about C# in games, rather than Java.


      While it's true that all the improvements being made to Java (and to computers in general) will shrink the gaps in speed and RAM is becomming cheaping and cheaper the gap between Java and native implementations will never close to nothing. The transition from asm to C to C++ is a very different thing to the transition from C++ to Java. Java is a far harder pill to swallow, as it has an initial run-time cost and there's no easy way back (if you started using a C++ compiler and it was too slow, you could still write all your update loop code in asm - no problem). Even today C++ has not replaced asm completly, and it never will. Games will always need to get back to the metal every now and then. Unless Sun embrace this and make the native-Java interoperability as easy as possible, then moving to Java will never be worth the programming benefits that Java offers.
    3. Re:Sucess in Mobile games? by deanj · · Score: 1
      Mobile games are still an evolving area, and J2ME is already dying out in favour of C++ SDK's for specific platforms.


      You're completely high, but keep spreading the word, because it keeps others from entering the market, and means more profits for us.

      Next thing you'll be saying is that the N-gage has gotten rave reviews (it hasn't) that Brew is gonna take over (sorry, been three years, and they haven't done squat), and MS phone are the next big thing (despite companies dropping it).

      Yeah, you just keep it up.

    4. Re:Sucess in Mobile games? by jeanjean83 · · Score: 1

      Good points you have there, but I mean as time goes by, and computers get better/faster in every aspect, more and more games (I'm not talking about the high end stuff, needing every last bit) will be written in Java? I just mean that, Say my stupid little app needs 1Megs of ram, and I really don't like the VM eating as much as it does. But Let's assume I have 1024 times more memory as I have now, I suddenly don't even notice the VM part of the usage. And at the same time I can enjoy all the benefits Java brings me. This of course if the VM's size doesn't grow in the same rate, which i doubt.
      And please remember, I don't like java, I write pure C myself.

  16. it has been done ! by elrolas · · Score: 4, Interesting

    A couple of years back I played a full 3D game made in Java and using GL4Java to get hardware acceleration: Arkanae (google for it, the site is still there somewhere). It was based on a Java 3D engine named Opale.Soya, which sadly has now disappeared (the original developpers are now doing the same in Python).

    It really convinced me that real 3D games are not just a pipedream. You can really get quite impressive results! And so now a friend and I are working on our own Java 3D engine. It's been a great learning experience sofar (I can recommend it to all 3D newbies).

    Anyway, you could say I'm a believer! :-)

    1. Re:it has been done ! by Lairdsville · · Score: 1

      Here is a link to arkane I only fiddled with it for a few minutes and I was impressed with the graphics.
      Java Web Start made the installation very easy, just a couple of clicks and no mental effort required.
      I ran this on a windows machine, I would like to hear from anyone who tried it on Linux. The only thing that stops my moving totally to Linux is the lack of games, so bring on more Java games!

  17. If only by PaddyM · · Score: 1

    someone would make a Swing C++ Library. That would OWN.

    1. Re:If only by Suppafly · · Score: 1

      i agree, once you get your mind wrapped around how swing works, its very easy to produce a nice interface quickly.

  18. Sun: Put up or shut up by metamatic · · Score: 3, Insightful

    Show me three good games written in 100% Pure Java.

    As of today, I've only seen one decent application written in 100% Pure Java, and that's a text editor.

    My yardstick here is that the software has to be good enough that you'd never guess it was written in Java if you didn't know.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    1. Re:Sun: Put up or shut up by digitalgiblet · · Score: 1
      As of today, I've only seen one decent application written in 100% Pure Java, and that's a text editor.

      And that text editor can get pretty funky if you add in too many plugins... Don't get me wrong, I use jedit every day, but you have to be careful how many plugins you add...

      SWT is pretty interesting. It is the AWT replacement originally from IBM that is behind the Eclipse IDE. It beats the holy crap out of swing for stability and performance. Like I said, I'm a jedit user, not an Eclipse user, but that is because I like the plugin architecture of jedit. I would personally like to see jedit based on SWT, but the development community is committed to making an editor that should run equally on just about any JVM/OS combo.

      I like Java, but I have to agree that for games C#/.Net has a better shot at success whether I like it or not...

    2. Re:Sun: Put up or shut up by metamatic · · Score: 1

      Right, and SWT isn't Java, it's a Java interface to native code, albeit one that's been ported to many platforms.

      I know C++ and Java, but if I were writing a game, I'd probably use Objective-C, and not just because I'd be writing it on the Mac... Objective-C gives you dynamic object oriented programming with pretty much the speed of raw C. Profiling my 3D screensaver code, the Objective-C overheads were invisibly small. Plus it's less painful and ugly than C++. I'd like to say I'm surprised it's not more popular, but I'm too cynical at this stage...

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    3. Re:Sun: Put up or shut up by Suppafly · · Score: 1

      while not games, there are some pretty good uml modeling tools developed in java, ArgoUML comes to mind.

    4. Re:Sun: Put up or shut up by Anonymous Coward · · Score: 0

      I found these:

      www.roboforge.com
      www.lawandordergame.com
      www. shavenpuppy.com

      So, while not Unreal2, still pretty good and commercially successful titles (except the last one. I found it through a Java games site and it looks to be released soon)

    5. Re:Sun: Put up or shut up by Achoi77 · · Score: 1
      How about this?

      Granted, it's still being worked on, but looks pretty impressive- especially for java.

    6. Re:Sun: Put up or shut up by Anonymous Coward · · Score: 0
      I personally like MegaMek. It's an Open Source, network-enabled, 100% Java (JRE v1.1, in fact) platform implementation of the classic BattleTech rules. We don't try to compete with the Activision and Microsoft products that are just FPS from the cockpit POV. We stick to the rules that made the pencil-and-paper game classic to begin with, but we make it possible to play against anyone hooked into the Internet. No flashy graphics, just good clean fun!

      Oh, and we're currently the SourceForge Project of the Month.

      DISCLAIMER!!! I'm suvarov454, one of the developers for the game.

    7. Re:Sun: Put up or shut up by larry+bagina · · Score: 1

      objective C is a decent choice for games. Quake was originally written for NextStep, IIRC. John Carmack released the source for the level editor, which was for NextStep (3.3, not OpenStep).

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    8. Re:Sun: Put up or shut up by Anonymous Coward · · Score: 0

      So what? java.io.* is a Java interface to native code. Do you think less of it as a result?

      Just because a native interface wasn't written by Sun doesn't make it any worse. In fact, in this case, it makes it substantially better.

    9. Re:Sun: Put up or shut up by metamatic · · Score: 1

      I makes it not Java, however. If Sun are claiming that Java is fine for games, the fact that they can't get a decent UI toolkit without bypassing Java and calling native code is a definite piece of counter-evidence.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  19. The biggest problem I have with this... by mstorer3772 · · Score: 2, Informative

    ...is garbage collection.

    Unless they develop some new GC system that lets you give specific time slices for processing, you'll end up with the occasional random crater in your framerate.

    I notice a second or two's pause while using IntelliJ's IDEA (a java IDE built in java), when the GC system wakes up and pokes around to free up memory. This is on a DUAL 2.6ghz machine, fer crying out loud. Nothing against the IDE, I love it... lots of cool little features to make life easier.

    So even if you have the best 3d API in the world, sooner or later the GC is going to wake up and brutally maim your framerate. Nothing you can do. Most JVM's ignore explicit GC calls too (in my experience).

    So until someone comes up with a GC system that can play nicely with others ("here's 50ms, go to town"), 3d games in java strike me as a lost cause.

    I don' know... maybe someone could precache everything, and not release anything except between maps, so the GC never wakes up during actual game play. It still strikes me as a royal PITA, and an unnecessary memory hog.

    --
    Fooz Meister
    1. Re:The biggest problem I have with this... by Anonymous Coward · · Score: 0

      System garbage collection can be disabled, and you can take out your garbage yourself whenever you wish.

      IDEA's 2 second waits are for allocating more memory, start it with decent amount, like -Xms128M -Xms256M and you don't have to watch the pauses again.

      In general, the java discussion just about everywhere is fun to read, all the C++ trolls who don't know a thing about java except the fact that they heard it was slow in 1999 are telling others what java is all about. Gee.

  20. Troll? by Goldberg's+Pants · · Score: 1

    How is that a troll you fucktard moderator?

    1. Re:Troll? by Anonymous Coward · · Score: 0

      Because someone has ported Doom and Quake to Java?

      http://java-emu.emuunlim.com/projects.html

    2. Re:Troll? by Goldberg's+Pants · · Score: 1

      How is me not being aware of that a troll? If I HAD been aware, then posting such would be a troll.

      On saying that, as a good example of how poor Java would be for this activity, I'm willing to bed that Doom in Java will not run especially well on my old 486.

  21. You have got to be kiding! by QuantumG · · Score: 1
    ArgoUML is a slow broken piece of crap. How is Java ever supposed to improve with people like you advocating shit like this. Here's a really really really simple test you can do with any GUI application.
    • Grab your mouse
    • Grab a stopwatch
    • Select a menu option, and press start on your stopwatch
    • Wait for the menu option to complete
    • Press stop on your stopwatch

    Did it take more than 0.1 seconds? That's too long! To be fair, my copy of Mozilla takes significantly more than 0.1 seconds to do something trivial like bring up the File->Open Web Location dialog box, but that just indicates that overall we're all too willing to accept slow slow software. So maybe it's fairer to say that anything under 1 second is "acceptable", but it's not great! ArgoUML does very few operations in under 1 second, even on my SPARC box where Java apps are supposed to fly!

    --
    How we know is more important than what we know.
  22. Bad idea but... by Iscariot_ · · Score: 1

    This seems like a really bad idea. I mean... Java is slow, let's admit it. And it has never been the "write once run everywhere" language that it was cracked up to be.

    Games today already require serious power. Why would a developer choose to slow it down even further by adding the heavy-weight Java on top? (Or, I guess, on the bottom.)

    However, I do have one counter-point to my own argument. A few years ago a really kickass game came out that I (and many others) really enjoyed. It wasn't until I had beaten the game and was looking around in it's directory that I noticed that it was written in java.

    Can you guess what game that was?... Vampire: Masquerade. How they got it to run so nicely with Java is beyond me, unless only small parts were in java somehow. Anyone know for sure?

    1. Re:Bad idea but... by idries · · Score: 1

      Apparently the renderer and a bunch of other parts were all written in C++.

      A guy I used to work with told me that, I don't know if it's true or not.

    2. Re:Bad idea but... by Anonymous Coward · · Score: 0

      Actually, this was written in a post mortum in Game Developer Magazine a year + ago. The entire game is scripted in Java and the graphics engine is in C++. Using Java was one of the things they stated they did correctly in the development of the game.

      The guy from Nihilistic also gave a talk at GDC (3 years ago, I think) on why you want to use Java INSTEAD of C++ for scripting.

      -KC

  23. Telegraph to Sun Microsystems by Shanoyu · · Score: 1

    Dear Sun Microsystems STOP

    I have chosen to send you a message in telegraph
    form STOP
    This is a reflection of the fact that the technology used in your programming language STOP
    Java STOP
    Is roughly as useful as knowing how to operate a telegraph STOP
    Despite the fact that Computers have become roughly twenty times as powerful as when you first released Java, your bulky and resource abusing language is still not useable STOP
    Therefore, please at least make a claim of having revised and improved the language before attempting to feed us a line of nonsense STOP

    Respectfully yours, etcetera etcetera STOP

  24. Addition to the above telegraph by Dolemite_the_Wiz · · Score: 2, Funny

    Dear Sun Microsystems STOP

    Please let us know STOP
    When you finally decide to stop scotch taping code within code STOP
    and write Java from the ground up STOP
    Finally, please make sure STOP
    that the new Java STOP
    does not have the built-in security STOP
    of swiss cheese STOP
    (full of holes) STOP
    Until then, please stop with these news releases STOP
    which only bump your stock price up one Penny (Canadian) for a day STOP
    and release a real language that isn't the STOP
    electronic form of molasses STOP

    Sincerely,

    ME

    Another customer who has to use another laggedy product from Sun. STOP

    --
    Save the World! Use a Quote!