Jump to content

KSP on Unreal 3 engine


Captain Sierra

Recommended Posts

So, we all know KSP runs on Unity 4.3 and that Unity is rather limited. Now, I want to take some threadspace to theorize and fantasize about what KSP would be like if it ran on Unreal 3. Another thing to keep in mind and discuss is modding support on Unreal (because I dunno).

Disclaimer: this is not a suggestion to switch game engines or a discussion of development, merely a hypothetical conversation topic for the community.

What do yall think? I personally think it would be amazing, but I will let your minds run wild.

Link to comment
Share on other sites

Either exactly the bloody same, or non-existent. At best maybe Unreal Engine would let the high part count ships perform better - but then that might just have delayed the introduction of the bigger engines. The engine, after all, can only render what the developers create, and I doubt the emphasis would have been on ultra-realistic graphics just because of using a different game engine.

Non-existent is in the case that Unreal Engine was too costly for some reason, whether it's the licensing or the development learning curve.

Link to comment
Share on other sites

The reason I gravitated to Unreal 3 was because Unity isn't the greatest at GPU offloading, and Unreal is a bit better at this (I don't know if by a hair or a mile). The other is PhysX by NVidia (great for actual physics and for physics-realistic particle effects and other cool things). While not perfect, it's leaps and bounds from where Unity physics are. Also, I believe it has proper multithreading support to make use of multi-core physics.

As a sidenote, has anyone seen the test vid for the Hawken destructable maps? Now, that's almost more graphical than it is physics, but it's pretty safe to say that would slaughter Unity.

KSP should never be photo-realistic as stock. Leave that up to the texture replacer mods.

Either exactly the bloody same, or non-existent. At best maybe Unreal Engine would let the high part count ships perform better - but then that might just have delayed the introduction of the bigger engines. The engine, after all, can only render what the developers create, and I doubt the emphasis would have been on ultra-realistic graphics just because of using a different game engine.

Non-existent is in the case that Unreal Engine was too costly for some reason, whether it's the licensing or the development learning curve.

Again, I opted for Unreal because of performance, not graphical. You raise a good point about licensing and stuff. How hard would it be to mod the crap out of the game? What kinds of pay walls would we be looking at? Do you think we'd have as vibrant a modding community as we do?

Link to comment
Share on other sites

The reason I gravitated to Unreal 3 was because Unity isn't the greatest at GPU offloading, and Unreal is a bit better at this (I don't know if by a hair or a mile). The other is PhysX by NVidia (great for actual physics and for physics-realistic particle effects and other cool things). While not perfect, it's leaps and bounds from where Unity physics are. Also, I believe it has proper multithreading support to make use of multi-core physics.

As a sidenote, has anyone seen the test vid for the Hawken destructable maps? Now, that's almost more graphical than it is physics, but it's pretty safe to say that would slaughter Unity.

KSP should never be photo-realistic as stock. Leave that up to the texture replacer mods.

I don't intend to be rude, but you clearly have no idea how any of this works, do you?

  • GPU offloading is typically done by the dev-team, not a magical engine feature.
  • PhysX is what Unity uses, though the version used is a slightly older one.
  • Multithreaded physics is also something typically done by the dev-team, not the engine.
  • Different engines tend to be better at certain things, but it comes down to the dev-team to implement stuff. You can't say that any particular thing would "slaughter" Unity without a deeper understanding of it.

Link to comment
Share on other sites

Either exactly the bloody same, or non-existent. At best maybe Unreal Engine would let the high part count ships perform better - but then that might just have delayed the introduction of the bigger engines. The engine, after all, can only render what the developers create, and I doubt the emphasis would have been on ultra-realistic graphics just because of using a different game engine.

Non-existent is in the case that Unreal Engine was too costly for some reason, whether it's the licensing or the development learning curve.

I think unreal has a similar limitation when it comes to multithreads/cores for pure physics calculations.. At least that is what i found out when reading about it a while ago so dunno if that is still the case.

The biggest issue is that KSP does ALOT of special physics that cannot be done by GPU like what is the case with most other games. There are no other games like KSP so it is hard to say how much better a engine like unreal would do in real life.

Link to comment
Share on other sites

Unity 3D is well known for its modular structure. Compared to other engines, there is very little in Unity you can't customize. The Unreal engine is quite a monster. It has a very well-designed pipeline, but it is meant to be bought as complete package. I wonder if something like patched conics would have been as easily possible in the Unreal Engine like in Unity 3D.

The Unreal Engine is based on C++, and has its own scripting languages. Unity 3D is widely based on .NET, and is easily portable. Altogether, for small teams the Unity engine usually means much less overhead, especially if you are trying something very different.

So, altogether: if KSP would habe been made with the Unreal Engine, it might have never evolved further than the conceptual phase.

Link to comment
Share on other sites

Unreal Engine 4 is out and looks impressive but is subscription only.

No, that's not how it works at all. Please do not fall into the public internet's knee-jerk "eww it has the word subscription on it, unclean, unclean!" mentality :P

To access the Unreal 4 engine and editor downloads, you need to log in, and in order to log in you need to be subscribed. However, you can plop down the $20 required for one month, get all the tools, all the sourcecode and documentation of the entire engine, and then immediately unsubscribe and never pay another cent while you continue developing your game on Unreal 4. This is fully intended, because the Unreal Engine is not monetized via a subscription. It is monetized via a 5% revenue share from games built on it. That means if you never release a game, then the $20 buy-in is all you pay for the engine, but if you do then you're obliged to honor the licensing agreement.

The subscription fee is for a fully optional community features access. While subscribed, you get access to professional tech support and tutorials, a developer community driven content database in which you can find and share royalty-free code and game assets, community forums/networks and of course direct access to every latest engine update. If you do not need this, then nobody forces you; but if you think "that's awesome", then it's yours for $20 a month.

Now contrast this model to the previous Unreal Engine licensing model where you were asked to pay six figures up-front, without knowing if you'll ever actually get to release anything. This, by the way, is likely one of the major reasons that KSP is in fact running on Unity - because back when Squad started doing it, Unity was the only prebuilt engine toolkit without a prohibitive barrier of entry. It's only now, after Unity's low barrier of entry has drawn in a veritable tsunami of indie developers, that the big triple-A players like Epic and Crytek are themselves dropping these barriers in favor of post-launch royalties models. This is a very good thing for the games industry as a whole, but unfortunately it comes a few years too late for KSP to be relevant. I mean, maybe if Felipe had had the choice he would have chosen a different engine toolkit than Unity... or maybe not. We probably won't ever find out.

Link to comment
Share on other sites

I wanted to add this some time late this year to some time next year hopefully unity 5 comes out which means ksp might get ported to it and with that comes multi core physics processing which would make this game at least 4x as good as it is or at least for me seeing as how i have 8 cores :D

Link to comment
Share on other sites

The reason I gravitated to Unreal 3 was because Unity isn't the greatest at GPU offloading, and Unreal is a bit better at this (I don't know if by a hair or a mile). The other is PhysX by NVidia (great for actual physics and for physics-realistic particle effects and other cool things). While not perfect, it's leaps and bounds from where Unity physics are. Also, I believe it has proper multithreading support to make use of multi-core physics.

As a sidenote, has anyone seen the test vid for the Hawken destructable maps? Now, that's almost more graphical than it is physics, but it's pretty safe to say that would slaughter Unity.

KSP should never be photo-realistic as stock. Leave that up to the texture replacer mods.

Again, I opted for Unreal because of performance, not graphical. You raise a good point about licensing and stuff. How hard would it be to mod the crap out of the game? What kinds of pay walls would we be looking at? Do you think we'd have as vibrant a modding community as we do?

Unity uses NVIDIA PhysX, Unreal Engine 3/3.5/4 uses PhysX.

GPU offloading? Latency issues, for "non-interactive" physics like special visual effects only, due to having to swap around with onboard GPU memory(cause of latency).

Even if not doing all that, since Unreal Engine 3, there has been latency issues when using multithread rendering even on high end hardware the input lag to viewable result is quite noticeably... horrible.

Each engine has its own horribleness, Unity 5 looks great with finally having better multithread support in various things and looks to have finally proper 64 bit support for Windows and Mac OS X. So Squad can probably just port to that, cheaper/quicker.

Link to comment
Share on other sites

I've never really had an experience with unreal engine 3 that I could really call "high performance"... and it's not like a given engine is some magic pill that immediately solves all performance issues.

You can make a disastrously inefficient game in UE3 if you like. You can make a hideous game in it, too, and you can make a very pretty game, and you can make a smooth-as-butter highly optimized game. But you can also make a beautiful game in unity* that's extremely well optimized and runs well, as well as a hideous unoptimized one!

KSP's performance problem is, mainly, physics. Unity's implementation of PhysX is just terrible for what KSP wants to do. The majority of the lag in KSP is related to it - not only simulation of parts, but recalculating terrain collision meshes (changing collision meshes on the fly is VERY expensive to do!).

As a related aside to that, my understanding is that mesh colliders in PhysX (or unity's implementation of them, unsure) are very very performance heavy... primitive shapes are light years faster to simulate, but PhysX only has three - boxes, spheres, and capsules. No cylinder primitive. Therefore, KSP has to make use of cylindrical mesh colliders for almost every part that's cylindrical. Considering it's a game about rockets, well... that's a lot of cylinders.

If KSP could be somehow made to calculate physics on the GPU, though... that'd be a sight to see.

*pretty blurby and ad-y but this has some good picture examples of cool visual things that can be done, especially with DX11 http://unity3d.com/unity/quality

Also, refer to these two demonstration photos, both unity, for the wide spectrum of what things can look like:

http://cdn.akamai.steamstatic.com/steam/apps/290750/ss_025431be7323997e90908a24d5b53af76298b46b.1920x1080.jpg?t=1397742606

http://upload.wikimedia.org/wikipedia/commons/b/bb/Gone_Home_-_TV_Room.jpg

Each engine has its own horribleness, Unity 5 looks great with finally having better multithread support in various things and looks to have finally proper 64 bit support for Windows and Mac OS X. So Squad can probably just port to that, cheaper/quicker.

Unity 5 has a 64-bit editor. Not any changes that I'm aware of to how 64-bit support works.

Edited by NovaSilisko
Link to comment
Share on other sites

I mean, maybe if Felipe had had the choice he would have chosen a different engine toolkit than Unity... or maybe not. We probably won't ever find out.

Someone who works at a company that is primarily advertising and gets the chance to play with his idea for awhile isn't going to choose a high-end engine.

Unreal 3 would be a major improvement. It made use of all the tech available back in 2008. I doubt Unity is anywhere near as sophisticated.

While Unity does lack in some areas of capability, it is easy to learn and use, and has great cross-platform capability.

Realistically, no standard engine is going to be able to handle the physics monstrosities KSP requires, so theres really no reason to talk about what-if's. Fancy terms and marketing mean nothing to a developer so unless someone can come up with some hard stats as to why a certain engine might perform better than another this discussion will go nowhere.

Link to comment
Share on other sites

If KSP could be somehow made to calculate physics on the GPU, though... that'd be a sight to see.

As great as that might be, a large portion of the KSP userbase runs on low-end computers with either integrated graphics or older cards, so it may not be worthwhile for the devs to spend time on such a thing.

Also, just wanna say from experience: Every engine is terrible. Just choose the one that's least terrible for your purposes.

Quite :P

Link to comment
Share on other sites

Someone who works at a company that is primarily advertising and gets the chance to play with his idea for awhile isn't going to choose a high-end engine.

If the price is the same and the featureset is what you need, why not? The paragraph from which you qouted this line out of context explicitly talks about removing barriers of entry.

Given that, I wouldn't presume myself to know for a fact what choice Squad would have made.

Link to comment
Share on other sites

Hopefully Unity 5 provides a viable migration path for KSP and mitigates some of the current limitations, i.e. has a 64 bit build that works across all platforms, thread safe, implements the full 3T CPU branch of PhysX 3.3 which can be properly handled by the multi-threaded job handler.

Just because seeing KSP migrate to Unity 5 is likely, while the chances of KSP migrating to Unreal is basically zero,

Link to comment
Share on other sites

If the price is the same and the featureset is what you need, why not? The paragraph from which you qouted this line out of context explicitly talks about removing barriers of entry.

Given that, I wouldn't presume myself to know for a fact what choice Squad would have made.

Yes, barriers that now have been removed, but when KSP was first started it was, and I quote "six figures" to get into something like Unreal. It was perfectly in context.

Link to comment
Share on other sites

Personally I would be more interested in how well it would work with the Real Virtuality engine, I mean it already has proved itself good at handling large enviroments with a lot of complexity happening at once, and also seen that it can be applied reasonably well to a space game in Take on Mars (even if it and KSP are worlds apart) But I'd like to think that with a hit to the graphics it would also be a fairly capable engine for such things.

Of course in reality I have no actual understanding of these engines at a developer level so can only guess from an end user point of view. However I'm fairly certain that Unity will be perfectly suited by the time of KSP's official release. We know now that multi-threading support is on the way (which really should have been fixed a long long time ago) and I don't know about GPU offloading but I'd imagine that is likely also in the works.

At a business level though all of the engines are going to be in extremely tight competition this year as the devs start to shift over to the new generation of consoles and there's a good chance that one could take a large lead over the others early on and hold that lead throughout such as the Unreal Engine 3 did. I'd hazard a guess that Unity will need to at the least offer Multi-Threading and GPU offloading considering other engines will be including some extremely advanced physics solutions down the line such as the soft body physics in the ongoing works for CryEngine 3. This really is the year for everyone to prove how versatile their engines are.

Link to comment
Share on other sites

No offense but this thread is useless.

Why are u even discussing??? I do not think that this subject is a matter do the players it is solely something the developers should think off.

Nothing said here will change anything about wich engine the game is using/will use in the future.

So a mod please lock this thread down.

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...