Java 4K Game Development Contest
mrseigen writes "Java Unlimited has been running a contest since Dec 1 to develop a game in Java using only four kilobytes of bytecode and resources. You have until March 1 to finish your entries, and it's worth looking at the entries for last years' contest."
I sense productivity will reach all time highs ...
I looked around the site linked, and while they have 50 games archived from last year, there is no mention I can find of who won.
Anyone know where that is?
John 17:20
Everybody loves screenshots...
Religion for nerds. Stuff that really matters
Having moved to the Mac a few years back, I haven't found many demos which run natively on my machine. I feel like I've been missing out. Demos like the product are great.
Is this a sign the demo scene may just kick off big time for J2SE? I wonder if anyone has thought about J2ME.
With such a rich API available, we're going to see some great (playable!) demos.
because on a machine that has to run a JVM, memory is tight.
Just remember this next time someone claims Java games are the way of the future.
Just remember the above next time you think someone says something stupid on slashdot.
Off the top of my head, I can't recall many posts in the slashdot history that were more pathetic than the above is.
Even for a troll you're a really sad case. At least many of the trolls around here do the trolling with a style - and it's usually fun to read the bashing posts too.
You just have a seriously bad taste.
Cheers
at 4k, even if the games aren't good, they'll load quick. I'm off to try!
He does have a point. I have a version of tetris for my TI-86 calculator. I have no idea how to tell how much RAM it uses, but the calculator only has something like 120K. One 4K version of tetris on that page uses almost 40 MB of RAM after a few minutes, and after playing for a while there's occasional, noticeable pauses for garbage collection (yes, I verified it was from garbage collection), which doesn't happen on the calculator.
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.
Maybe not
"One 4K version of tetris on that page uses almost 40 MB of RAM after a few minutes, and after playing for a while there's occasional, noticeable pauses for garbage collection (yes, I verified it was from garbage collection), which doesn't happen on the calculator."
It is possible to write bad code in any language. This sounds like a good example.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
everybody hates karma whores! ;-)
Best. Webhost. Ever. Dreamhost.
For the uninitiated and clueless, there is no HOWTO or FAQ on how to run these Java program from Mozilla/Firefox or its mime action file.
Just how does one go about getting JNIP file to execute from a 'single-click' standpoint of view?
When one clicks on the website's 'Run Webstart', an open dialog box indicating that this JNIP file extension is identified as a 'Java Network Launched Application', but offers no executable for this...
What is the correct executable for this?
Anyone know what happened to the 5k? used to live at http://the5k.org/
there is death in the hane
Then again, as much as I love Java (I've been involved in the 4k competition for the last two years), there's no way you'd fit anything in 120KB ram.
But that's what fun about this competition.. Java just isn't the best choice for writing small application. The contrast of trying to write a tiny game in a very high level programming language is what makes it fun!
- Markus Persson
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 can't generalise. There is no reason why Java can't be used for games, and work well. Garbage collection should not be a problem for well-written applications (indeed, Java can be used for real-time work). There is the Quake clone, Jake, and there are commercial games, and even game platform emulators:
http://www.millstone.demon.co.uk/download/javaboy
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.
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?
Javascript + Nintendo DSi = DSiCade
Then again, as much as I love Java (I've been involved in the 4k competition for the last two years), there's no way you'd fit anything in 120KB ram.
:-)
Markus, you're very good at desktop gaming and 3D technology. But J2ME often runs in 64K or less. So you're not helping anybody with sweeping statements like this. Let's make sure we're comparing apples to apples (desktop games to desktop gamss) and not apples to cucumbers (desktop games to calculator/cell phone/PDA games). Shall we?
-jbanes
Right you are! I forgot about the KVM.
when i tried jake on here it was unplayablly slow now i haven't tried the original C version on here but ut which is of similar vintage is fine.
people can come up with benchmarks both for and against java much as people can come up with TCO studies both for and against linux. but my experiance is that java stuff is either slow, memory hogging or both.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
when i tried jake on here it was unplayablly slow now i haven't tried the original C version on here but ut which is of similar vintage is fine.
Others have commented that it is fine.
but my experiance is that java stuff is either slow, memory hogging or both.
The same can be said about badly written C or C++ programs. The point is that there is nothing now about the Java language itself, or the most common implementations of it, that means that applications are necessarily large or slow.
http://javaunlimited.net/games/java4k_2006.php
Java is actually pretty good for games.
a couple of issues tend to plauge it though. One is the original issues with early applets that gave java a reputation of being slow and clunky. Not really an issue any more with the newer VMs like 1.5, They even ported over Quake and there are a couple of full 3-d engines that run in it. Second is the loading of a sepperate VM for each java app/applet that is launched, unnoticeable on large projects but when dealing with small applets its a killer and really I don't know why Sun hasn't made it possible to multitask the VM.
What your describing is an example of either bad programming or very bad way that calculator implements it, you get the exact same thing in C/C++/C# as well if you write it badly. Sounds like the program is creating tons of objects and just dumping them constantly (a While loop maybe creating classes and never using them and leaving all the junk behind)
Java is definantly the way to go on things like phones with the Java ME and the VM built it for a very very small footprint.