# Idea for vehicle movement

was watching an articulated bus steer this morning, and it made me think about how we handle vehiclenr turning.
right now, when we steer we rotate the entire vehicle, meaning the frunt end turns in the direction steered, and the back end turns in the opposite direction, pivoting around the center of mass of the vehicle (no really, it calculats the mass and then the center). one of the side effects of this is that trailer movement doesn’t fit into this very well.

I’m thinking if we designate some wheels as drive wheels and others as steering wheels*, we can handle some of this better. Then instead of simply rotating the vehicle, you’d instead apply lateral movement at the steering wheels, and rotate the vehicle to match. in order to keep steering from getting too complicated, we’d probably still have turn make steering wheels offset about 12.5 deg to the left or right**. a trailer hitch would be designated as a steering point, so the pulling vehicle would displace that point, and then the trailer would follow.

As for implementation, when going straight everything is the same, when turning, we’d shift all steering wheels in a vehicle laterally every other step*** and rotate the vehicle to match, rotating the vehicle around the average of the positions of load bearing wheels (not counting steering wheels). This actually turns out simpler than I thought it would.

*also load-bearing wheels, but they don’t matter for steering.
**about 1/16 of a circle, this is how much we turn per turn right now.
***12.5 deg remember, meaning you move one square laterally for each two squares travelled.

I really like this idea.

The current system works great for really short stuff, but many times I’ve found the back end of a long vehicle smashing through stuff that makes no sense during turns.

This sounds as though there is potential for weird effects from moving the steering around. If your steering is at the back, you turn in the opposite direction. If your whells all steer then you can’t turn. Which sort of makes sense.

Hrmm, actually, do you not turn if your wheels all steer? Or is it if the steering wheels are evenly distributed around the pivot… Ah, but the pivot is based on the wheels, so… I think… Meh, I can’t be bothered thinking…

Sounds good, bonus if it leads towards trailers, which could, presumably, treat the anchor-point as its steering device for lateral movement and then just play catch-up with parallel motion… Trailers would probably need to calculate the trajectory of the vehicle to determine parallel… Maybe just move them according to their original trajectory until they are in a position where rotation on the axis of their wheels would allow their anchor-point to meet its counterpart… I guess you would have to figure out which vehicle’s motion would cause a collision and do the less collidey one first. So long as it determines collidey before motion then turning too fast shouldn’t- hrmm, someone is bound to make a hook vehicle just to traumatise programmers.
[tt]*****

• +++
• +++
*-+++++++
• +++
• +++

*****[/tt]Wheee, everyone collides!!!
Meh, too much thought, not enough mind…

It’s a real thing called quad steering, and it allows a vehicle to turn in a much tighter area.

Opposing turn vectors or similar turn vectors?
The first would allow faster turning, the latter lateral movement while traveling forward. Both are nice.

[quote=“gtaguy, post:5, topic:6141”]Opposing turn vectors or similar turn vectors?
The first would allow faster turning, the latter lateral movement while traveling forward. Both are nice.[/quote]
I believe a moon buggy has both…

There are also some high end cars with 4WD and 4 wheel steering, they generally do opposed at low speed and similar at high speed.
i think a first cut of this would simply disallow both 4WD and all wheel steering, You’d need at least some of each.

i was actually thinking the opposite for trailer interaction, basically 'rorate until your hitch is pointing at the matching hitch, then advance to meet it. not sure which would be better offhand.

Mad it was only the other day I was thinking is it possible to make trailers and tow then.

for trailer addition would a 3rd “wheel” type be needed to model the hitch? also, would the best route be to combine the two vehicles into one when hitched together, then re-create the 2nd vehicle on unhitch?

Hm,

Hrmm, actually, do you not turn if your wheels all steer? Or is it if the steering wheels are evenly distributed around the pivot... Ah, but the pivot is based on the wheels, so... I think... Meh, I can't be bothered thinking...
This seems important. How would a vehicle handle odd numbers of steering wheels or strange placement? (across from each-other diagonally for instance)

Perhaps base it on axles instead, with drive axles and turning axles? That way we can at least ensure same-type wheels are symmetrical/make more sense.

Also, +1 to cataclysm driving/mechanic simulator 2014.

[quote=“Cat09, post:10, topic:6141”]for trailer addition would a 3rd “wheel” type be needed to model the hitch? also, would the best route be to combine the two vehicles into one when hitched together, then re-create the 2nd vehicle on unhitch?[/quote]The problem with combining the vehicles would be that replicating a trailer that way would require that the vehicle be able to change its shape. And if shape-changing vehicles become a thing then it won’t be long before folk start making with articulated arms, working legs, and the ability to alternate between vehicle-mode and robot-mode… Much better to just expand the existing drag mechanic so that it works on larger vehicles.

Right now I’m thinking it would be two separate vehicles using a modified dragging mechanic, merging them into one vehicle in the current system implies a rigid linkage, which is specifically what we don’t want.
However certain aspects might be merged, such as electrical systems.

Although having port components that could be marked as containing another vehicle would allow carrier vehicles which could contain scout vehicles and the like. But that would be off-topic : (

That’s a completely different thing, the implementation of one would have nothing to do with the other.