[Tickets] [Orxonox] #309: Spaceship steering and behaviour

Orxonox trac at orxonox.net
Fri Sep 25 23:54:20 CEST 2009


#309: Spaceship steering and behaviour
----------------------+-----------------------------------------------------
 Reporter:  rgrieder  |        Owner:  nobody                         
     Type:  task      |       Status:  new                            
 Priority:  highest   |    Milestone:  Version 0.2 Codename: Bellatrix
Component:  Control   |      Version:  0.2.0                          
 Severity:  major     |   Resolution:                                 
 Keywords:            |  
----------------------+-----------------------------------------------------
Description changed by rgrieder:

Old description:

> When the physics features were merged with the new Engine feature, a
> conflict has arisen that still exists. The main problem is the fact you
> want to steer a spaceship quite directly but a physics engine doesn't
> like that very much. [[br]]
> Another thing that needs some thinking: The engine class works with local
> velocities. So when you accelerate straight forward and then yaw by
> ninety degrees, then ship will stop abruptly because the lateral speed is
> limited at a lower level than longitudinal speed. [[br]] [[br]]
>
> This could be sorted out by calculating the maximum thrust in function of
> the damping and maximum speed. But I guess that requires some looks into
> the Bullet code to see how damping is realised (most probably a linear
> velocity dependent factor in the differential equation which makes
> damping exponential). [[br]][[br]]
>
> The angular part is a little bit trickier. From my observations it is
> best to have a direct mapping of the mouse position to the orientation.
> Applying this directly to a ship can result in sudden movements (esp. if
> you look at another player...). I therefore suggest to make the camera
> direct and the spaceship adjust to the camera position. From what I know
> about the current implementation of the camera handling, this is not very
> easy to be done (other way round is not a problem). [[br]]
> As an example, this kind of steering is used in Unreal Tournament with
> vehicles.

New description:

 When the physics features were merged with the new Engine feature, a
 conflict has arisen that still exists. The main problem is the fact you
 want to steer a spaceship quite directly but a physics engine doesn't like
 that very much. [[br]]
 Another thing that needs some thinking: The engine class works with local
 velocities. So when you accelerate straight forward and then yaw by ninety
 degrees, the ship will stop abruptly because the lateral speed is limited
 at a lower level than longitudinal speed. [[br]] [[br]]

 This could be sorted out by calculating the maximum thrust in function of
 the damping and maximum speed. But I guess that requires some glace at the
 Bullet code to see how damping is realised (most probably a linear
 velocity dependent factor in the differential equation which makes damping
 exponential). [[br]][[br]]

 The angular part is a little bit trickier. From my observations it is best
 to have a direct mapping of the mouse position to the orientation.
 Applying this directly to a ship can result in sudden movements (esp. if
 you look at another player...). I therefore suggest to make the camera
 direct and the spaceship adjust to the camera position. From what I know
 about the current implementation of the camera handling, this is not very
 easy to be done (other way round is not a problem). [[br]]
 As an example, this kind of steering is used in Unreal Tournament with
 vehicles.

--

-- 
Ticket URL: <http://www.orxonox.net/ticket/309#comment:5>
Orxonox <http://www.orxonox.net>
Orxonox Open Source game


More information about the Tickets mailing list