Jump to content

I think this game should have been written in Java with OpenGL


Xyphos

Recommended Posts

The biggest flaw of Java has nothing to do with it's performance or capabilities. Java is very easily decompiled. If your company likes their source to remain concealed from the general public then Java is not the right choice. Most companies that release games for sale fall into that group. Even those that avoid DRM like Squad still do not want their source code out in the open

Edited by Alshain
Link to comment
Share on other sites

In other news, OP, wise move putting the joke reaction in the OP. No offense to you, but plenty of people do exist who would be dumb enough to make this as a serious thread xD

Ouch. Poe'd. I hate the Internet.

Link to comment
Share on other sites

It's been many years since I've done any development work, but back in the day when Java was *new* it had plenty of issues - as I recall. First of all, Java is compiled into an intermediate code (looking it up, Wikipedia says 'bytecode'), which very much resembles scripting (IMO), and requires a runtime module specific to the platform you intend to execute it on (cross-platform compatibility)... it's not in direct executable machine code. In that sense, I view it as 'tokenized'. As somebody else already mentioned, GC can get wonky and disrupt things (usually at the most inopportune time, or so it seemed). Something else I recall was that Java was not fault tolerant, and because of that it was not used for/in any critical systems (I remember a number of Java applications with exactly such notice in the documentation). I did a quick search on that issue, and it seems only recently (around 2004-5) they've done something about it.

- - - Updated - - -

...thinking about it (fault tolerance), I think C-language suffered the same pitfalls in its infancy too.

Link to comment
Share on other sites

Honestly not sure what you're talking about. I run DX11 with about 40 mods and crash maybe once a week. If anything, I would have liked to see the game on Unreal Engine 4 or Cryengine 3, not a more basic engine.

I crash pretty often. It really depends on the aerodynamics though. If I don't put tail fins on it, look out below!

In seriousness (if I must), if I play the game for a few hours, it pretty much always crashes. It has a limited life span per session, it seems.

Link to comment
Share on other sites

I actually think Java plus something like LWJGL would have run KSP just fine, at least comparable to the performance we have today. The problem is that Unity comes with a ton of baggage that would have to have been written from scratch, and we'd still have the same problem of newbie game developer company (Squad has matured, just saying, they're fresh) with all their newbie mistakes, but probably more because they'd be making their engine from scratch. KSP still looks like crap so I don't think we'd take a hit there at all with Java+OpenGL, although mods like EVE probably wouldn't exist.

Link to comment
Share on other sites

It's been many years since I've done any development work, but back in the day when Java was *new* it had plenty of issues - as I recall. First of all, Java is compiled into an intermediate code (looking it up, Wikipedia says 'bytecode'), which very much resembles scripting (IMO), and requires a runtime module specific to the platform you intend to execute it on (cross-platform compatibility)... it's not in direct executable machine code. In that sense, I view it as 'tokenized'. As somebody else already mentioned, GC can get wonky and disrupt things (usually at the most inopportune time, or so it seemed).
All things that are exactly true for C# and .NET/Mono that Unity and KSP are using at the moment :D
Link to comment
Share on other sites

The biggest flaw of Java has nothing to do with it's performance or capabilities. Java is very easily decompiled.

not true. It's no easier or harder to decompile than managed C++ or C# which is what's at the heart of KSP.

It's easy to get a list of method names and argument types, but that's about it.

- - - Updated - - -

All things that are exactly true for C# and .NET/Mono that Unity and KSP are using at the moment :D

yup, which means not true at all. Ferret's idea of what bytecode is and how it's executed is seriously flawed. It was more or less accurate 15 years ago but no longer is.

And complaining that Java isn't platform independent because it needs a JVM that's specific to each platform is like complaining that Unix isn't platform independent because it needs different binaries for each platform. It's totally ludicrous.

Link to comment
Share on other sites

I love you.

I thought people only recognised RuneScape as an amazing use of Java!

I love you too, in a totally heterosexual and platonic, universal hippie kind of way.

also, I forgot about RuneScape :o

Link to comment
Share on other sites

I think the engine was chosen because when KSP started nobody had an idea how beautiful, large and complex the game would become. The way I remember it it all started out as a fun, little game to waste a couple of hours and the first keys were given out for $7 donations. KSP has come a long way since then and imo we can be happy how well Harvester and Squad have managed to integrate the constantly growing complexity and requirements into Unity.

I'm hoping there will be a KSP 2 at some point with an engine that allows even more. Larger textures, plentiful particle effects, neater physics calculations and more mods. Until then: Well done, Squad!

It is quite possible Squad and KSP have had an effect on how Unity has been upgraded, as well. There was an early period where Harvester actually lamented on how they were being handicapped by some limitations in the Unity engine, and it was about 3-4 months later Unity came out with an upgrade that actually allowed some big steps to be made with KSP. And now there is Unity 5, which Squad is really excited about. Makes me wonder if there is more to be gotten out of that engine than is just being discovered now.

Link to comment
Share on other sites

...

yup, which means not true at all. Ferret's idea of what bytecode is and how it's executed is seriously flawed. It was more or less accurate 15 years ago but no longer is.

And complaining that Java isn't platform independent because it needs a JVM that's specific to each platform is like complaining that Unix isn't platform independent because it needs different binaries for each platform. It's totally ludicrous.

I see no 'complaint' there, merely a fact I was pointing out. But now that you bring it up, no, Java is not platform independent ... as you pointed out, its JVM is required. Unix isn't in the picture here, nor is any other OS, as the JVM is nothing more than a(nother) layer over the OS that allows the communication of interpreted instructions (bytecode) from your Java application to the OS/CPU... the JVM passes machine code through. That is something I see as ludicrous; You want speed?... remove the layer. Java bytecode is compressed source code, as I said - tokenized, although said tokenization is not 'line by line' but optimized over complete methods. Subtle differences. Bottom line - the same. When you get down to it, Java is not very different from Python.

Link to comment
Share on other sites

...which is why both Java and Python perform significantly worse than native code in just about any benchmark you could name.

I too find the added layer rather ludicrous, and extremely inefficient.

Still not seeing the advantage of these newfangled languages at all - what, exactly, is wrong with C?

Also, 666th post. I guess I'm playing devils advocate today ;)

Edited by steve_v
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...