Domain: bytonic.de
Stories and comments across the archive that link to bytonic.de.
Comments · 56
-
Re:Wonder how this turns out...
-
Re:Stop it, please!
Don't write games in Java idiots.
Yeah, nothing good can come of it.
-
Not this again
Ever looked at the sources?
Its mainly the Jake2 code. And switching from Java to HTML5 caused like what? A 90% performance drop? -
Re:the linky in the video not working
-
Re:Interesting
Oh, Jake2 benchmarks: http://bytonic.de/html/benchmarks.html
-
Re:Why aren't all video games in managed languages
Most commercial games seem to be written primarily in C/LUA.
The engine is mostly C/C++, but every part of it has tight bindings to LUA for the regular non-programmer game-designers.
I mean, there's literally thousands of games using LUA, which I agree is more than Java, and probably more than C#.
Regarding your Quake 3 statement - no, it'd be slower in C#; but it might not be slower in Java.
Quake2 ported to java ran very fast even on last generation hardware and JVMs. I'm curious how well it would run with a newer JVM. I remember someone testing it on a weak machine(I think it was a 300mhz P2 laptop?); he found that although memory usage was higher, it actually had a higher framerate, indicating that its CPU usage was probably lower.
-
Re:Applets are still used for games
Runescape is one of the biggest if not the biggest MMO games around and it's Java based. The publisher, Jagex, also builds numerous other web games in Java.
There's no denying Flash is big but applets haven't disappeared and if it wasn't for their horrible beginning, I think they'd be much bigger now.
So yeah, Java on the web didn't have a good start but it's not bad. In fact Quake 2 has been ported to Java with very good benchmarks. http://www.bytonic.de/html/benchmarks.html Anyone dissing Java now is just being a code snob or doesn't have the mental capacity to do something good with it. -
Re:2^13?
As to why it doesn't work for OS... There is no reason the basic concept wouldn't, aside from the performance penalty and increased code size. (Though further compiler optimization could minimize or eliminate some of that).
Java generally runs at ~30% slower than C. Unless NaCL can run faster than this then there's no point in it. The demo talk shows it running Quake at ~40 fps. Java quake runs at 200 fps, on a much slower computer.
-
Do you want to play quake RIGHT NOW!
Want to play Quake now? From the browser?
No matter what Operating System?Take a look at Jake2.
http://bytonic.de/html/jake2.html
So where exactly is the innovation here?
-
Re:3D in Java?
-
Re:3D in Java?
I know this will be seen as a troll, but who the hell uses Java for ray-tracing or with OpenGL?
I'm not sure about the former, but there have been some interesting uses of the latter. Check out Jake2 sometime. It's Quake2 recoded in Java with full OpenGL support. Obviously it's not going to perform as well as it's native counterpart, but it is very playable and cross-platform.
-
Re:3D in Java?
I think you should check the Java port of Quake then: http://bytonic.de/html/jake2.html
-
Re:64 bit Java?
I wait with bated breath for a hyperlink that I can click on to play an Ajax version of Quake 2. Until then I'll just have to make do with http://www.bytonic.de/downloads/jake2_jogl11.jnlp instead.
-
Re:What about real languages?
When are we going to get a new high-performance, clean, simple, meta-programmable, incrementally-compilable language to replace C++ with?
Java?
Everyone is focused on these dynamic languages with JITs and bloated runtimes and garbage collectors. They may give decent performance if you can arrange a suitably ideal environment for them to run in. We can't use them for game engines, though.
-
Re:As fast as C code???
Java code absolutely can be optimised to run at a similar speed to hand optimised C / machine code. Just look at Jake2. But you do have to think like a low level C programmer, fully aware of the hidden costs in the code you write.
-
Re:Java never really mattered, Taco? Ouch
Game programming I'd think would be doable, if they have good DirectX libraries and an SDK that works well.
Java has some pretty good libraries for game development.
- A fully featured OpenGL API: JOGL
- OpenAL for audio: JOAL
- JInput for game controllers and other input: JInput
- Java version of SDL for a complete game dev tool: SDLJava
Also, check out the pure Java implementation of the Quake 2 engine. Runs on every major platform with near native speed. Jake2
I doubt that Java will ever be used for mainstream games, but for small projects it is a great tool that will allow a game to run on any platform with AAA title graphics and sound.
-
Re:Interesting line
Java isn't that bad. Heck Quake 2 has been ported to Java. To get that kind of performance you have to think like a low level C / Assembly programmer and pay very close attention to where Java might be doing a lot of redundant memory related things.
-
Re:too little, too late?
Java is very fast and I think these numbers speaks for them self http://www.bytonic.de/html/benchmarks.html
-
Re:No FPS multiplayer shooter!
Shockwave Director == Lame. You might as well make QuakeGL a browser plugin for all that buys you. In any case, Jake2 (Java Applet) preceded Rasterwerks by several years.
-
Re:Just what we wanted!
-
Re:Yeah...
Here are a couple of links to brilliant Java-JOGL Web-Startable apps
NASA WorldWind Java Developers Kit (very google-earth like)
http://worldwind.arc.nasa.gov/java/index.html
Jake 2
Quake II port to Java with online references comparing frame rates to original Id C-code
http://bytonic.de/html/jake2.html
I have tested both of these on Linux and Windows with no problems.
-tve -
Re:Why Java?
Why on earth would you choose Java as a language/platform for doing anything with graphics?
Because object orientation is a natural fit for 3D graphics, and because I won't willingly do anything in a language so primitive that it lacks automatic memory management.
If you want something Java-like, and you're interested in experimentation, for god's sake go with Processing
...which is based on Java.
If you want a modern, high-level language, why not go with Ruby
Because it's 10-100x slower than Java?
I use Ruby most weeks, but not for 3D graphics.
I'm not a big fan of Java, but it has OO, performance to rival C (no, really), it runs on every platform I care about, and it's commonplace enough that I can be confident it'll still be around in 10 years.
-
Re:Yeah...
Java is about the last language id use for anything involving graphics
Yeah, I mean it's not like you could write a 3D FPS in Java and get performance comparable to C, is it? -
Re:jMonkeyEngineJava isn't always slow. Jake2 is pretty damn fast...
-
Re:Interesting, but
See Jake 2 for an example. Yes, Java can attain speeds similar to C. But you have to think like a C programmer, being very careful about memory allocation and object life cycles.
-
Re:Actually...
I've been thinking for a while that this really is the direction GNU/Linux needs to go into if it wants a reasonable selection of games, and it's perhaps something Sony should consider assuming they're serious about homebrew development and haven't just put GNU on the PS3 as a tax dodge.
What's needed is a cross platform framework into which modern games can be developed with relative ease. Preferably this should incorporate some basic engines covering a wide range of game types so the programmer can concentrate on the art and logic rather than the technical details of 3D accelleration. Libraries could exist containing free/adaptable art, and simplifications of certain types of logic (for example, for bots.) Over time, such a system would become increasingly useful as more and more people contribute to the libraries to scratch their own itches or improve games they've obtained and wanted to improve a little more.
I've been really impressed with the Unreal frameworks, and while they concentrate on a specific type of game, it's not difficult to see how the idea can be extended. Buying "Unreal Tournament" (any version) is not buying what's on the box, there's a wealth of homebrew stuff that's freely downloadable and frequently better than the games Epic, and its competitors like id, come up with.
With Java entering the GPL-domain, a significant part of the low level stuff would be implemented (and systems like Jake2 prove that Java is a practical, fast-enough, VM for real time 3D games.) There are enough stillborn projects on SourceForge et al to prove that people like writing game engines, robots, and other components for games - the problems tending to be that the people who write one component get bored when they realise they have to write the other bits. So the skills are out there. To some extent, the technology is out there. What's missing is the integration and the coordination.
-
Re:Hrm
There seems to be an army of people dedicated to ensuring that we never actually see the benefits of faster hardware. We're throwing more crap layers of software on our machines faster than the CPU speeds can increase.
This type of technology though really isn't that bad. I invite you to take a look at Jake2, a version of Quake II written in Java which performs about as well as the original.
I used to think the same way as you do, but the technology has really improved. JIT ensures there's no reason why it should run slower, and indeed, because you can optimize - Gentoo style - for the processor you're running the app on, it can actually be faster. Managed code actually uses superior memory management to traditional malloc()-heap type systems. Meanwhile you have the benefits of a system with sane pointer handling and where every subroutine in your program can be locked down, efficiently and almost transparently.
The early versions of Java, and the attempts to create usable subsets of what is effectively an enterprise operating system to run on mobile phones and other low-powered devices, coupled with all the guff about "platform independence", have given Java and associated technologies a poorer reputation than they deserve.
-
Re:It's not the language, stupid!
As the GP suggested that graphic intensive games would not perform well, might I suggest doing a side by side comparison between Quake2 and Jake2? There's even a benchmarks page.
:)
I think that should help quell the fears of Java vs. C, anyway. -
Re:It's not the language, stupid!
As the GP suggested that graphic intensive games would not perform well, might I suggest doing a side by side comparison between Quake2 and Jake2? There's even a benchmarks page.
:)
I think that should help quell the fears of Java vs. C, anyway. -
Re:Even if done by M$FT, it's still spyware...
Hell, Quake2 native uses svgalib.
Quake 2 Java uses OpenGL and runs fine on my 1GHz machine.
-
Re:People still use Java?Other cool Java desktop apps:
Art of Illusion is a free, open source 3D modelling and rendering studio. It is stable and powerful enough to be used for serious, high end animation work. Many of its capabilities rival those found in commercial programs.
BlogBridge is a nice RSS agregator and reader.
GanttProject is a project management program similar to MS Project.
install4j is a powerful multi-platform Java installer builder that generates native installers and application launchers for Java applications. Awesome looks!
Jake2 is a port of the Quake II engine to java
-
Re:If you're optimizing Java, you're sunk
Ahh...your typical uninformed slashdot poster...
You do realize that array bounds checking is eliminated by modern VM's? i.e. HotSpot. Suggest you read:
http://java.sun.com/products/hotspot/docs/whitepap er/Java_Hotspot_v1.4.1/Java_HSpot_WP_v1.4.1_1002_4 .html
The Java version of Quake performs faster than the C version:
http://www.bytonic.de/html/benchmarks.html
Here are some other benchmarks:
http://www.idiom.com/~zilla/Computer/javaCbenchmar k.html
http://kano.net/javabench/
Java VM's such as HotSpot have the ability to de-optimize and re-optimize on the fly. C/C++ can not do that.
Stop repeating the lie that Java is slower than C/C++. -
Re:Huh?
Things I !@$!@$!$@!@ hate about java: $CLASSPATH. It's slow. Memory Frigging Pig. Jsp (hint: slow, memory pig). Zealots who point to benchmarks to point out how fast it is. It's not. It's slow, go ask your users.
I have asked my users, and they tend to be surprised at how fast the jSyncManager is. At one time it was measurably faster than Palm's own HotSync Manager for Windows -- nearly 50% faster in some tests. And the jSyncManager is 100% pure Java. And the parsing code for the protocol stacks and data types is pretty complex. We've had users running this code on old Pentium-class systems, and the execution speed is still on par with native solutions.
So yes, I've asked my users, and they're typically surprised that Java can be so fast. The key is having a developer who knows how to optimize code, with a sound design. Doing a lot of the heavy lifting work yourself doesn't hurt either (i.e.: not relying on a lot of external frameworks), as does using as much parallelization as possible.
Hav eyou tried Jake2, the pure Java version of Quake 2? I have no speed issues playing it on my 1.33Ghz PowerBook -- it works like a champ.
Sorry, but Java speed complaints are mostly bunk. Swing does have some performance issues (although this can differ from platform to platform), but Java as a whole is quite fast. You simply have to have developers who know what they're doing when it comes to optimization and overall program design to make the most of it.
Yaz.
-
Re:Other languages
Several games.
Jake2 (Quake 2 clone) as the AC already posted.
Puzzle Pirates
Tribal Trouble (good!)
check out javagaming.org for tons of discussions about the subject.
and tools? how about:
LWJGL: http://www.lwjgl.org/
JMonkeyEngine: http://www.jmonkeyengine.com/
Xith3D: http://xith.org/
And there are probably tons of other games and tools I'm forgetting.
And regardless what the trolls will say, it is perfectly possible to create a 2006-level game in java. -
Re:Other languages
-
Unreal's engine being ported to Java?
-
Re:About what you would expect
One 4K version of tetris on that page uses almost 40 MB of RAM after a few minutes
Did you consider that the memory you're seeing may be JVM overhead combined with pre-allocation? In smaller devices (like Cell Phones), the JVM is built into the device. So there's no real overhead for Java. The pre-allocation is also smaller to compensate for the smaller device. Considering that many of these devices have barely 64K available (never mind 120K), I'd say that Java fits just fine.
and after playing for a while there's occasional, noticeable pauses for garbage collection (yes, I verified it was from garbage collection)
I find it interesting that you singled out such an example without looking at many of the more interesting examples like T4XI, Robotron 4096, and Hunters 4K. Also, you may find Tetris 4K to be a much better version than the first item on the list.
Java's great for some tasks, it's almost like a cross-platform VB. But the language, or more likely the way the language is most commonly used, isn't optimal for some things. Games happen to be one of those things.
You don't know what you're talking about.
At one point I could have pointed to the poor performance and massive memory usage of VegaStrike. Does that mean that C/C++ is a "bad" langauge? NO! It means that it was poorly coded and still needed lots of work done. The developers worked on improving their codebase, and low-and-behold, the game got better. Perhaps it wasn't the language after all? -
Re:About what you would expect
I thought the same but was impressed by this:
http://www.bytonic.de/html/jake2.html
"Jake 2" : Quake 2 engine ported entirely to Java. Runs really well. -
Re:The Slowness Of JavaNo teverybody has the money to shell out for the latest and greatest in hardware. My point is that it seems the Java worshipers seem to be testing Java on the lastest and greatest which may not be the average system.
What are you talking about? Do you consider the Geforce4 MX to be the latest hardware? That's what they did the Jake2/Q2 benchmarks on (http://www.bytonic.de/html/benchmarks.html). The Geforce 4MX was introduced in 2002 based, but it's a GeForce 2 (2000) chipset with an improved memory controller. It's technology is almost 6 year old - far from cutting edge.
For another example check out Tribal Trouble (http://www.oddlabs.com/technology.php) - it's a game built entirely in Java, it's 3D and it's requirements are - 700Mhz PC with a Geforce 2 MX to achieve 40FPS.
Both of these games operate just fine on below average hardware.
-
Re:The Slowness Of Java
The benchmarks clearly show that the java version is as fast as the original C version.
-
Re:Comparisons with the .NET version of Quake2?
Just do the math:
According to http://www.bytonic.de/html/benchmarks.html, Java version performance is 79% to 106% of original C code.
According to http://www.vertigosoftware.com/Quake2FAQ.htm, Managed C++.NET version performance is about 85% of natice C++, and they are both slower than original C code.
There's a small advantage for Java, but the performance is essencially the same. Not surprising, since Java and .NET have very similar architectures (Java bytecode running on a JVM versus .NET common language running on a CLR) -
screenshots
-
Re:If I was Sun CEO...
Their website shows the framerate going up by about a third by switching from jogl to fastjogl.
-
Re:"...performance is similar to original C versio
Check out the benchmarks. Similar frame rates to the C version on the same hardware.
I've not tried it myself yet. Might get in trouble at work. -
linky
-
No fair
How are we supposed to slashdot the site, if the URL (http://www.bytonic.de/html/jake2.html) is not even given?
-
Erm, link:
http://www.bytonic.de/html/jake2.html just thought it might be, you know, handy?
-
Re:And queue the Java-being-slow comments...
For a taste of what java can do, try Jake2. It's a Quake2 engine written entirely in java (easily started via webstart, on both linux and windows, and automatically downloads the Quake2 demo files if you want).
You would never be able to tell that it's java. -
Re:Why bother?
Well get the lawyers out. Here are some Java vs. Net bencharks from a year ago:
http://www.shudo.net/jit/perf/ [shudo.net]
No offense, but that is not the current .NET technologies that developers like myself are using, nor the technologies they are being used in Vista, nor are these even the .NET technologies that are being used on the XBox 360.
Sorry I don't have time to write it myself, but here is one:
http://www.bytonic.de/html/jake2.html. A version of Quake in Java.
I was kind of excited, until you actually fact check the program. "Jake2 uses jogl for OpenGL graphics and joal for 3D sound."
This is a front end application using OpenGL for graphics and jaol.
I could write a Visual Basic application using OpenGL or DirectX as well that would perform just as well, this is NOT JAVA handling graphics, this is JAVA using OpenGL for graphics.
Do you not realize there is a 'difference'?
Part of the DirectX foundations and 'video' access itself is writeen in Managed .NET, This is NOT .NET just calling DirectX, but .NET is a part of what .NET is build with.
Using OpenGL or DirectX from any language does not mean the language itself is fast. I could actually harness DirectX from a very simple Visual Basic application, and do some incredible game processsing, does this mean Visual Basic is the best performaning development environment also?
Maybe you should find an example where JAVA has replaced OpenGL for graphics output, and then you would have a comparable argument, until then. Bzzz.... -
Re:Why bother?
None currently exist my friend, since the current version of
.Net technology's NDA prohibits benchmarking. If you magically have some, then I'm sure a lawyer would like to talk to you. 8P
Well get the lawyers out. Here are some Java vs. Net bencharks from a year ago:
http://www.shudo.net/jit/perf/
How about this challenge since you think what I said was nonesense, write us all a cute java application that can render full scenes in 3D in realtime at near toy story quality. Then I will say, yep I was wrong, .NET isn't the only managed development environment that can do this type of performance.
Sorry I don't have time to write it myself, but here is one:
http://www.bytonic.de/html/jake2.html. A version of Quake in Java.
Actually I would be happy to see a version of Solitaire in Java that the cards moving around the screen didn't drop a 3Ghz P4 to a crawl...
Perhaps you would like to back this up by giving the name of the specific solitaire program so we can test it and check the processor use while moving cards?