js4kgames - Potential successor to Java4K?

Hi all,

I’m hoping to attract the attention of anyone here that participated in the Java4K contest over the 12 or so years it was running, and also those that were fans but perhaps never participated. I never participated myself, but I was a big fan of the contest, going back to 2006 when I first noticed it. I knew the name Markus Persson through his Java4K entries long before he created Minecraft. I feel a bit embarrassed saying this but I didn’t realise who had created Minecraft until a couple of years ago! I was like “No way!”.

I was sad to see the Java4K contest end last year but understand why it did. I’m a Java dev with nearly 18 years experience now and I know that Java from the browser has been dying for a long time.

There were a few discussions last year about the possibility of a Javascript contest replacing Java4K. It was pointed out that there already exists a js1k contest, but that it differs quite a bit from the Java4K (not just with regards to the JS). If you’re not aware, there also a js13kgames contest that is a lot closer to what Java4K provided, but having watched it for a couple of years, I can see that 13K is a bit too much space to work with. 4K seems like a better limit.

I’ve been thinking about starting a JS4K contest for over a year now. As a trial, I converted three of the more popular Java4K games to Javascript to see how the sizing matches. I started with an HTML template, in to which I pasted the Java code, and then set about converting each line, line by line, in to the equivalent JavaScript. What I discovered is that if you use the js13kgames rules but with a 4K limit, then the ZIP file you end up with is comparable to the Java version. I put it through a process of JS minification using the Google Closure minifier following by KZIP for producing the ZIP file. Even then I had to manually minify things a bit before I could get VVVV below the 4K limit, but in the end I did (although I might have pulled out the winner screen come to think of it). Meg4kman and miners4K were easier to get below the 4K limit and without needing to remove anything.

I said above that I never participated in the Java4K contest, but I did have a go at creating some 4K Java games over the years as practice for potentially participating at some point. What I found is that porting the Java4K games over to JS, then minifying, and then zipping, and the effort to make it fit below 4K, was quite a similar challenge.

I wanted to announce my intention here to start a js4kgames contest next year, in about 6 months, since a lot of my focus in creating it is to appeal to former Java4K contestants. So I waned to start by discussing ideas here before announcing anything in any of the HTML5 gaming forums.

Let me know your thoughts and whether you think you would participate. In about a week I hope to have something online that will list the rules and advertise the contest. I’d then need to build the backend to support the submissions, which I plan to do using a free Google App Engine account.

Also let me know if you’d like me to port one of your Java4K games to JavaScript. I’m keen to convert a few more, particularly if you’re also willing to let me put the converted game on the js4kgames contest website as a demo. It would be great to have a few demo games up there. Not sure if I’ll be able to contact notch regarding the ones I’ve already converted, so don’t know what the likelihood of being able to use those ones will be.

Interesting. You can also use libGDX to deploy as JavaScript, so you don’t necessarily have to directly port everything to JavaScript.

This is great! i really wanted to participate in the original java4K but i was a bit late :(. I would definitely be interested in a sort of spiritual successor to java4k, and like KevinWorkman pointed out you could use libGDX to deploy the games to javascript but that could make it a little harder to keep the game under 4k.

libGDX looks fantastic actually, and I’d certainly love to try that out at some point. But I think I agree with your last point about it being harder keeping the game under 4K. Even while coding JS by hand, keeping the size in mind all the time, and using various hacks, its still difficult to keep things below 4K. Are there other contests using libGDX with some sort of size limit?

There are a few other things I didn’t mention in my original post that I’ll bring up now. I intend for the contest to be fully automated so that perhaps after a couple of years hand-holding, I could just let it run itself. So I’d be setting up automated tweeting, etc. leading up to a particular year’s contest, then tweets whenever games are submitted, and basically on any event that happens within the application. The voting would be community based, which is something I think Java4K also had in addition to judges, and is also something that js13kgames introduced this year in addition to its judges. But the difference with the js4kgames contest is that it would only have the community voting. Part of the reason for using a free Google App Engine account is to increase the likelihood of the platform that it runs on continuing to exist for a long time.

The backend for the submission form would do various checks on the submitted ZIP, including obviously the size, but also that it can unzip, and that it contains at least an index.html file. But it can’t verify the remainder of the rules, so would then rely on the community to take the rules in to account when “casting their votes” (by whatever voting mechanism is employed).

I wish you the best of luck, but I’m very skeptical about this “fully automated” bit. I think this is a harder problem than you’re expecting, with a lot more “human in the loop” interference required.

Also, you might want to check out all of the other existing game jams that are already going on. Ludum Dare is one of the bigger jams, but smaller game jams are happening all the time: try http://jams.gamejolt.com/browse/active or http://itch.io/jams for a start.

Yeah, maybe I’ll need to hold its hand a bit more than I’m hoping. I’m certainly expecting that I’ll need to iron a few things out over the first few years and get more ideas on how I can automate it through watching what happens while its running. What I’ve noticed from observing a few game jams, such as the js13kgames contest, is that the organiser invests a lot of time in to the contest each year. Entries need to be manually verified, judges organised, donations requested, etc., etc., and sometimes they get quite stressed and run down through the process, lots of late nights. And sometimes they get a lot of negative criticism as well, complaints about judging and that kind of thing. You often see people bow out and someone else take over after a few years. I was thinking that if a contest could be made to almost run itself, then it would avoid such things.

I’ve put this app engine site up as an initial place holder for now. It’s pretty much static at the moment, but the content gives you a better idea of what I had in mind. The rules page is a first draft of what I was thinking. There are a few “to be decided” bits in there, such as the voting mechanism (as I’m really not sure what the best way to go on that is). The main rules are a mixture of js1k, java4k and js13k rules, hopefully leaning towards something more like Java4K but obviously with JS instead.


Let me hear your feedback on what you see on there and whether there is anything in the rules that you think we need to debate a bit, and especially if you feel quite strongly that something in there isn’t going to work out. Would love to hear suggestions.

I’m going to be tweeting over the next 6 months with progress as I’m building the backend for it: