Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (494)
Games in Android Showcase (114)
games submitted by our members
Games in WIP (563)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Important: NO PACK200  (Read 12376 times)
0 Members and 1 Guest are viewing this topic.
Offline woogley
« Posted 2006-08-31 17:30:51 »

note: before replying to this thread, please read Sun's tutorial for pack200 to ensure you know exactly how pack200 works

pack200 has been disallowed from this year's compeition. I have talked to several other game developers (even some who compete in the 4K) and they are as torn about the issue as I am, but they agree with the decision.

I'm not sure how many of the pack200 advocates out there truly understand the nature of the beast. Pack200 is NOT just another button you can press in your eclipse configuration and ta-da your JAR is smaller. Pack200 relies on server-side configurations. While there are many of you who are willing to jump through all of the hoops it takes to get pack200 working correctly, most people won't. If we allowed pack200, there would be a severe advantage to people who have the benefit of having a server customized enough to handle pack200. There are still people who can barely get their webhost to launch JNLPs with the correct MIME type, good luck having those hosts deliver pack200 compression! Also, there are still several regular competitors that rely on geocities for hosting - most people don't bother with paying for highly customizable webspace. We simply cannot introduce pack200 in a fair way.

With this in mind, we do not have a minimum java version this year! we instead have a maximum. This year you can use any Java you want up to (not including) Java 1.6 aka "Java 6." So for those who are still set on developing your 4K entries with lower SDKs, feel free to do so. I would, however, recommend you use Java 5 for its more precise timing code.

I can understand this is going to cause some controversy, but with your support on this issue we can continue to keep this contest 100% fair and available to everybody who wants to participate! Now let's get ready for the biggest 4K yet!
Offline zeroone
« Reply #1 - Posted 2006-10-16 01:03:30 »

Just out of curiosity, why was the target JRE for J4K 2006 version 1.4.2 as opposed to an earlier version?  Unlike 1.4.1 and before, JRE 1.4.2 includes the high-performance timer sun.misc.Perf.  Was 1.4.2 chosen to support that class?  For J4K 2006, was that (somewhat hidden) class allowed in the competition?  For J4K 2007, if we choose to compile for JRE 1.4.2 instead of 1.5.0 (which supports a high-performance timer method in the System class), can we use sun.misc.Perf?
Offline woogley
« Reply #2 - Posted 2006-10-16 02:02:15 »

1.4.2 was chosen because at the time I figured it'd be best to give 1.5 one more year to populate itself on more computers (as we get visitors from slashdot)

I didn't even think about the Perf timer... anyway, it wouldn't have been disallowed I don't think, but I'm not sure if any game used it.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Markus_Persson

JGO Wizard


Medals: 15
Projects: 19


Mojang Specifications


« Reply #3 - Posted 2006-10-16 09:02:37 »

sun.com should absolutely not be allowed. There's no guarantee they're available in any implementation of java, even counting official sun implementations.
Using sun.com classes is as bad as using jni.

Play Minecraft!
Offline woogley
« Reply #4 - Posted 2006-10-16 13:06:53 »

hmm that's true.

it shall henceforth be enscribed in ye ol' account of rules and regulations
Offline zeroone
« Reply #5 - Posted 2006-10-16 13:25:57 »

Ok.  So, sun.misc.Perf will not be permitted in J4K 2007, but System.nanoTime() will be allowed.
Offline Abuse

JGO Knight


Medals: 12


falling into the abyss of reality


« Reply #6 - Posted 2006-10-16 13:47:35 »

What about accessing system properties?

Are they all allowed, regardless of their symbolic name space?

for instance, the system property "sun.boot.class.path" as far as I am aware exists in all 3 main stream VMs; however because of its "sun" prefix I am unsure whether it is considered a "standard" property, or not. (it contains all library classes & jars that are present on the classpath)

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline Abuse

JGO Knight


Medals: 12


falling into the abyss of reality


« Reply #7 - Posted 2006-10-16 13:53:20 »

Ok.  So, sun.misc.Perf will not be permitted in J4K 2007, but System.nanoTime() will be allowed.

Is someone going to write a simple constants pool examiner to ensure such rules are adhered to?

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline woogley
« Reply #8 - Posted 2006-10-16 14:09:05 »

zeroone: yes nanoTime() is part of the library, thus permitted.

as far as abuse's properties question goes, I honeslty have no idea. I didn't even know about that property, though I'm 99% sure it wouldnt help any 4K game o_O

and, Abuse, nobody's going write a constants pool examiner Wink. By disallowing Perf, we help the participant steer away from a class that would break their game in different JREs.

there are some checks on the 4K games. for example I run all of the entries on a networkless computer to verify that no outside resources are being used. there are a few other simple validations I use, but definitely not a constant pool examiner Tongue
Offline Abuse

JGO Knight


Medals: 12


falling into the abyss of reality


« Reply #9 - Posted 2006-10-16 14:32:59 »

zeroone: yes nanoTime() is part of the library, thus permitted.

as far as abuse's properties question goes, I honeslty have no idea. I didn't even know about that property, though I'm 99% sure it wouldnt help any 4K game o_O

It was a little idea I had, for a way to obtain a huge word dictionary for very little size cost.

Iterating through all the classes on the classpath, using reflection to grab the method names, and splitting them using the standard java naming convention (and disposing of the garbage names - you'd be suprised how much of the Java API doesn't follow standard naming practices!), can get you a dictionary of about 4000 English words - at a cost of about 500bytes of code.
With an average word length of 5.5 characters, this gives about 20000 bytes of data - this equates to an extremely impressive loss-less compression ratio of about 40:1.

All that you need to do then, is devise a game that can make practical use of 4000 english words! =)

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline woogley
« Reply #10 - Posted 2006-10-16 14:39:23 »

TextTwist4K Wink

as impressive as it sounds, I'm still unsure if it should be allowed. I'm kinda in the middle (and somewhat drunk atm)
Offline g666

Junior Member





« Reply #11 - Posted 2006-10-16 18:00:13 »

TextTwist4K Wink

as impressive as it sounds, I'm still unsure if it should be allowed. I'm kinda in the middle (and somewhat drunk atm)

imo it should. stuff like that makes 4k fun.

desperately seeking sanity
Offline Amos Wenger

Senior Member




Everything's possible, but not everything's fun...


« Reply #12 - Posted 2006-10-16 19:14:00 »

TextTwist4K Wink

as impressive as it sounds, I'm still unsure if it should be allowed. I'm kinda in the middle (and somewhat drunk atm)

imo it should. stuff like that makes 4k fun.
+1

"Once you start working on something, don't be afraid of failure and don't abandon it. People who work sincerely are the happiest"
Offline woogley
« Reply #13 - Posted 2006-10-16 19:25:46 »

I'm kind of leaning towards "no," - I can see we'll need to amend the "standard java library " rule to only include documented features.

if sun.misc.Perf is disallowed, there's no reason to allow a non-documented System property (it is not one of the guaranteed properties as specified by the doc)
Offline Abuse

JGO Knight


Medals: 12


falling into the abyss of reality


« Reply #14 - Posted 2006-10-17 00:15:02 »

I'm kind of leaning towards "no," - I can see we'll need to amend the "standard java library " rule to only include documented features.

if sun.misc.Perf is disallowed, there's no reason to allow a non-documented System property (it is not one of the guaranteed properties as specified by the doc)

Well not to worry, the standard set appear to include java.home, so grabbing all the jars in %java.home%/lib is no more complex Wink

Either way, the idea above was simply a way I thought of that could give me 1 up on everyone else in terms of effective jar space - I don't think I want to use it, as it restricts the scope of the actual game to something I'm not particularly interested in making.
Implementing it was actually an interesting technical exercise into things I rarely use (java properties, zip manipulation, and regex).

It actually got me thinking how much game logic you could actually express through applying regular expressions to a know data set, and analysing the result.
Regex's are certainly very compact and contain a great deal of advanced logic - though not all of it appears to be applicable to game logic.

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline Abuse

JGO Knight


Medals: 12


falling into the abyss of reality


« Reply #15 - Posted 2006-10-17 00:18:39 »

I'm kind of leaning towards "no," - I can see we'll need to amend the "standard java library " rule to only include documented features.

if sun.misc.Perf is disallowed, there's no reason to allow a non-documented System property (it is not one of the guaranteed properties as specified by the doc)

Surely requiring that the game works on all 3 major platforms will ensure that no-one uses sun.misc.Perf? (it isn't present in the Apple VM is it?)

Make Elite IV:Dangerous happen! Pledge your backing at KICKSTARTER here! https://dl.dropbox.com/u/54785909/EliteIVsmaller.png
Offline woogley
« Reply #16 - Posted 2006-10-17 00:55:44 »

I'm not going to lie, I really don't know, I suck at technicalities =)

it feels more "logical" to allow only documented libraries. especially since the soundbank isn't even allowed just because Sun decided not to distribute it with the public jre. (if that makes sense. maybe not. still drunk)
Offline moogie

JGO Knight


Medals: 12
Projects: 6
Exp: 10 years


Java games rock!


« Reply #17 - Posted 2006-10-17 06:18:46 »

I'm kind of leaning towards "no," - I can see we'll need to amend the "standard java library " rule to only include documented features.

if sun.misc.Perf is disallowed, there's no reason to allow a non-documented System property (it is not one of the guaranteed properties as specified by the doc)

Well not to worry, the standard set appear to include java.home, so grabbing all the jars in %java.home%/lib is no more complex Wink

Either way, the idea above was simply a way I thought of that could give me 1 up on everyone else in terms of effective jar space - I don't think I want to use it, as it restricts the scope of the actual game to something I'm not particularly interested in making.
Implementing it was actually an interesting technical exercise into things I rarely use (java properties, zip manipulation, and regex).

It actually got me thinking how much game logic you could actually express through applying regular expressions to a know data set, and analysing the result.
Regex's are certainly very compact and contain a great deal of advanced logic - though not all of it appears to be applicable to game logic.

That is similar to what i was thinking of doing for my game (space trading sim) for generating the names of planets, ships, NPCs and the like. but I do not know if I will have enough byte space to do this and instead may just hard code and hope for the best :/
Offline zeroone
« Reply #18 - Posted 2006-10-17 13:35:59 »

I ran a test on OS X yesterday.  Apparently, sun.misc.Perf is in JRE 1.4.2 for OS X.  Though, there is still no sense in using it if we can use System.nanoTime().
Offline Markus_Persson

JGO Wizard


Medals: 15
Projects: 19


Mojang Specifications


« Reply #19 - Posted 2006-10-17 13:40:38 »

there are other java implmentations than the sun java jre. :-)

Play Minecraft!
Offline swpalmer

JGO Coder




Where's the Kaboom?


« Reply #20 - Posted 2006-11-19 04:28:38 »

there are other java implmentations than the sun java jre. :-)

None that matter... yet.

Offline Markus_Persson

JGO Wizard


Medals: 15
Projects: 19


Mojang Specifications


« Reply #21 - Posted 2006-11-19 18:19:55 »

 Roll Eyes

Play Minecraft!
Offline mlk

Junior Member




Muppet!


« Reply #22 - Posted 2006-11-30 12:33:41 »

there are other java implmentations than the sun java jre. :-)
Yes, and ones that "matter". But not really for the games space.

@Abuse, you scare me. Smiley

Offline Markus_Persson

JGO Wizard


Medals: 15
Projects: 19


Mojang Specifications


« Reply #23 - Posted 2006-12-02 12:30:48 »

Yes, and ones that "matter". But not really for the games space.

@Abuse, you scare me. Smiley

Using non-standard apis is not pure java. Using the sun.foo classes is not only bad, it's a great way of making sure your application isn't future proof and may stop working at any time, for any user.

Play Minecraft!
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Dwinin (21 views)
2014-09-12 09:08:26

Norakomi (55 views)
2014-09-10 13:57:51

TehJavaDev (65 views)
2014-09-10 06:39:09

Tekkerue (32 views)
2014-09-09 02:24:56

mitcheeb (54 views)
2014-09-08 06:06:29

BurntPizza (38 views)
2014-09-07 01:13:42

Longarmx (24 views)
2014-09-07 01:12:14

Longarmx (30 views)
2014-09-07 01:11:22

Longarmx (28 views)
2014-09-07 01:10:19

mitcheeb (36 views)
2014-09-04 23:08:59
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!