Fractal Softworks Forum

Please login or register.

Login with username, password and session length

Author Topic: Java 8  (Read 5958 times)

pegwymonie

  • Ensign
  • *
  • Posts: 13
    • View Profile
Java 8
« on: August 23, 2017, 05:47:04 PM »

Not a feature per say, but it would be a nice to have when developing mods. I'm not sure what all is holding it back, so I won't rush to complain.
Logged

Midnight Kitsune

  • Admiral
  • *****
  • Posts: 2847
  • Your Friendly Forum Friend
    • View Profile
Re: Java 8
« Reply #1 on: August 23, 2017, 07:23:22 PM »

Not a feature per say, but it would be a nice to have when developing mods. I'm not sure what all is holding it back, so I won't rush to complain.

Java 8 was tried out and found to make the game much more unstable
Logged
Help out MesoTroniK, a modder in need

2021 is 2020 won
2022 is 2020 too

TJJ

  • Admiral
  • *****
  • Posts: 1905
    • View Profile
Re: Java 8
« Reply #2 on: August 23, 2017, 08:10:15 PM »

Not a feature per say, but it would be a nice to have when developing mods. I'm not sure what all is holding it back, so I won't rush to complain.

Java 8 was tried out and found to make the game much more unstable

...for some people's configurations.

Good news is Java 9's official release is within a month! Making SS's bundled VM obsolete by a full 3 years, and 2 revisions :)

On a more constructive note, SS should explicitly specify the GC (and args) it wants to use, as the default GC is the most significant change between Java 7, 8 and 9.
Moreover, from my limited testing, the CMS collector performs best in SS, yet it has never been the default collector!
« Last Edit: August 24, 2017, 02:28:06 AM by TJJ »
Logged

Schwartz

  • Admiral
  • *****
  • Posts: 1453
    • View Profile
Re: Java 8
« Reply #3 on: August 23, 2017, 09:56:59 PM »

Used Java 8 for SS for several months and never had a crash that wasn't something else's fault. It's been stable for me. Anyway.. with 9 around the corner it might not be a good idea to switch to a soon to be outdated version but jump on the new one when it's stable instead.
Logged

xenoargh

  • Admiral
  • *****
  • Posts: 5078
  • naively breaking things!
    • View Profile
Re: Java 8
« Reply #4 on: August 23, 2017, 10:05:43 PM »

I'd like to see 8 used, but I suspect the instability mainly had to do with legacy 32-bit end-users and people with less than 4GB of RAM available. 

I think that SS needs to be explicitly 64-bit; there aren't many 32-bit users left and 4GB is no longer even craptop-standard RAM.
Logged
Please check out my SS projects :)
Xeno's Mod Pack

Tartiflette

  • Admiral
  • *****
  • Posts: 3529
  • MagicLab discord: https://discord.gg/EVQZaD3naU
    • View Profile
Re: Java 8
« Reply #5 on: August 23, 2017, 11:19:32 PM »

Used Java 8 for SS for several months and never had a crash that wasn't something else's fault. It's been stable for me.
"Works for me" means hardly anything when talking about code...

I think that SS needs to be explicitly 64-bit; there aren't many 32-bit users left and 4GB is no longer even craptop-standard RAM.
But what do you do about all those people? Refund all of them? I've seen quite a few that play Starsector because it work on their low end 32 bits system unlike so many games now.
Logged
 

Achataeon

  • Commander
  • ***
  • Posts: 169
  • ~stare~
    • View Profile
Re: Java 8
« Reply #6 on: August 24, 2017, 01:02:24 AM »

Yep. Not really looking forward when I can't play SS on my craptop anymore. That said, it simply is the reality that systems would end up into obsolescence at one point or another. Just hoping that it wouldn't catch up with me anytime soon.

Still, if it were the case, that the development of SS requires that it run Java 8, or even further, I wouldn't mind.
Logged
"On average, a human has one breast and one testicle"
- Vsauce, Michael here

MesoTroniK

  • Admiral
  • *****
  • Posts: 1731
  • I am going to destroy your ships
    • View Profile
Re: Java 8
« Reply #7 on: August 24, 2017, 02:48:37 AM »

Not a feature per say, but it would be a nice to have when developing mods. I'm not sure what all is holding it back, so I won't rush to complain.

Java 8 was tried out and found to make the game much more unstable

And eat more ram sometimes.
And leak memory sometimes.
And crash for random god knows why reasons sometimes.
And run worse sometimes.


For every person it worked fine for, it didn't for others. While JRE7 works perfectly for all.

TJJ

  • Admiral
  • *****
  • Posts: 1905
    • View Profile
Re: Java 8
« Reply #8 on: August 24, 2017, 03:08:19 AM »

Not a feature per say, but it would be a nice to have when developing mods. I'm not sure what all is holding it back, so I won't rush to complain.

Java 8 was tried out and found to make the game much more unstable

And eat more ram sometimes.
And leak memory sometimes.
And crash for random god knows why reasons sometimes.
And run worse sometimes.

All those issues sound like they stem from a change in GC policy (which has knock on effects to passively released native vram resources).

If the way SS manages native resources is sensitive to GC policy, then it's inherently unstable and will need fixing at some point.
Logged

pegwymonie

  • Ensign
  • *
  • Posts: 13
    • View Profile
Re: Java 8
« Reply #9 on: August 24, 2017, 04:38:38 AM »

A lot of these comments are what I expected, but wasn't sure. Java is meant to be backwards compatible, that one of the reasons enterprises use it for development.

...for some people's configurations.

Good news is Java 9's official release is within a month! Making SS's bundled VM obsolete by a full 3 years, and 2 revisions :)

On a more constructive note, SS should explicitly specify the GC (and args) it wants to use, as the default GC is the most significant change between Java 7, 8 and 9.
Moreover, from my limited testing, the CMS collector performs best in SS, yet it has never been the default collector!
I would not suggest upgrading to java 9 just yet, it has been the most contentious release since the inception of the language. Where as Java 8 is stable now, and has a lot of very good features for a moddable game (Lambdas(Callbacks!), and Streams(It kills me a little inside every time a write a (for X x in Xs) loop))

On the garbage collecting, I am surprised the CMS one performs the best. The "new" G1 garbage collector is supposed to be the best for time sensitive apps. It might be because it running on java 7 that cms works better, G1 string deduplication was not introduced until 8.20.

I would like to see what Alex has to say about it, not that I don't trust you all. He is the maker, therefore it is his opinion is what ultimately drives the development.
Logged

Bastion.Systems

  • Captain
  • ****
  • Posts: 412
  • Special Circumstances LCU
    • View Profile
Re: Java 8
« Reply #10 on: August 24, 2017, 05:49:49 AM »

On a more constructive note, SS should explicitly specify the GC (and args) it wants to use, as the default GC is the most significant change between Java 7, 8 and 9.
Moreover, from my limited testing, the CMS collector performs best in SS, yet it has never been the default collector!

I have little experience with java, could you make a guide how to set up SS with your configuration? I am interested to see the gains CMS brings (if any) as higher memory use is not a factor for me.
Logged

xenoargh

  • Admiral
  • *****
  • Posts: 5078
  • naively breaking things!
    • View Profile
Re: Java 8
« Reply #11 on: August 24, 2017, 07:23:46 AM »

Quote
But what do you do about all those people? Refund all of them? I've seen quite a few that play Starsector because it work on their low end 32 bits system unlike so many games now.
1.  If you buy an Alpha product and it's during a huge tech shift that required moving to a new OS paradigm, then no, I don't think you get a refund later.

2.  Look, I hung on to 32-bit (for business reasons) a lot longer than most folks did, and I totally understand that not everybody can afford to upgrade, etc., but at this point it's not worthwhile to continue legacy support.  As it is, unless you're playing Vanilla, you're well past the 32-bit RAM limits, and that's unlikely to change.

I know that with Java, we're getting some of the best of both worlds, in the sense of legacy support in the VMs, but I don't think planning around that is sensible; when the game makes it to Steam / GoG / etc., the audience there is overwhelmingly 64-bit these days.
Logged
Please check out my SS projects :)
Xeno's Mod Pack

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 24116
    • View Profile
Re: Java 8
« Reply #12 on: August 24, 2017, 09:00:17 AM »

I would like to see what Alex has to say about it, not that I don't trust you all. He is the maker, therefore it is his opinion is what ultimately drives the development.

Hi! More or less what others have mentioned, yeah. It's not *just* what the default GC is, though that would probably resolve a good bit of the issues. I also remember some JVM crashes being reported that didn't appear to be attributable to driver bugs and such. It just ... wasn't good.

(In case it's not clear, I did release with Java 8 at one point and the number of assorted, game-breaking issues being reported was such that I had to roll back to 7 and am in no hurry to try it again.)


If the way SS manages native resources is sensitive to GC policy, then it's inherently unstable and will need fixing at some point.

It might need adjusting (especially if changing to another java version) - but I wouldn't call it "inherently unstable" if it comes with a specific version of Java that it can rely on behaving in a certain way.
Logged

pegwymonie

  • Ensign
  • *
  • Posts: 13
    • View Profile
Re: Java 8
« Reply #13 on: August 24, 2017, 12:06:40 PM »

(In case it's not clear, I did release with Java 8 at one point and the number of assorted, game-breaking issues being reported was such that I had to roll back to 7 and am in no hurry to try it again.)

I figured it was probably attempted at some point, I could not find anything in the FAQ or a quick search so I figured I'd ask.

There are some backports of the features I tend to use most, so I might try to work them in using the backports.
Logged