Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (581)
games submitted by our members
Games in WIP (500)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 2 [3] 4
  ignore  |  Print  
  Preparations..  (Read 15475 times)
0 Members and 1 Guest are viewing this topic.
Offline woogley
« Reply #60 - Posted 2010-11-09 19:31:36 »

Are the advantages of 1.6 a good enough reason to say goodbye to 10% of our audience?

Considering our "audience" (including judging panel) are developers, I don't think it really matters.
Offline SimonH
« Reply #61 - Posted 2010-11-09 19:36:31 »

Considering our "audience" (including judging panel) are developers, I don't think it really matters.
What? The 100,000+ people who've played miners4K are all developers?!!!  Shocked

People make games and games make people
Offline nonnus29

Senior Member




Giving Java a second chance after ludumdare fiasco


« Reply #62 - Posted 2010-11-09 19:46:48 »

I am constantly amazed at how developers can expend so much energy on minuscle topics like this.  Almost 70% of the internet has 1.6 according to those stats, the 8% on 1.5 surely don't play game applets anyway.

Having said that, I don't have preference, have fun deciding.

Edit: yes having a bad day at jorb  Cry
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline woogley
« Reply #63 - Posted 2010-11-09 20:06:12 »

What? The 100,000+ people who've played miners4K are all developers?!!!  Shocked

You do understand some people had to actually install/update Java to play it, right? I remember similar discussions when L4K Dead hit reddit ..

Also, 1.5 is EOL. This is a silly discussion really
Offline Alan_W

JGO Knight


Medals: 8
Projects: 3


Java tames rock!


« Reply #64 - Posted 2010-11-09 20:36:32 »

I don't mind whether the target is 1.5 or 1.6.  The question is whether any of the changes in 1.6 lead to better performance due to compilation improvements or a smaller executable.  If not, I'll target 1.5 since I can then test on my aging mac powerbook.  (I'm not feeling like buying a new mac due to certain recent developments)

Edit: I can easily compile to 1.6 on my PC, but can't test it on my mac as it is an old powerpc mac and apple only supports java 1.5 on that platform.  I would need to buy a new intel based mac to get java 1.6, and I'm not about to do that.  So... what I wanted to know was if anyone could think of any good reason to target 1.6 rather than 1.5.  This doesn't mean the comp has to have a target of 1.5.  If I target 1.5 it should work on 1.6.  What I'm trying to figure out is whether to target 1.6 on the PC only (it may or may not work on the mac) or target 1.5 and test on both PC and Mac.  The only reason to target 1.6 is if ot contains any new "must-have" features.

At the moment I can't see any "must haves" in 1.6.  Does the marking scheme still consider cross-platform important?

Time flies like a bird. Fruit flies like a banana.
Offline appel

JGO Wizard


Medals: 49
Projects: 5


I always win!


« Reply #65 - Posted 2010-11-09 23:52:30 »

This contest is not about 100% backwards compatibility with outdated JRE's. We're not making business critical applications here. It's primarily a contest by and for the developers, secondary is allowing everyone else enjoy the games. Also, I believe 1.5 is officially End-Of-Life, so anyone that still has it, shame on them.

1.6 it is, at least in my mind  Smiley

Check out the 4K competition @ www.java4k.com
Check out GAMADU (my own site) @ http://gamadu.com/
Offline SimonH
« Reply #66 - Posted 2010-11-10 02:48:43 »

This is a silly discussion really
Killer rhetoric! But you're right of course; 1.5 is old news. It's just that I'm a softy & hate the thought of some poor mac-book-bound soul thinking: 'Awww! I can't play it!' - especially when I just spent some time bigging the damn thing up to them... *blush*

People make games and games make people
Offline SquashMonster

Senior Member


Medals: 1
Projects: 2



« Reply #67 - Posted 2010-11-11 01:12:51 »

I looked through the changes for 1.6.  Library wise, they added more support for scripting languages, some XML stuff, an interface for referencing Java compilers, an updated database framework, annotations, and some helpers for working with Swing.  I don't think anyone has room to include a scripting language, XML is huge, referencing a compiler midway through a game sounds downright bizarre, accessing a database is probably a rules violation, annotations increase your class file size in a way your compressor won't get along with, and Swing is too bloaty for Java4k.  I don't think we need any of the new libraries.  The new VM has some significant performance improvements, especially on low-level stuff so it's likely especially improved for our purposes.  However, I'm pretty sure anybody running 1.6 gets those performance improvements regardless of the version of Java the application was compiled for, so this is no different than our users having differently capable computers.

So I'd vote for sticking with 1.5, because I don't think there are any advantages to the upgrade.

If, however, anybody thinks of a use for any of the new library features, I'm willing to change my vote.  Of the above, I think the new scripting language features are the most promising, since their API seems surprisingly J4k-friendly.  Before I head off and run experiments, I have to ask: would using a scripting language be allowed in Java 4k?  If parts of your game are written in Perl or whatever, does that violate the idea that the program should be compiled in Java?
Offline Markus_Persson

JGO Wizard


Medals: 12
Projects: 19


Mojang Specifications


« Reply #68 - Posted 2010-11-11 08:52:31 »

I will be participating again this year, and I vote for 1.6.

Play Minecraft!
Online Riven
« League of Dukes »

JGO Overlord


Medals: 606
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #69 - Posted 2010-11-11 09:39:02 »

If, however, anybody thinks of a use for any of the new library features, I'm willing to change my vote.  Of the above, I think the new scripting language features are the most promising, since their API seems surprisingly J4k-friendly.  Before I head off and run experiments, I have to ask: would using a scripting language be allowed in Java 4k?  If parts of your game are written in Perl or whatever, does that violate the idea that the program should be compiled in Java?

There have been entries (or a single entry?) in Scala last year, and people have been fiddling with bytecode directly to write their game, for which there wouldn't be a Java sourcecode representation. I think that it is acceptable to use whatever means to write a game within 4K, that runs on the Java platform. What language you use is entirely up to you.

I think, however, that those scripting languages are likely to produce massive amounts of bytecode. The only real option is to use Rhino (which is embedded in the JRE), and hope your javascript sourcecode is small.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline kappa
« League of Dukes »

JGO Kernel


Medals: 70
Projects: 15


★★★★★


« Reply #70 - Posted 2010-11-11 10:31:32 »

If its going to be java 1.6+ then maybe some javascript code can be added to the site which simply detects if you have an older JRE, if so it displays a message "Java 6 or greater required, please update your java install" or something. Should be less frustrating then it just failing on older jvm's.
Offline nonnus29

Senior Member




Giving Java a second chance after ludumdare fiasco


« Reply #71 - Posted 2010-11-12 23:17:56 »

There have been entries (or a single entry?) in Scala last year, and people have been fiddling with bytecode directly to write their game, for which there wouldn't be a Java sourcecode representation. I think that it is acceptable to use whatever means to write a game within 4K, that runs on the Java platform. What language you use is entirely up to you.

I think, however, that those scripting languages are likely to produce massive amounts of bytecode. The only real option is to use Rhino (which is embedded in the JRE), and hope your javascript sourcecode is small.

It used to be you couldn't run Rhino/javascript in an applet with out a security certificate because Rhino required file system access for compiling javascript (iirc).  It was way before 1.6 when I played with it though so things may have changed.  But yeah, text will compress a lot better than binary data.  So you'd have a jar with an applet that launches Rhino with a text file from the jar.

Or maybe Rhino compiles to bytecode.  I know that Jython emits code that  is java with all the Python features implemented as PyObjects so you're looking at a massive amount of additional compiled code.  So I'm not hopeful that a compiled dynamic language would be economical on space.

AT one point Charles Nutter had a statically type Ruby subset (Duby?) that may compile to some tighter bytecode depending.
Offline appel

JGO Wizard


Medals: 49
Projects: 5


I always win!


« Reply #72 - Posted 2010-11-13 03:44:18 »

Scripting languages? Sure, as long as it's an executable as in an applet using the current JRE.

It's really just a resource you're executing. A resource could be anything, data file, image, script or inline code. A lot of programmers have "created" their own little scripting languages to procedurally generate content within 4k games. Call it some proprietary format, a script or just some hack, the end result is the same.

It will be interesting to see if people can do anything useful with rhino within the restrictions of 4k.

Check out the 4K competition @ www.java4k.com
Check out GAMADU (my own site) @ http://gamadu.com/
Offline SquashMonster

Senior Member


Medals: 1
Projects: 2



« Reply #73 - Posted 2010-11-13 05:55:22 »

So apparently the notes I read on improvements in 1.6 completely missed the incredibly useful Path2D.  That's more than enough to make me want to switch to 1.6, by itself.  So consider my vote switched.  Though I think the consensus was already leaning towards 1.6 ;-).
Offline Groboclown
« Reply #74 - Posted 2010-11-13 17:52:43 »

In JDK 1.5, the only zip compression method that's supported is deflate.  A quick test showed me that 1.6 should support the different 7z zip compression methods: deflate64, bzip2, and lzma.  Is this a correct assumption, across the different platforms?

Offline Morre

JGO Knight


Medals: 2
Projects: 10


I'm Dragonene on IRC.


« Reply #75 - Posted 2010-11-17 13:04:53 »

It's about time the encoding problem was fixed. Morre must be sick of being called MÃ¥ns Olson.

Haha, yes, it has bugged me a bit. But it's not all that bad. Smiley

Also: I agree that we should go with 1.6. The main reason for this is that I couldn't get pack200 to work properly under 1.5, and eventually just skipped using it.

Offline zeroone
« Reply #76 - Posted 2010-11-17 16:05:54 »

Quote
Also: I agree that we should go with 1.6. The main reason for this is that I couldn't get pack200 to work properly under 1.5, and eventually just skipped using it.

The Java 1.6 plugin for Mac OS X is not able to load pack200 binaries as far as I know from my own testing.  Even if we allow Java 1.6, we'll still need to supply a normal jar for those users. 

Did anyone check if Java 1.6 produces more compact or more bloated class files?  If the Compile-And-Shrink service is updated to support Java 1.6 compilation, can there be an option for Java 1.5 as well just in case it produces smaller binaries?
Offline Groboclown
« Reply #77 - Posted 2010-11-17 17:20:28 »

Did anyone check if Java 1.6 produces more compact or more bloated class files?  If the Compile-And-Shrink service is updated to support Java 1.6 compilation, can there be an option for Java 1.5 as well just in case it produces smaller binaries?

I just ran a quick check on my Linux setup, comparing Sun JDK 1.5.0_22 vs. Sun JDK 1.6.0_22 on several of my 4k games.  Both produced the same sized class files.

Edit: turns out I wasn't running with different compilers.  The raw 1.5 compiled classes were smaller than the 1.6, and the final compressed versions were smaller by quite a bit as well.

Edit 2: Running the 1.6 compiler with a 1.5 target + 1.5 rt.jar generated the same sized class files as when running the 1.5 compiler.

Online Riven
« League of Dukes »

JGO Overlord


Medals: 606
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #78 - Posted 2010-11-17 20:05:22 »

Interesting, but you have to be careful to draw conclusions from 1 testcase.

I'll probably add it to Compile-And-Shrink, unfortunately doubling the processing time.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline Groboclown
« Reply #79 - Posted 2010-11-17 20:49:32 »

Interesting, but you have to be careful to draw conclusions from 1 testcase.

This was performed with 34 different class files, but your warning still applies - these are only minor changes to essentially 4 different classes.

Online Riven
« League of Dukes »

JGO Overlord


Medals: 606
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #80 - Posted 2010-11-18 19:31:20 »

Added java1.5-rt.jar to the shrinker:
    http://indiespot.net/java-four-kay

Please report whether it makes smaller files...

For me the jars are indeed smaller, but the final pack.gz files are just as big persecutioncomplex

Having said that... as several gz-compressors are non-deterministic, it's basically anyones guess. I get differences of up to 9 bytes per run.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline zeroone
« Reply #81 - Posted 2010-11-18 22:27:05 »

Quote
Added java1.5-rt.jar to the shrinker

Cool.  But, what was there before?  I thought we wanted to add Java 1.6.
Online Riven
« League of Dukes »

JGO Overlord


Medals: 606
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #82 - Posted 2010-11-18 22:29:51 »

Read this:

I just ran a quick check on my Linux setup, comparing Sun JDK 1.5.0_22 vs. Sun JDK 1.6.0_22 on several of my 4k games.  Both produced the same sized class files.

Edit: turns out I wasn't running with different compilers.  The raw 1.5 compiled classes were smaller than the 1.6, and the final compressed versions were smaller by quite a bit as well.

Edit 2: Running the 1.6 compiler with a 1.5 target + 1.5 rt.jar generated the same sized class files as when running the 1.5 compiler.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline zeroone
« Reply #83 - Posted 2010-11-21 17:04:21 »

Quote
Added java1.5-rt.jar to the shrinker:
    http://indiespot.net/java-four-kay

Please report whether it makes smaller files...

For me the jars are indeed smaller, but the final pack.gz files are just as big

Having said that... as several gz-compressors are non-deterministic, it's basically anyones guess. I get differences of up to 9 bytes per run.

Riven,

I got similar results.  The jars are slightly smaller, but the Java 6 pack.gz files are exactly the same size as the Java 5 ones.  Is it possible to add a checkbox to toggle Java 6 on/off?  With this change, the service takes much longer to finish processing.
Online Riven
« League of Dukes »

JGO Overlord


Medals: 606
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #84 - Posted 2010-11-21 17:07:15 »

Well, the service takes twice as long, and I added a 250ms delay for each execution of a native process. Which roughly doubles the duration again, causing it to take four times as long as previously.

So I'm going to get rid of the Java 5 rt.jar compiler, but the service will still take twice as long, as it claimed way too much resources of the server.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Online Riven
« League of Dukes »

JGO Overlord


Medals: 606
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #85 - Posted 2010-11-21 17:25:38 »

FYI: Java 1.5 rt.jar is now disabled.

If anyone prefers to run this service offline, here is the steaming pile that is supposed to be the sourcecode.

With some minor effort you can refactor it to run standalone.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline Markus_Persson

JGO Wizard


Medals: 12
Projects: 19


Mojang Specifications


« Reply #86 - Posted 2010-11-22 21:25:19 »

Hey, cool! Thank you!

What proguard settings are you using?

The web-based version says:
Quote
Minecraft4k.java => 10031 bytes
Minecraft4k.class => 4015 bytes
Minecraft4k.normal.java6.jar => 2770 bytes
Minecraft4k.normal.java6.pack => 3171 bytes
Minecraft4k.progrd.java6.jar => 2719 bytes
Minecraft4k.progrd.java6.pack => 3122 bytes

While the downloaded one says:
Quote
Minecraft4k.java => 9668 bytes
Minecraft4k.class => 4015 bytes
Minecraft4k.normal.java6.jar => 2770 bytes
Minecraft4k.normal.java6.pack => 3171 bytes
Minecraft4k.progrd.java6.jar => 2722 bytes
Minecraft4k.progrd.java6.pack => 3128 bytes

Play Minecraft!
Online Riven
« League of Dukes »

JGO Overlord


Medals: 606
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #87 - Posted 2010-11-22 22:28:06 »

You seriously refactored that mess-with-dependencies, to something that runs?!

proguard.conf
1  
2  
3  
4  
5  
6  
7  
libraryjars /root/jdk1.6.0_18/jre/lib/rt.jar
-keep public class *
-keep class *
-allowaccessmodification
-overloadaggressively
-optimizationpasses 99
-defaultpackage ''


proguard.fixed.conf
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
-libraryjars /root/jdk1.6.0_18/jre/lib/rt.jar
-keep public class *
-keep class *
-allowaccessmodification
-overloadaggressively
-optimizationpasses 99
-defaultpackage ''

-keepclassmembernames class * {
  private *;
  protected *;
  public *;
  * ;
}


As you can see, nothing special.

Keep in mind that the compressors are non-deterministic, so the results vary among runs. Also try the "randomize" feature, which takes a lot longer, which might save a byte or two.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline zeroone
« Reply #88 - Posted 2010-11-22 23:56:36 »

Quote
You seriously refactored that mess-with-dependencies, to something that runs?!

Any chance you can post the refactored version?  Grin
Offline Markus_Persson

JGO Wizard


Medals: 12
Projects: 19


Mojang Specifications


« Reply #89 - Posted 2010-11-23 00:50:05 »

Sure: http://www.minecraft.net/temp/Compressor.java

Play Minecraft!
Pages: 1 2 [3] 4
  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.

xsi3rr4x (64 views)
2014-04-15 18:08:23

BurntPizza (62 views)
2014-04-15 03:46:01

UprightPath (75 views)
2014-04-14 17:39:50

UprightPath (58 views)
2014-04-14 17:35:47

Porlus (76 views)
2014-04-14 15:48:38

tom_mai78101 (101 views)
2014-04-10 04:04:31

BurntPizza (161 views)
2014-04-08 23:06:04

tom_mai78101 (256 views)
2014-04-05 13:34:39

trollwarrior1 (209 views)
2014-04-04 12:06:45

CJLetsGame (216 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
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!