LWJGL16k

[quote]/me leaves the contest in disgust
[/quote]
Wait a minute…

Alan_W is not ruling the place here. He can defend his Drafts, but that doesn’t say they will be used.

I too prefer Cas’ rules, and I expect those will be used. Forcing all participants to use such a license (BSD) gains no advantages to anybody. In the end everything will be like the J4K 2005 contest, it will all be fine.

I really don’t like the idea of having to make sure that the game is compatible with all java versions from 1.4.2_0 up on several different target platforms, or risk having my games disqualified at random.

1.4.2_07 target vm, fixed target version of LWJGL, must run via webstart, must run on Windows XP, gets bonus points for running on other operating systems.
Sane, short, allows people to test their games on all required target platforms.

And that license thing is more of a personal religious issue of mine, not a proper complaint about the competition as such.

[quote]I really don’t like the idea of having to make sure that the game is compatible with all java versions from 1.4.2_0 up on several different target platforms, or risk having my games disqualified at random.
[/quote]
In practice, it has to be 1.4.2_(05 | 06 | 07), simply because 1.4.2_01 doesn’t actually work, nor does 2 and 3 (for instance, the core certs in all versions prior to 4 are no longer valid, and apps won’t run!).

I said 07 too, but perhaps it would be better to show-off/make the most of webstart and just say “1.4.2_whatever-you-like, so long as YOU make sure YOUR JNLP automatically launches it - if it don’t work because the judge had the wrong JVM, that’s a bug in your JNLP and so you are to blame”.

re: disqualifications, swp repeated a complaint both he and I had in the j4k and which several others highlighted (hence my repeated requests for people to actually read the previous threads!) which - as judge - I can vouch is almost certainly necessary; after the j4k I promised myself that all future compos I was involved in the admin side of would have a public-judging period in which judges could pre-warn authors of any probably disqualifications.

NOTE: many people asked during the j4k to be warned if their game didn’t work, but in practice it’s hard enough to judge 50+ games to a decent level of depth let alone faff about tyring to find the author and ask for support - so, in practice, it’s essential that an essential “discovery” phase be part of the compo itself.

NOTE2: …I have extensive experience of this issue because it’s eactly the same thing I’ve been working on for some time for JGF to enable games to be tested by a set of official testers, and for them to notify the authors of any bugs / no-starts / etc - and give the author time to fix them - before finally accepting / rejecting the game. I will probably even have it up in time for the LWJGL 16k (well, it was always planned to be there by then ;))

Ye, Cas’ rules are pretty ok-ish. Except for that disqualification part… something like that might always slip through (upside down textures on mac - ooops).

Since it’s unlikely that we’ll get 50 entries again… I think it might nice to have a deadline where the game needs to be complete. And then a quick test phase of… say… one week, which should be long enough to do some bugfixing (only bugfixing - adding features is forbidden).

I’m serious about disqualification. I’m not judging anything that doesn’t run. I put in such a shedload of effort trying to get my stuff to run anywhere and everywhere and basically it does, pretty much. One of the best things about LWJGL is that more or less if you use it your stuff will completely work without any help from the rest of the JVM. Alien Flux ran on 1.4.0, nuff said. Having said that I’m completely easy with 1.4.2_0 as a base. Let’s face it you won’t be using very much of the JDK. So don’t go making a mountain out of a molehill as this issue is almost certainly not going to affect anyone at all.

I want the x-platformness emphasised heavily in this competition, because that’s 100% what we stand for. So anyone not prepared to go the extra mile to get their shit working on the 3 big OSes isn’t going to be judged. As I alluded to though, Linux tends to be crap in getting anything to work ever so we might have to make sure there’s a reliable bog-standard Linux install around to test on.

At the end of the exercise all the entrants will have also gained the experience of actually writing proper x-plat LWJGL code so there’s a silver lining to this cloud. I will sleep easier at night knowing finally some others share my pain :smiley:

However you’re dead right that an immediate disqualification is a crap thing, and it is only reasonable to have a feedback round where non-working entries can be tweaked to work on the judging machines. This isn’t an onerous task and it’s the reality of software development.

WRT the shared LWJGL library I will provide a kosher Thawte-signed LWJGL under the auspices of Shaven Puppy Ltd which will be installable as an extension and that’s what you’ll all be using. Problem solved.

Oh and one other thing that’s been forgotten - your entry must run in sandbox permissions (the LWJGL however runs as an extension with all permissions).

And judges: look at the bright side - the less there is to judge, the easier it will be to find a winner :wink:

Cas :slight_smile:

[quote]As I alluded to though, Linux tends to be crap in getting anything to work ever so we might have to make sure there’s a reliable bog-standard Linux install around to test on.
[/quote]
Basically comes down to three things (no, really):

  1. Write your sound init code so that if it fails to init the hw device it doesn’t crash your app because you didn’t catch exceptions

  2. Make sure you’re loading the lwjgl.so library (all that -Djava.library.path=. crap :frowning: )

  3. Make sure your fullscreen code isn’t lazy, and does actually make a decent and sensible effort to pick a resolution + refresh rate combo out of the ones available

2 shoudl be automatic from using webstart (yay!), 3 IIRC is now automatic if you just use the way you’re supposed to with LWJGL (or copy/paste from the example code?), and 1 is something that everyone should do and most by now have learnt to do as standard.

Could be helpful to generate some example code for 1, perhaps?

Enjoy the contest, then.

Blah, no offense, but how many LWJGL apps have you actually written that run on linux because my reaction to this:

is “My arse!” There are so many driver issues, platform issues and all round crap “oh but I configured my system in this cryptic way cause it save me 2.5 seconds when I’m performing this task that I actually only perform once in a blue moon and would be better done automatically but hell I’m a linux use and I like it this way” issues its quite unbelieveable.

If support for Linux is mandatory then a “standard install” is essential.

Kev

I agree. The views here are too disparate for “competition by committee”. My objective was to give the context a kick in the pants, since it kept slipping to the right. My rule proposals have done this, even if they are not adopted. Since Cas proposed the contest, he’s free to post any rules he likes. However he does need to formalise them. His earlier post on the subject gives a flavour of what he wants, but needs to be rounded out. I’m not going to be doing it because I disagree with the disqualification rules.

The disqualification rules are rather drastic. I don’t really go for the 3rd party testing idea. What use is a report of “your program failed to start”. To be sure of a successful entry, one would need access to a PC. Mac & Linux box (but what flavour) and test on at least one version of each OS. This would require some expenditure, which seems over the top for what I thought was a fun contest.

I’m just watching now. If it goes ahead then fine, if not (or I can’t abide the rules) then I’ll just do my own 16k program for my own amusement.

[quote]Blah, no offense, but how many LWJGL apps have you actually written that run on linux because my reaction to this:
[/quote]
I meant from the POV of what goes wrong unexpectedly when playing other people’s games, and that (as a linux user) you then have to inform the author of) : that list of 3 covers approximately 99% of times that a java game doesn’t run on linux. Shrug.

That comes from trying most if not every single LWJGL demo, app, or etc that’s been posted.

What I was getting at with the linux comments was that normally you don’t need another machine to test on, you just need someone to point out where your code needs to be more defensive - usually just knowing the stack trace is enough to instantly fix it.

Let’s get some other things straight then: the judges’ machines need to conform to some spec. as well as the compo or it’s just a bag of shite again.

So: I’m proposing a 512MB RAM, single 1GHz CPU, 32MB GeForce2+ or Radeon 9k+, a 16 channel sound card, keyboard and one button mouse, and latest ordinary non-beta drivers for everything as the min. spec for everyone to work towards. Cross platform does not mean “runs on everything”, you have to have a minimum spec to work to.

And: I’m only proposing rules, not laying down the law. I don’t want a competition that no-one wants to enter and it certainly has to be fun. So let’s keep this thread on the discussion of deciding what the rules are going to be.

As an interesting counterpoint about all the linux arguments: if 50% of the games don’t work on a particular Linux box it’s more probable there’s something wrong with the Linux box isn’t it?

And again, on disqualification: if it can’t be played it can’t be judged, and if it can’t be judged it can’t win, can it? Get real on this. Part of the challenge is learning how to write your code to run everywhere successfully.

Only this afternoon I fixed a bug in my 3-year old (!!) sound classes that prevented my stuff running on Linux most of the time. Elias found it by accident. So we’re all still learning here. Just get over the fact that this isn’t a million-dollar prize, it’s just fun.

Cas :slight_smile:

…discussion suddenly dried up?

Cas :slight_smile:

Just waiting for the contest to start and the official rules to be published :wink:

Kev

[quote]Just get over the fact that this isn’t a million-dollar prize, it’s just fun.
[/quote]
hear! hear! lets get some simple rules even I can follow and go!

:slight_smile:
Dan.

I liked the idea of just having the library running with all permissions. However if I split all the LWGL stuff into an extension (with all permissions) & remove all-permissions from the calling JNLP, then this happens. Is this me, or is something missing a security wrapper?

java.lang.reflect.InvocationTargetException

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

      at java.lang.reflect.Method.invoke(Unknown Source)

      at com.sun.javaws.Launcher.executeApplication(Unknown Source)

      at com.sun.javaws.Launcher.executeMainClass(Unknown Source)

      at com.sun.javaws.Launcher.continueLaunch(Unknown Source)

      at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)

      at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)

      at com.sun.javaws.Launcher.run(Unknown Source)

      at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.ExceptionInInitializerError

      at org.lwjgl.Sys.createImplementation(Sys.java:71)

      at org.lwjgl.Sys.<clinit>(Sys.java:60)

      at org.lwjgl.opengl.Display.<clinit>(Display.java:96)

      at org.lwjgl.util.Display.getAvailableDisplayModes(Display.java:72)

      at Game.<init>(Unknown Source)

      at Game.main(Unknown Source)

      ... 11 more

Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission org.lwjgl.util.Debug read)

      at java.security.AccessControlContext.checkPermission(Unknown Source)

      at java.security.AccessController.checkPermission(Unknown Source)

      at java.lang.SecurityManager.checkPermission(Unknown Source)

      at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)

      at java.lang.System.getProperty(Unknown Source)

      at java.lang.Boolean.getBoolean(Unknown Source)

      at org.lwjgl.LWJGLUtil.<clinit>(LWJGLUtil.java:55)

      ... 17 more


/Edit - I got fed up with waiting & have started anyway and unless the contest starts real soon, will be posting it in My Games instead. I figure I can always write another if I want to enter the contest.

/Edit2 - and a signed jar is about 1.5k bigger than an unsigned one :’(

Your numpty wumpty signing won’t cut it for an extension :slight_smile: You need a proper expensive certificate signed by Thawte or Verisign etc. like what I’ve got :smiley:

In fact you could try that out: install the LWJGL and utils that I’ve got at http://www.puppygames.net/downloads/shared/test/lwjgl.jar (and lwjgl_util.jar) as an extension and see how that fares. They’re both kosher signed by Shaven Puppy Ltd (my company).

If everyone would like to use them for the competition be my guest.

Cas :slight_smile:

I think the bar is raised a little high for this 16k contest.

It’s a contest by devs, for devs. Mainly to show-off. Why would we be forced to make it run in the sandbox, or risk disqualification if it crashes on some unknown judges-machine.

The contest is meant to be exciting. Taking part and showing your game should be the goal. If it fails to run everywhere, so be it. All these rules and restrictions take the most important part out of it: fun.

[quote]Your numpty wumpty signing won’t cut it for an extension :slight_smile: You need a proper expensive certificate signed by Thawte or Verisign etc. like what I’ve got :smiley:

In fact you could try that out: install the LWJGL and utils that I’ve got at http://www.puppygames.net/downloads/shared/test/lwjgl.jar (and lwjgl_util.jar) as an extension and see how that fares. They’re both kosher signed by Shaven Puppy Ltd (my company).

If everyone would like to use them for the competition be my guest.

Cas :slight_smile:
[/quote]
Looks like I’m showing my ignorance again ;D

What about the native libraries though?

Best Regards
Alan

[quote]I think the bar is raised a little high for this 16k contest.
[/quote]
No-one’s going to stop you from entering a POS that won’t work on anyone’s machine, so if all you care about is your personal enjoyment, you should be fine.

If you can’t manage to achieve a minimal level of quality like this then your game is going to be crap anyway. Personally, even as a developer I don’t want to play your game if your coding is so poor (but that’s just me); anyone can write crap that only works on one machine - that’s totally uninteresting.

However, if the judges know they can completely ignore your piece of crud if it fails to start, and don’t waste hours trying to fix YOUR code for you, then that’ll make the rest of the comp run more smoothly (and mean they spend more time playing the better games instead).

In all fairness, you are warned of this before you enter.

Shrug.

OK, let’s have no rules and no restrictions:

“write a game of any size whenever you like, and don’t bother making sure it works. Tell us about it sometime”

Hmm. Nothing stopping you from doing that right now, is there? ;D