Jump to content

I don't like Unity (Split from "Blocker features in KSP2")


ronson49

Recommended Posts

2 hours ago, Renegrade said:

What the eff?

Comparing Unity and Java is .. not really right (as in apples and oranges.. or maybe like.. apples and machine screws), but if you consider the underlying language when in a .NET/mono build, there's an element of truth here.   People don't seem to get that .NET/mono is not native, and runs as bytecode on a VM.  Does that sound even remotely familiar?   Anyone?  Bueller?

Anyhow, I'm kinda sick of Unity cropping up everywhere.   I understand Squad's reasons (it's a lot easier than rolling your own engine or using one of the big names, and cheaper to boot, especially back then) for selecting it, plus a lot of the other indie developers (same reasons as Squad), and maybe even for KSP2 (I don't know much about these new guys - just because it's a Take Two product doesn't mean it has TT's entire budget at it's disposal), but it is in no way an optimized, high-performance engine.

Garbage-collected language will always have trouble in realtime:

It really is Java-like:

https://en.wikipedia.org/wiki/Common_Language_Runtime

..and I have a real hard time trusting anything from Microsoft.  You know that old expression, "fool me once, shame on you, fool me five thousand, six hundred and eighty two times, I'm deeply effing idiotic and should really, REALLY stop trusting you!".

Quite funny that Disco Elysium was held up as a graphically intense game.  I think someone is confusing artistic talent with powerful graphics engines.

Anyhow, I have kerbals to land on the newly textured planets...

 

Unity has a lot of C++ code in the actual engine.  This really is an invalid way to look at it.

That, and C# and Java are actually quite performant when given enough memory.  Not that any of that makes a point...  because this is a silly comparison in the first place.

 

Link to comment
Share on other sites

8 hours ago, Arugela said:

It's not my CPU. it's the coding and the stutter from the coding of older parts that haven't been rehauled to work with proper code. Stutter tripples lag time. Without the stutter the game would be playable at high parts counts 3x more efficient compared to now and I wouldn't be complaining as much. It's a coding problem. I've already documented it, but as it's takes high parts counts(only 688 in this case) to demonstrate and bring out the issue. So, nothing will be looked into or fixed.

There is stutter at high parts counts(which has been an issue since the dawn of the game) even at 0% throttle just from turning on the engine. Even a single engine. And it wasn't fixed by the garbage collection. The new rotary parts with massive amount of parts does not create this stutter at all. It's a flaw in the code related to older engines!

I have a ship with like over 100 rotor wings and 14 rotors going at nearly 700 parts. It does not stutter and runs at a cool 5 seconds per second from actual lag that is from my CPU. If you turn on one older engine with no throttle. every second a stutter happens that takes 2 seconds a piece for 10 extra second. Making it 15 seconds per second for 3x the lag. The 5 seconds per second would be fine for me in comparison. Which is from my CPU.

Note: I've even provided the ship and description to test this by just going onto the runway and not even having to fly. It takes nothing to see the problem. And yet nobody cares about anything. Nobody will listen. Nobody will help.

And don't tell me to use the rotors. I would like to get into space thank you!

 

Edit: This problem also seems to be related to the number of older engines on a ship. It increases the stutter with with how many are on the ship. Even if not throttled up. The game is doing something just because the engines are there physically. but even one engine with the same parts count causes stutter. New parts like rotors cause absolutely none! Note: The stutter goes away the moment you turn the engines off. But is compounded by how many engines are present even if turning on only one engine.

I think the stutter is down to 1 second per second for only double the lag now.

 

It is your cpu. Ksp loves single core performance. That little phenom 2 1100t is what's holding you back. 

Look around, people are having better performance. 

Yes, it is the games poor coding, but it has gotten better with 1.8. If you're having issues, it's your cpu, I have no other answer for you. 

Get an 8th gen Intel or a ryzen cpu, then pair it with high speed ram. You'll see the difference. 

Link to comment
Share on other sites

Honestly, this person just posts things about unity with no regard to any of the evidence that you guys put forth, and this cycle will continue until the  KSP 2 release. If it turns out it's badly optimized, we'll concede defeat (at least, for the "KSP 2 will be badly optimized" argument.* If it turns out it's optimized well, which it will be, this person will probably go quiet.... for some reason. @ronson49, please don't continue this cycle, read what they have to say and put out a thread respectfully refuting each claim they have; WITH EVIDENCE, and I'll be the first to agree with you, if it checks out. But right now it seems that you post things, allow people to prove you wrong, then call them out individually, and then go quiet when they prove you wrong again. C'mon, man, we're getting tired of it.

Edited by Concodroid
I originally said "with no regard to any of the evidence we put out"; but as I haven't put out any evidence, yet, I changed it. *EDIT 2: Originally just said "we'll concede defeat." Thanks @5thHorseman, I fixed it.
Link to comment
Share on other sites

3 hours ago, R-T-B said:

 

Unity has a lot of C++ code in the actual engine.  This really is an invalid way to look at it.

That, and C# and Java are actually quite performant when given enough memory.  Not that any of that makes a point...  because this is a silly comparison in the first place.

 

It might, but C++ itself isn't particularly fast unless you really know what you're doing (and that ends up looking like plain ol' C, strangely enough, only it takes six weeks to compile vs forty-five seconds).   And mixing a GC and manual-memory-management language sounds like one of those 'worst of both worlds' things.

I disagree with the memory thing - I have 32GiB and I still get GC stutters.  The only way to avoid such stutters is to not do dynamic allocation at all.  All the "disadvantages" of manual memory allocation with none of the benefits.

(note that these stutters don't really matter if you're doing some batch-style processing, but it's very obnoxious in a realtime application like a game)

Anyhow I think I'm getting too offtopic.   I definitely agree that Unity<>Java is a strange comparison.  Apples and machine screws.

Link to comment
Share on other sites

1 hour ago, Renegrade said:

I disagree with the memory thing - I have 32GiB and I still get GC stutters.

I do too.  Java or rather C# is still not the issue.

I didn't say KSP was well written.  It really doesn't strike me as being such.

Granted, it could be a lot worse.

Link to comment
Share on other sites

On 10/20/2019 at 12:09 PM, GoldForest said:

KSP 3 will be on Unity if it is ever made. There's no other game engine that lets you do in KSP what Unity allows. 

Unreal engine - Made for Shooters and Racers.
Bethesda's game engine - Made for shooters and sword fighters 
Cry engine - Made for shooters 

No engine can do what Unity can do. It's a universal game engine, which can do anything you want or need it to do.
2d Platformer
3d platformer
Flight simulator
Side scroller rpg
FPS and TPS shooters. 

Name one game engine that is more robust than Unity? That is readily available for developers to use? 

The only way you won't get a KSP made in Unity, is if someone made a custom game engine for KSP. 

Is that really true though? I often wonder if its really so called engine limitations or developer laziness.  If ea chooses to make everything on frostbite they will make a lot of money in the long run. Mass effect andromadas issue had nothing to do with frostbite if you ask me. It was a development problem and people just decided to blame it on the engine. Forgive my ignorance because I have no problem with unity but what part of KSP would unreal not be able to do as well?  Its clear that if you are developing a racing game that you would choose a proven engine but I just think it's more the simplicity and licensing that makes unity so popular. Not a bad thing. Better simple than complicated. I want ksp to stay on unity because porting mods will probably be quite easy. Well part mods at least . I no nothing about scripting (proper modding) unfortunately. 

 

Edited by dave1904
Link to comment
Share on other sites

33 minutes ago, dave1904 said:

Is that really true though? I often wonder if its really so called engine limitations or developer laziness.  If ea chooses to make everything on frostbite they will make a lot of money in the long run. Mass effect andromadas issue had nothing to do with frostbite if you ask me. It was a development problem and people just decided to blame it on the engine. Forgive my ignorance because I have no problem with unity but what part of KSP would unreal not be able to do as well?  Its clear that if you are developing a racing game that you would choose a proven engine but I just think it's more the simplicity and licensing that makes unity so popular. Not a bad thing. Better simple than complicated. I want ksp to stay on unity because porting mods will probably be quite easy. Well part mods at least . I no nothing about scripting (proper modding) unfortunately. 

 

Unreal engine wouldn't be able to handle KSP that well imo. Sure, you could use unreal, but I feel unreal would create performance issues for KSP. The game engine is built for specific things and I doubt KSP is one of them. Squad and Star Theory would have to write a lot of custom code to the point that it would probably be 40% Unreal 60% Custom. At that point why not go 100% custom code  and engine? 

And yes, it's not the game engines fault per say as coding is 50% of the problem. A badly coded game on a good engine will run like crap. A good coded game on a poorly coded engine will run like crap. Unity is not a bad engine, so we have to chock it up to poor coding, which KSP 1 has. KSP 2 hopefully will have good coding. 

Link to comment
Share on other sites

41 minutes ago, dave1904 said:

effect andromadas issue had nothing to do with frostbite if you ask me.

Frostbite can obviously run very well. From what I've understood is that it's poorly documented and the APIs are obscure, which makes it difficult to develop on. 

Link to comment
Share on other sites

So I was just wondering what was up in KSP, and I run across this thread.  I can see both sides of the issue here, I think OP is mad because Unity according to him is like a "real" game engine with training wheels.  Well it isn't the engine, because I've seen loads of awesome games that use Unity.  Some of them are even indistinguishable from other engines.  I think Unity bashing is really unfair...

Link to comment
Share on other sites

6 hours ago, Draconiator said:

So I was just wondering what was up in KSP, and I run across this thread.  I can see both sides of the issue here, I think OP is mad because Unity according to him is like a "real" game engine with training wheels.  Well it isn't the engine, because I've seen loads of awesome games that use Unity.  Some of them are even indistinguishable from other engines.  I think Unity bashing is really unfair...

It feels more like OP is saying, "I'm blaming KSP's performances issues on Unity and not the dev's poor coding skills, because I am on a Unity hating ban wagon," to me. They asked for good 2010+ 3D unity games that didn't suffer performacnes issues, they were provided. They ignored them and kept requesting them. Then when the community requested they provided evidence that unity was the problem, they ignored them and even went silent. 

OP doesn't like Unity because it's Unity. That's the message I am receiving.

Link to comment
Share on other sites

4 hours ago, GoldForest said:

They asked for good 2010+ 3D unity games that didn't suffer performacnes issues, they were provided. 

 

Human Fall Flat is the only one I have recognized, and it sucks hardcore but granted, it is performant until that section with the rocks, then it grinds a bit.   Because it dips a lot with merely 20-30 spheres,  I do not claim this is a victory.    I consider it a failure of the point.   KSP needs upto 100 orders of magnitudes more than that in part count to make people happy. 

I am sure they just need to optimize a few things lol.   Another note for those saying that you can do threaded physics, no you can't like this because each time a rod is calculated, it effects other rods in the resolver.  

 

 

Edited by ronson49
Link to comment
Share on other sites

On 10/22/2019 at 3:04 AM, dave1904 said:

Mass effect andromadas issue had nothing to do with frostbite if you ask me. It was a development problem and people just decided to blame it on the engine.

I don't want to go on too much of a tangent, but the issue with Frostbite is that it was originally designed specifically for first person shooters. Other types of games have different requirements, and Bioware ended up having to patch the engine to get it to do the things they needed. Other EA studios have had their own problems with Frostbite, it's not just Bioware.

Link to comment
Share on other sites

13 hours ago, Draconiator said:

So I was just wondering what was up in KSP, and I run across this thread.  I can see both sides of the issue here, I think OP is mad because Unity according to him is like a "real" game engine with training wheels.  Well it isn't the engine, because I've seen loads of awesome games that use Unity.  Some of them are even indistinguishable from other engines.  I think Unity bashing is really unfair...

 

You mean I expect more investment from a multi billion pound parent investor to correctly realize the game?  Everyone is telling me "oh but KSP was just a guy in his spare time". 

 

Sure it was. 

 

TT is arguably one of, if not the biggest publishers in the world. 

 

And we are going ahead with   `Start > Grandmother > Tools > Unity`.   I mean you have to just laugh at it right?   You can tell they (prominent defenders of the faith on this thread) are fan boys as well because for example somehow Unreal simply would be NO GOOD for KSP  because basically it was optimized for FPS.  Alright fair enough.....  BUT  somehow Unity is brilliant at this because what Unity has optimized is not  FPS, it is not Flight Sims, or overly complex Particle based systems.   The only thing that Unity has optimized is my Grandmothers learning curve.   How does that possibly mean it is the only engine to use?? 


This thread is nuts. 

Edited by ronson49
Link to comment
Share on other sites

KSP and KSP2 have some unique requirements so no game engine fits 100%. They have a solar system sized world, generated terrain, custom build craft and a strong focus on physics simulation.

I understand that they can't program their own game engine and physics simulation from scratch. So the developers will have to work around the limitations of Unity. That doesn't have to mean that KSP 2 cannot be fun to play.

Link to comment
Share on other sites

21 minutes ago, ronson49 said:

You mean I expect more investment from a multi billion pound parent investor to correctly realize the game? 

kSP is not a TT project and Private Division is not a multi billion investor, as we already told you.

 

21 minutes ago, ronson49 said:

How does that possibly mean it is the only engine to use?? 

At this point we're all waiting for the alternative engine and the proof that that engine can manage a game like KSP better than Unity.

And no, "they could make a better engine from the ground up" is not an option (as already stated) because such a thing is often outside the scope and budget of big AAA productions.

 

Once again I ask you to give me an example of some games like KSP (lots of parts, orbital mechanics and physics) that works better than KSP with another engine or an example of an engine up to the task.

 

 

3 minutes ago, EveMaster said:

So the developers will have to work around the limitations of Unity.

That's valid for any engine they choose, no engine on the market right now is best suited for such a game, workarounds are needed in any case.

By using Unity they have the advantage of 8 years of data on how such workarounds work from the fist title.

Edited by Guest
Link to comment
Share on other sites

44 minutes ago, ronson49 said:

defenders of the faith

From where I'm standing there's exactly one person on this thread who feels strongly about Unity. Might want to reflect on that a moment...

Link to comment
Share on other sites

19 minutes ago, sturmhauke said:

@ronson49, you keep calling Unity the "grandmother engine" etc. I have to ask, do you have professional development experience? Have you worked with it and/or other game engines? What are your specific, technical complaints with it?


I will just say no for the sake of this thread since my knowledge is outdated however, I am an avid reader of say, https://jacksondunstan.com for example and I know him from a previous technology.  Always loved his dedication to his blog for all these years, and his psychopathic fixation on squeezing the last bit of performance out of any compiler he focuses on.   I wouldn't therefor say I am clueless and spouting nonsense with no basis but I am hardly accurate either with the nomenclature.  For example people are jumping on my "Unity is Java" comment shooting it down with pedantics, but the underlying concept is still true.   Your Momo code is managed code and just like anything with managed code,  DONT USE IT if performance is your goal.   It is that which causes the "intermittent jitter" seen in ALL unity games. 


Since performance is the definition of KSP,  meaning that,  if the Engine runs at 2fps with 1000 parts.... that destroys the game experience.   It means I have to design a ship with 500 parts..... to fudge Unity into running at 30fps....      

 

By using Unity again,  the same thing will happen.   The concept is there, it is epic, it is so good,  but alas,  by the time I have a mun base ready to explore the solar system,  I am at 3fps.   My game should not be ending here,  it should be just starting and my performance budget is zero.   We need 100 times the magnitude of part peformance, and everything else should come second to that.    We aren't going to get anything like that in Unity,  and you can't just "optimise it away" like everyone is saying either. 

 

And this is just PARTS,  there are people on the threads here talking about Voxel Surfaces, and Ray Tracing.   I mean that is far far out into the realms of fantasy land!

 

 

Link to comment
Share on other sites

On 10/20/2019 at 11:54 PM, Francois424 said:

I find this EXTREMELY hard to believe. 
Unless by fine you mean Game clock vs Real time Clock was 1/6th or worse.
And that is NOT fine.  It's an exercise of patience.

Game clock vs Real time Clock is at 1 second 3 seconds for me actually, I'd consider that playable

Link to comment
Share on other sites

×
×
  • Create New...