Why not allow external libs like Ludum Dare? Ignore the size of the library.
Then you could include all your code in the ‘library’ - actual game size becomes arbitrary.
I understand that… but i guess the writing is on the wall with no viable web delivery methods…
I understand that. I am willing to be a judge, however my game-credentials are pretty non-existent
Well I thought that the contest rules would stay the same as last year, i.e. applets, 4k jar. However there would be an alternative for people who do not have java or have turned off applets or scared of the security prompts… and that would be an native executable version.
Off the cuff thoughts about how it would work would be that when a entrant submits a game, it is automatically compiled to windows and linux natives. From my limited experience with ExelsiorJet, these executables will require an ‘embedded’ runtime. So to make the total size per entry smaller an “installer” application can exist whose function is to be a launcher of sorts. It would:
- provide the ‘embedded’ runtime necessary for all the execuatables.
- request the latest list of entries from the java4k site.
- allow the user to download and play a selected game.
An offline compendium of all the entries could be made during and after entry closure by pre-including all the latest native executables.
I think he means libraries such as LWJGL, Slick2D and LIBGdx
Keep a restriction that when submitting, libraries must be separate jars. Won’t it suffice?
Sort of defeats the point of the 4k contest if you let any old arbitrary libraries in. Where do you draw the line?
Cas
Even with a permitted set of libraries, it’d dramatically increases the scope of the games.
4KB standalone (well, as standalone as the java runtime permits…) is attractive as an artifical limitation precisely because it keeps the scope down; it levels the playing field between those with lots of spare time, and those with little.
Actually I’d say it levels the playing field between those who enjoy making games an enjoyable experience to play versus those who enjoy the experience of making tiny games. It’s subtle, but IMHO the end result has usually been a lot of, well, very crap games. There, I said it. All the effort really seems to go into bytecode hackery and dubious coding and smarty-pants geeky stuff and not a whole lot into interesting gaming. This is probably at least a part of the reason finding judges is so hard.
I’d rather play one well made and executed 16kb game that took 4x as long to make than twenty of the typical 4k games.
Cas
[quote=“princec,post:28,topic:43899”]
Sturgeon’s Law strikes again. I don’t think that’s down to the 4k limit.
All the effort really seems to go into bytecode hackery and dubious coding and smarty-pants geeky stuff and not a whole lot into interesting gaming.
I don’t quite agree with that. With the compression toolset you are allowed to use, there’s not much of a need to smart-panty-hackery stuff anymore.
I do agree some entries might benefit if more thougt was given to actual gameplay instead of “finishing something”, but well, that’s the purpose of java 4k. It’s not meant to make a game that will be enjoyable for years to come. Crappy entries will exist in every competition no matter how high you raise the byte count - just look at ludum dare.
[quote=“princec,post:28,topic:43899”]
I disagree! There have been some abysmal entries it’s true, but overall I’d say the quality was remarkably high, especially given the constraints.
I was watching a vlogger who set out to find the 10 best LD entries (out of 2700!) and he had trouble actually finding 10 which (in his opinion) had any playability value at all. That’s 0.3% ‘good’ games. I’d give 4K a figure of 10-20% ‘good’ games, and rarely a contest goes by without at least 1 really top quality game being produced.
I was wondering if it would be possible to make/use a tool which would ‘html5-ise’ the games…?
I dunno, but I’m spoiled for choice with the instant accessibility of Flash games these days, so getting something that simply looks and sounds awful (when it makes any sound at all) just because it’s 4k isn’t all that much interesting to me as a player. The 4k competition appears to exist mostly for the benefits of developers and this is basically what limits its appeal to such a tiny audience - it’s by programmers for programmers to show off to each other.
Cas
The top games are pretty good, so perhaps it may be a good idea to order games in an app in order of coolness…
I like java 4k, as the size limits the amount of time I spend on the game (Usually a couple of weekends). The gradual demise of Applets does however make this more of a by-developers-for-developers format, although I think it was always pretty much that anyway. More annoying for me this year is the totally broken Key_Release functionality, at least on OSX, which looks like staying broken until Java 8. So much for run everywhere. More like run away everywhere.
The LWJGL16k was a nice idea too, although it never really got off the ground. Twice. Of course, if it ever happens, I have one finished game and one almost finished game on the blocks. They both use legacy direct mode though.
In terms of compression, Java 5 + Proguard + kzip work pretty well, although you need a utility to convert zip to gzip (strip off the zip header). Edit: Actually I used Java 6 last year, or at least pack/unpack from Java 6. I might have still been using version 5 javac, since the files were smaller. Yes I did - Java 5 compiler + Java 6 tools.
So where do we go from here. I don’t rightly know. I’ve gone right off Applets though. Even webstart would be better.
Running applets c.a. 8-10 years ago wasn’t such a hassle, in comparison to other similar technologies, realplayer, vr plugin, and even flash.
The grace period is over, users are not forgiving anymore, they want stuff to work and it should work. My 9 yearold nephew can’t be bothered with going to java.com and download and install a JRE. He uses youtube all the time, and it works, he plays flash games all the time, and it works, and he uses an ipad and everything works… no security warning dialogs or missing plugin errors.
But that debate is pretty much settled, Java simply lost the race for the web browser, despite having like a 10 year head start on flash.
If normal users can’t use applets, there’s no point with the “applets only” rule. We can go back to webstart and see how that shakes things up in terms of window sizes (fullscreen) and such. (I’m inclined to do a “webstart only” contest next just to make it a bit different).
It was never a race. OEM and browser vendors choose who “wins”.
(Although surprisingly my most recent laptop did not have Flash preinstalled even though it came with all kinds of other junk. So its not as if there is a perfect consensus.)
If normal users can’t use applets, there’s no point with the “applets only” rule. We can go back to webstart and see how that shakes things up in terms of window sizes (fullscreen) and such. (I’m inclined to do a “webstart only” contest next just to make it a bit different).
Please, no! Webstart is an even more evil experience than applets, you still get scary pop-ups and then you have to ‘uninstall’ every single game you play through the control panel? WTF?!
One thing we all agree on: immediate gameplay gratification through java is no-go. To my mind, either we play it as a by-devs-for-devs thing or do something completely different.
Anyway, with the Minecraft and Runescape (is that still going?) phenomena, maybe applets aren’t quite the total turn-off we think they are.
Can anyone name a successful game that used webstart?
No successful game has ever used Webstart to my knowledge. There are indeed precious few actual applications in the wild that have ever successfully used it. It was just too broken an experience.
Custom java4k launcher for the win. We have some crossplatform code that might form the basis of a donation here.
Cas
In terms of compression, Java 5 + Proguard + kzip work pretty well, although you need a utility to convert zip to gzip (strip off the zip header). Edit: Actually I used Java 6 last year, or at least pack/unpack from Java 6. I might have still been using version 5 javac, since the files were smaller. Yes I did - Java 5 compiler + Java 6 tools.
javac 6 targeting jsr14 puts the least junk into the class file. Unfortunately javac 7 no longer supports jsr14 as a target, so you need an old compiler.
I don’t have good memories of the year we used webstart. If we’re not doing applets, I’d rather take a big jump into Android (although I confess that as I don’t have experience with it, I don’t know how realistic 4k is - does anyone know how big an Android hello world is?)
javac 6 targeting jsr14 puts the least junk into the class file. Unfortunately javac 7 no longer supports jsr14 as a target, so you need an old compiler.
I don’t have good memories of the year we used webstart. If we’re not doing applets, I’d rather take a big jump into Android (although I confess that as I don’t have experience with it, I don’t know how realistic 4k is - does anyone know how big an Android hello world is?)
Thanks for the tip on javac 6 targeting jsr14, which I assume is 1.4. My main compliant about applets is that currently nearly all of the ones on Java4k.com are not working on OSX, which makes it a PC only contest. I have a PC, so no problem developing, but at the moment I think applets are even more broken than webstart. If both are off the table, then it’s back to executable jars, which are fine when you know and trust people, but not so good for entries from unknown folks. I have an Android tablet and could develop for that, but then there’s the problem of guessing how much processing power people have available and catering for all the different screen sizes. Still, it’s an option.
Edit: It’s just Key_Release that’s borked, so I could do an Applet that just relies on the mouse. For instance ApoHockey still works perfectly well on OSX as it only uses mouse input.