MacDuckenstein Posted July 29, 2013 Share Posted July 29, 2013 Is multicore support even possible with Unity and is it possible for using with KSP? Link to comment Share on other sites More sharing options...
sal_vager Posted July 29, 2013 Share Posted July 29, 2013 Unity already supports multiple cores, what it can't do (yet) is split a thread over two or more cores, so the biggest thread (the physics) hammers one core relentlessly. Your other cores will see much lower use, and might seem to not be used at all by KSP. Link to comment Share on other sites More sharing options...
leax256 Posted July 29, 2013 Share Posted July 29, 2013 1) yes it is2) it is very poorly supported3) It is not something that can be done right now due to unity it's self.4) this is a very talked about subject that will probally get closed soon. Link to comment Share on other sites More sharing options...
sal_vager Posted July 29, 2013 Share Posted July 29, 2013 It'll only be closed if it degenerates into arguments, feel free to discuss this topic until that point though Link to comment Share on other sites More sharing options...
leax256 Posted July 29, 2013 Share Posted July 29, 2013 yea I know, but there is alway those few that go overboard. Link to comment Share on other sites More sharing options...
MacDuckenstein Posted July 29, 2013 Author Share Posted July 29, 2013 Well when could we expect this update to Unity? Link to comment Share on other sites More sharing options...
Comrade Jenkens Posted July 29, 2013 Share Posted July 29, 2013 I'm really hoping that in the near future the unity engine is upgraded to use multiple threads and cores. Most modern processors have multiple threads if not cores so almost everyone would see a major performance boost.As of now there isn't much the devs can do. Link to comment Share on other sites More sharing options...
sal_vager Posted July 29, 2013 Share Posted July 29, 2013 No idea MacDuckenstein, we'd have to follow the Unity dev boards (if we can even access them) to find out I expect. Link to comment Share on other sites More sharing options...
leax256 Posted July 29, 2013 Share Posted July 29, 2013 Well when could we expect this update to Unity?I'm no expert but considering the high amount of cores in the ps4 and xbox one and that unity is used by several people to make games for these, we could expect sometime in early 2014. Link to comment Share on other sites More sharing options...
dlmarti Posted July 29, 2013 Share Posted July 29, 2013 Just to clarify, EVERY program can use multiple cores. In fact the program cannot do otherwise, its an OS/task thing.Its multi-threading thats Unity's issue.Unity supposedly has limited support for multi-threading, but it is not in a section of code that KSP needs to be multi-threaded.What KSP needs is a multi-threaded Physics Engine.Unity DID make a multi-threaded physcis engine for PS4, but apparently it is not going to be put into the general release. Which most likely means that PS4 paid for the development.Unity still uses .NET/mono for christs sake. Link to comment Share on other sites More sharing options...
Designer225 Posted July 30, 2013 Share Posted July 30, 2013 So... multi-core is possible for Unity, but multi-thread is not? Dammit. Link to comment Share on other sites More sharing options...
Event Horizon Posted July 30, 2013 Share Posted July 30, 2013 Would it be possible to split up the physics engine into a few separate parts and assign each part a core? I could see possible latency times if one part of the physics is bottlenecking while the other part is not, but it would help a lot more on powerful machines like mine. Link to comment Share on other sites More sharing options...
woppeldopple Posted July 30, 2013 Share Posted July 30, 2013 Would it be possible to split up the physics engine into a few separate parts and assign each part a core? I could see possible latency times if one part of the physics is bottlenecking while the other part is not, but it would help a lot more on powerful machines like mine.As far as i can see KSP uses unitys built in phyics engine. In order to multithread it they'd have to choose a different physics engine like BULLET or ODE. I dont think this will ever happen, because it would take much time and resources. Perhaps they manage it to improve performance without switching engines! Link to comment Share on other sites More sharing options...
allmhuran Posted July 30, 2013 Share Posted July 30, 2013 That the physics itself cannot be multithreaded doesn't mean nothing can be done. You could take *everything else* (sound, input, rendering, asset loading, etc) and move it off to another core, leaving the physics processing to have core 0 all to itself. Link to comment Share on other sites More sharing options...
vedrit Posted July 30, 2013 Share Posted July 30, 2013 Anyone know if Squad has considered other engines? I know it'd be a lot of work to move assets, but as the game development progresses, it's going to become more resource intensive, especially as more items are added into physics for more realistic/accurate rockets. Link to comment Share on other sites More sharing options...
NeoLegends Posted July 30, 2013 Share Posted July 30, 2013 (edited) Unity still uses .NET/mono for christs sake.What's wrong with .NET?That the physics itself cannot be multithreaded doesn't mean nothing can be done. You could take *everything else* (sound, input, rendering, asset loading, etc) and move it off to another core, leaving the physics processing to have core 0 all to itself.The physics engine CAN be multithreaded, in fact, the modern version of PhysX even uses the GPU to do the processing. However, Unity uses and old version of PhysX which had no threading and they still hesitate to upgrade.Using a different core for the rest of the processing wouldn't help much as the rest is relatively cheap compared to the physics.Anyone know if Squad has considered other engines? I know it'd be a lot of work to move assets, but as the game development progresses, it's going to become more resource intensive, especially as more items are added into physics for more realistic/accurate rockets.Unity itself is fine, in fact it's the only engine I know to support such a game (huge world) "out of the box". It's just the physics engine that needs an upgrade. And also, changing the game engine would mean a rediculous amount of work. It also is listed in the list of things not to suggest. Edited July 30, 2013 by NeoLegends Link to comment Share on other sites More sharing options...
astrospud Posted August 24, 2013 Share Posted August 24, 2013 While I would absolutely love an update on the physics engine, I've learned to accept frames around 5-8 when my station is within range:Current parts count is 544, with 9 Kerbals on board. No particular thought went into parts economy - I just wanted a good way-station in orbit for IP missions. I've found another thread, pointing out a way to optimise surface water to help increase FPS - and it did help a bit - but I think I'm stuck with single digit frames for now. Link to comment Share on other sites More sharing options...
Beeman Posted August 24, 2013 Share Posted August 24, 2013 it's always a good feeling when you get somethin' into orbit that winds up looking pretty cool. I surely hope the Unity folks get multithreading whatevers workin' verily soon, though. We need physics running on multiple cores DX Link to comment Share on other sites More sharing options...
BiroAndras Posted December 27, 2013 Share Posted December 27, 2013 There are a few tricks that can improve performance. Obviously using less parts is one. But not all parts are equal. In my experience the strut connector, solar panels and RCS thrusters are more expensive than other parts. The strut connector is the worst.Solar panels can be replaced by RTGs for most use. Reaction wheels can be used instead of RCS except for docking. Strut connectors usually only needed to survive launch, so you can connect them to decouplers and discard them after reaching orbit.I just finished this station. It's just a prototype, so there is room for improvement. Part count is 819, and it runs around 20 fps on an i7 2600K. Link to comment Share on other sites More sharing options...
Murph Posted December 27, 2013 Share Posted December 27, 2013 So... multi-core is possible for Unity, but multi-thread is not? Dammit. You're not quite getting the concepts right there. Applications (and libraries like Unity) don't do multi-core directly. Multi-core is a hardware feature dealt with by the OS. Applications can do multi-threading, and the OS then schedules the threads across whatever cores are available. Multi-threading even has (limited) benefits on a single core. That's just scratching the surface of the subject  parallel/multi processing and task/process/thread scheduling is a complex subject. Threads are the common way for a single application instance to make use of more than a single hardware core. Threads are also sometimes called "lightweight processes" or LWPs.So, what's needed is for Unity to make better use of threading, so that the OS can better schedule the application across multiple cores (or hardware threads, which is a term that I personally hate, as it just confuses things). Link to comment Share on other sites More sharing options...
FirstSecondThird Posted October 13, 2014 Share Posted October 13, 2014 In 0.25, Squad added multi core support, and I have two 2.4 GHz CPUs, So try updating to that version through Steam or the Patcher.(0.25 = Economic Boom) Link to comment Share on other sites More sharing options...
slumpie Posted October 13, 2014 Share Posted October 13, 2014 Not really. Link to comment Share on other sites More sharing options...
B787_300 Posted October 13, 2014 Share Posted October 13, 2014 Closed as this is an old thread.Also SQUAD did not add in Multicore Support in .25 Link to comment Share on other sites More sharing options...
Recommended Posts