Sun Pushes Java For Games Market 76
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.'"
It's a hardware problem (Score:1, Troll)
Re:It's a hardware problem (Score:5, Insightful)
Re:It's a hardware problem (Score:1)
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.
Re:It's a hardware problem (Score:2)
Re:It's a hardware problem (Score:1)
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.
Re:It's a hardware problem (Score:3, Insightful)
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.
Troll? (Score:1)
Re:Troll? (Score:1)
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.
Re:It's a hardware problem (Score:4, Insightful)
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" [sourceforge.net] has come out to deliver direct bindings to OpenGL/AL
Re:It's a hardware problem (Score:4, Informative)
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
Re:It's a hardware problem (Score:1)
Actualy one of my earlier posts in this thread also points to a more direct binding to OpenGL
Re:It's a hardware problem (Score:1)
Yes, but at a even lower loevel, Java, C and OpenGL still use machine code.
Re:It's a hardware problem (Score:1)
Sorry but this is heading nowhere.
Yes ofcourse eventualy its machine code, im talking Native code (C) as oposed to Java (interpeted)
Re:It's a hardware problem (Score:1)
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
Re:It's a hardware problem (Score:1)
Re:It's a hardware problem (Score:2)
For instance, the incredible flight sim IL-2 Sturmovik [il2sturmovik.com] (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.
Re:It's a hardware problem (Score:2)
It's really an excellent game. The best WWII flight sim to
TO the metal (Score:5, Interesting)
Heavy lifting highly optimized code/ OTOH would still be in C or something else that goes to the metal.
Re:TO the metal (Score:2, Informative)
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 [javagaming.org]
Re:TO the metal (Score:3, Informative)
Re:TO the metal (Score:1)
Re:TO the metal (Score:4, Interesting)
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.
Re:TO the metal (Score:2)
really? (Score:1)
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...
Heh (Score:1)
Re:oh cool, now my games can be as slow, buggy and (Score:1)
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...)
JAVA and OpenGL are gravy (Score:1)
As long as your JRE is peppy/smart you are golden.
Java3D not available on Mac (Score:2, Interesting)
Re:Java3D not available on Mac (Score:2, Insightful)
I wrote a simple RTS engine in Java... (Score:2, Interesting)
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 imp
Re:I wrote a simple RTS engine in Java... (Score:2, Interesting)
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
Re:I wrote a simple RTS engine in Java... (Score:2)
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 performanc
Re:I wrote a simple RTS engine in Java... (Score:1)
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 [passagen.se]
Unfortunately it doesn't load as it seems to be missing some data files, but the code is there for the grabbin
Re:I wrote a simple RTS engine in Java... (Score:1)
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?
Re:I wrote a simple RTS engine in Java... (Score:2)
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
Re:I wrote a simple RTS engine in Java... (Score:1)
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.
MMORPG and server side programming (Score:5, Interesting)
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
DISCLAIMER:
I am a server-side Java programmer with a loathing of swing, so I amy be a bit biased.
Re:MMORPG and server side programming (Score:2)
None of these games are epic, mind you, but its nice to be able to play an innovative game agains a large nu
are we talking about the same java here? (Score:2)
More Information (Score:2, Informative)
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.
can we use 1 button @ same time now? (Score:1)
Sucess in Mobile games? (Score:5, Insightful)
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.
Re:Sucess in Mobile games? (Score:1)
Re:Sucess in Mobile games? (Score:1)
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
Re:Sucess in Mobile games? (Score:1)
Re:Sucess in Mobile games? (Score:2)
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 i
it has been done ! (Score:4, Interesting)
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!
Re:it has been done ! (Score:1)
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!
If only (Score:2)
Re:If only (Score:2)
Sun: Put up or shut up (Score:4, Insightful)
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.
Re:Sun: Put up or shut up (Score:1)
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
Re:Sun: Put up or shut up (Score:2)
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 p
Re:Sun: Put up or shut up (Score:1)
Re:Sun: Put up or shut up (Score:2)
Re:Sun: Put up or shut up (Score:2)
You have got to be kiding! (Score:2)
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 trivi
Re:Sun: Put up or shut up (Score:1)
Granted, it's still being worked on, but looks pretty impressive- especially for java.
The biggest problem I have with this... (Score:2, Informative)
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 be
Bad idea but... (Score:2)
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
Re:Bad idea but... (Score:1)
A guy I used to work with told me that, I don't know if it's true or not.
Telegraph to Sun Microsystems (Score:2)
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 befor
Addition to the above telegraph (Score:3, Funny)
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