Jump to content

[1.0.x] [V1.9f] Kerbal Foundries wheels, anti-grav repulsors and tracks


lo-fi

What to work on next?  

1,282 members have voted

  1. 1. What to work on next?

    • More wheels
      123
    • More tracks
      453
    • Rover bodies
      241
    • Landing gear
      137
    • Landing legs
      108
    • Something completely different
      193


Recommended Posts

Well.... First showstopper. Tracks with new colliders are just as crazy as with U5 colliders. I can't yet figure out why. Just get that familiar jittery stupidity. The annoying thing is, I'm sure that didn't happen in the U5 dev environment. I'll retest.

Funny thing is, I can add as many wheels as I like to a vehicle, and it still behaves. This is smacking of something being up with multiple physics things interacting between two rigid bodies. There is the possibility of giving each wheel collider its own rigidbody and a joint to the part, but this is horribly heavy handed. The U5 colliders have a limit on the amount you can add to any given rigidbody, so maybe this is some kind of engine limitation, rather than a collider one, but I can't think what it might be. Thoughts?

 

Edited by lo-fi
Link to comment
Share on other sites

43 minutes ago, lo-fi said:

Thoughts?

Well, you could skip tracks for the first release. Or make track modules (one per little wheel, perhaps) that lock onto one another by nodes and communicate about their compression to make the track look decent. Or release with a giant "it's kinda broken still" disclamer on the tracks. Or do the "heavy-handed" thing.

I don't have the knowledge to help fix the problem, but these are some things that might expedite release. Of course, it needs to be done right, but that could be done in an x.1 patch. Again, I'd be very happy with just the repulsors.

Link to comment
Share on other sites

Thanks, that's a very interesting video I'd not seen before. 

I still can't tell what's wrong at this stage. More debugging and logging required, but my hunch is the serial nature of execution is causing problems, and thinking about it, I'm not sure of I properly replicated the KSP physics setup in the development environment. 

Repulsors are easiest, as they were "quirky" anyway, but I'm still a way away from where I'd be happy releasing anything, even to the testing team. So many unknowns at this stage..

I've got a few things to check out, but I'll pass what I've got over to @Shadowmage for investigation, if you can spare  a few minutes. 

Link to comment
Share on other sites

2 hours ago, lo-fi said:

Thanks, that's a very interesting video I'd not seen before. 

I still can't tell what's wrong at this stage. More debugging and logging required, but my hunch is the serial nature of execution is causing problems, and thinking about it, I'm not sure of I properly replicated the KSP physics setup in the development environment. 

Repulsors are easiest, as they were "quirky" anyway, but I'm still a way away from where I'd be happy releasing anything, even to the testing team. So many unknowns at this stage..

I've got a few things to check out, but I'll pass what I've got over to @Shadowmage for investigation, if you can spare  a few minutes. 

Indeed, I'll try and take some time for investigation this evening after work.  What repos/branches should I be pulling from for the testing setup for the tracks?  Well, will try and look at it this evening.... If I can't get to it sooner I will definitely take some time over the weekend.  Sadly my development time while at home (where I have access to KSP) is extremely limited recently (silly RL stuff keeping me occupied =\).


My gut tells me that the problem is likely related to having too many joints attached to a single rigidbody, all of them applying forces.  Your 'heavy handed' solution is probably the proper way of doing things... though I agree, will be quite sub-optimal from a performance perspective.


Really hoping that I'll be able to wrap up my own mods' stuff here in a few weeks, at which point I should be able to spend a lot more time working on the wheels, including fixing up/finishing the force-based solution.

Link to comment
Share on other sites

17 hours ago, lo-fi said:

Well.... First showstopper. Tracks with new colliders are just as crazy as with U5 colliders. I can't yet figure out why. Just get that familiar jittery stupidity. The annoying thing is, I'm sure that didn't happen in the U5 dev environment. I'll retest.

Funny thing is, I can add as many wheels as I like to a vehicle, and it still behaves. This is smacking of something being up with multiple physics things interacting between two rigid bodies. There is the possibility of giving each wheel collider its own rigidbody and a joint to the part, but this is horribly heavy handed. The U5 colliders have a limit on the amount you can add to any given rigidbody, so maybe this is some kind of engine limitation, rather than a collider one, but I can't think what it might be. Thoughts?

 

Hmm...  Can you test the heavy-handed method and see if that works?  Sometimes the best tool to smash a bug is a rocket-powered sledgehammer.

 

As for hearing you can add as many wheels as you want to a vehicle, well...  I'll hold off on my statement until you bring me into the testing team officially again, but you can bet I'm going to try and break something.  I may not be doing much with my 1.2 install yet, but it does exist and is very, very lightly modded.  Kinda my essentials, but nothing dramatic.

I am glad to see progress, though.

Link to comment
Share on other sites

 

7 minutes ago, Madrias said:

There is the possibility of giving each wheel collider its own rigidbody and a joint to the part, but this is horribly heavy handed.

and indeed the heavy handed method seems to be the way of KSP, the latest wheels all have  unity assigned rigid bodies on the wheel colliders.

 

Link to comment
Share on other sites

8 minutes ago, 0111narwhalz said:

So, about 50 mods, then?

Wait, no. That's two "very"s. That brings it down to about 30, right?

19, actually, by just counting folders.  I haven't been using 1.2 that much.  I've been using 1.0.5 too much.

Link to comment
Share on other sites

18 hours ago, Shadowmage said:

Indeed, I'll try and take some time for investigation this evening after work

Sorry, I was out see Nitin Sawhney at the Albert Hall last night (was spectacular), so didn't get a chance to post up the latest KF. RL is more important! The Lo-Fi branch holds my latest working wheel code

17 hours ago, Madrias said:

Sometimes the best tool to smash a bug is a rocket-powered sledgehammer.

I suppose it is the Kerbal way...

17 hours ago, SpannerMonkey(smce) said:

the latest wheels all have  unity assigned rigid bodies on the wheel colliders.

Interesting! Was this from a devnote, or have you been poking?

Link to comment
Share on other sites

Confirmed: Same behaviour of multiple wheels on one rigidbody in U5. My notes are clearly wrong, or I messed something in testing. Given that this IS a generic Unity problem, I'll incorporate the structural change within the wheel itself. Essentially, each wheel will create its own rigidbody and joint to the rigidbody the suspension joint would have been attached to anyway. This will actually simplify certain aspects of creating the suspension joint. Not sure about the performance hit, but I understand the new engine in U5 performs far better. Let's hope!

Link to comment
Share on other sites

another day, another find - unity 5 custom wheel demo:

http://wheelcontroller.tk/

development thread:

https://forum.unity3d.com/threads/wip-wheelcontroller-realistic-three-dimensional-replacement-for-wheelcollider-demo-available.425443/

I guess this will released shortly as an updated off-road vehicle physics pack - https://www.assetstore.unity3d.com/en/#!/content/39946

dev movies:

 

Edited by riocrokite
Link to comment
Share on other sites

3 hours ago, lo-fi said:

Sorry, I was out see Nitin Sawhney at the Albert Hall last night (was spectacular), so didn't get a chance to post up the latest KF. RL is more important! The Lo-Fi branch holds my latest working wheel code

I suppose it is the Kerbal way...

Interesting! Was this from a devnote, or have you been poking?

I've already made a couple of sets for 1.2  based on this example Nli posted earlier in the year for 1.1.x https://www.dropbox.com/s/pxjv6bowyzfisru/seeThruWheel.zip?dl=0.

and although they aren't quite perfect they do work acceptably well and  as with all these things gets a little better each time, earlier in the year i posted a clip of a tank with what turned out to be good wheels for 1.2.x onwards

despite an hour searching  couldnt find the damn thread it was in that had loads of relevant info

Edited by SpannerMonkey(smce)
ps
Link to comment
Share on other sites

19 minutes ago, riocrokite said:

another day, another find - unity 5 custom wheel demo

Now that's a great find. Can't use it, as we'd have to distribute as a binary blob with no source, which is against the rules for KSP mods. However, for $20 to get a look at the source... take my money!

19 minutes ago, SpannerMonkey(smce) said:

I've already made a couple of sets for 1.2

Interesting. My experience hasn't been good, though I've not tried in 1.2

Link to comment
Share on other sites

20 minutes ago, lo-fi said:

Now that's a great find. Can't use it, as we'd have to distribute as a binary blob with no source, which is against the rules for KSP mods. However, for $20 to get a look at the source... take my money!

Interesting. My experience hasn't been good, though I've not tried in 1.2

yah, here's a link to the demo of the current version of off-road vehicles (old one), I guess it uses more or less standard unity wheel colliders with all its weirdness:

http://46.101.247.190/

Edited by riocrokite
Link to comment
Share on other sites

Thanks, that's certainly interesting. More testing on variations of the U5 rig fail to reproduce the problem now, after success earlier. It's quite infuriating! Maybe it's to do with ordering? I really don't know. I'll try again in game later this evening. 

Link to comment
Share on other sites

6 minutes ago, lo-fi said:

Thanks, that's certainly interesting. More testing on variations of the U5 rig fail to reproduce the problem now, after success earlier. It's quite infuriating! Maybe it's to do with ordering? I really don't know. I'll try again in game later this evening. 

i am going to assume that if it gose well we might have kf back and beter then ever (by the way lo-fi and all the peeple that help you, you do a verey good job :))

Link to comment
Share on other sites

4 hours ago, lo-fi said:

Thanks, that's certainly interesting. More testing on variations of the U5 rig fail to reproduce the problem now, after success earlier. It's quite infuriating! Maybe it's to do with ordering? I really don't know. I'll try again in game later this evening. 

Interesting.... don't you just love these problems that make no sense?  Computers are supposed to be logical!  Except when they aren't.... (because they are programmed by humans, who are rarely logical, and never perfect).

Very likely could be ordering related -- the order that the rigidbodies receive their updates probably determines whether or not the joints interfere with eachother; notably I bet it depends on if the wheel-rigidbodies are updated before or after the parts' rigidbody.

Link to comment
Share on other sites

3 hours ago, Shadowmage said:

Interesting.... don't you just love these problems that make no sense?  Computers are supposed to be logical!  Except when they aren't.... (because they are programmed by humans, who are rarely logical, and never perfect).

Very likely could be ordering related -- the order that the rigidbodies receive their updates probably determines whether or not the joints interfere with eachother; notably I bet it depends on if the wheel-rigidbodies are updated before or after the parts' rigidbody.

i don't know what that means but OK! :) 

Link to comment
Share on other sites

On 11/1/2016 at 4:52 PM, lo-fi said:

Well.... First showstopper. Tracks with new colliders are just as crazy as with U5 colliders. I can't yet figure out why. Just get that familiar jittery stupidity. The annoying thing is, I'm sure that didn't happen in the U5 dev environment. I'll retest.

Funny thing is, I can add as many wheels as I like to a vehicle, and it still behaves. This is smacking of something being up with multiple physics things interacting between two rigid bodies. There is the possibility of giving each wheel collider its own rigidbody and a joint to the part, but this is horribly heavy handed. The U5 colliders have a limit on the amount you can add to any given rigidbody, so maybe this is some kind of engine limitation, rather than a collider one, but I can't think what it might be. Thoughts?

 

Hit the nail on the head; it has more to do with unity than the coliders them selves.
There IS a kind of a way around the unity physics though; if you make each track as a single wheel in each "corner", mimicking KSP's wheels for all that jazz, and have it's friction set as a variable that alters with speed and direction(relative to the track) of travel, then have the track and hand all that as a firespitter animation that's completely irrelevant to the rest of the physics. if you do this, you could make the tracks behave like fairings, and have customizable track shapes.   Just a thought.

On 11/3/2016 at 2:56 PM, Shadowmage said:

Interesting.... don't you just love these problems that make no sense?  Computers are supposed to be logical!  Except when they aren't.... (because they are programmed by humans, who are rarely logical, and never perfect).

Very likely could be ordering related -- the order that the rigidbodies receive their updates probably determines whether or not the joints interfere with eachother; notably I bet it depends on if the wheel-rigidbodies are updated before or after the parts' rigidbody.

Computers are made by humans, and humans are illogical. A machine, or program, can only be as good as it's creator.
Quite frankly Unity was never designed to be used for the likes of KSP; it's primarily for mobile/simple 32bit indie games. the fact that Squad, let alone all of you guys have done with it what you have is an amazing feat.

also a completely random thought here; is it possible to program a colider to ignore other coliders? or ONLY care about certain ones? ie, assign the terrian a variable and have the coliders ONLY care about objects with said variable? (i've never tried this before in unity, but i know it's possible in Gamemaker3D)

Link to comment
Share on other sites

13 hours ago, Rushligh said:

also a completely random thought here; is it possible to program a colider to ignore other coliders? or ONLY care about certain ones? ie, assign the terrian a variable and have the coliders ONLY care about objects with said variable? (i've never tried this before in unity, but i know it's possible in Gamemaker3D)

There is a layer system, as evidenced by the way kerbals clip through wheels.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...