Physics - Not a Dirty Word
Undefined Undefined Design PostContent
English
There have been a lot of questions about how the game’s physics system will work. Is it going to be ‘physics light’ like Wing Commander, an entirely serious model of Newtonian physics like more recent games, or something in-between? Chris Roberts recently addressed this in a forum post and we thought it’d be good to share this background with everyone:
As someone that was taking Physics at Manchester University before I dropped out to make games full time I can assure everyone that the physics model is COMPLETELY accurate and it’s a full rigid body simulation. I know because I wrote the code.
Maybe I should have done a better job in the demo, but if you are flying at speed and you set your desired velocity to zero you WILL see the top front thrusters articulating and firing to slow your velocity. If you watch my demo you will notice there is some momentum with the Hornet when I slow down close to the bridge. It may not have been apparent on the screen, but I can assure the Hornet does not stop on a dime. if you load it up with more mass (like extra weapons) you feel the effect of this.
There is no drag modeled – everything is done as it would be in space.
Additionally there is actually counter thrust being applied inside the physics and if you had your hands on the controller you would feel it. If you look closely you will see the inertia of this – the ship doesn’t stop rolling or pitching on a dime. There is however a very good reason why you don’t actually see the thrusters fire entirely accurately.
The problem with visually depicting the proper thrust is that it would actually look pretty horrible (trust me this is how I first did it, and is still pretty easy to switch back to as I’m actually doing some extra work to make the visuals looks nicer).
The reason is because there is no drag in space, so even a micro amount of thrust starts the Hornet (or any spaceship) rotating until you apply counter thrust. So what is really happening is that the flight control system is always applying micro thrust and counter thrust to achieve the pilot’s inputs. This results in the thrusters flickering off and on in micro amounts and you actually not getting a good feel of the general application of thrust. I think you know I like things to look cool (come on, we all know you probably wouldn’t be engaging in space dogfights at WW2 speeds, but it’s so much more fun than what the reality would probably be), so what happens is that the system is still modeled accurately, but I use the angular /linear velocity delta to drive the visual representation of thrust. Here’s my code comment
//Note the thrustGoal is actually the linear velocity delta (desired vel – current vel of
//the vehicle & rotational vel rather than the actual linear & angular acceleration / thrust. //This is because, while inaccurate its cooler to see more constant thrust that gives
//you a visual clue as to what correctional movement / velocity vectors the vehicle is using.
//If we just used the acceleration as opposed to the desired velocity correction, the thruster flames
//would flicker on and off – especially in the Wing Commander use case of Space, where
//there is no atmosphere to provide drag.
//
//Of course if you pass the actual accelerations to SetThrustGoal, then you’ll get an accurate //visual representation of what a thruster would really do
I hope that clears up any confusion!
I will admit that the ship doesn’t need to have wings or fans on the front, but the idea behind that is for possible atmospheric flight (this is not a promise of planetary action for the early build but allows for expansions in this direction), and as a RAM scoop. Plus it just looks / feels cool!
Chris Roberts
As someone that was taking Physics at Manchester University before I dropped out to make games full time I can assure everyone that the physics model is COMPLETELY accurate and it’s a full rigid body simulation. I know because I wrote the code.
Maybe I should have done a better job in the demo, but if you are flying at speed and you set your desired velocity to zero you WILL see the top front thrusters articulating and firing to slow your velocity. If you watch my demo you will notice there is some momentum with the Hornet when I slow down close to the bridge. It may not have been apparent on the screen, but I can assure the Hornet does not stop on a dime. if you load it up with more mass (like extra weapons) you feel the effect of this.
There is no drag modeled – everything is done as it would be in space.
Additionally there is actually counter thrust being applied inside the physics and if you had your hands on the controller you would feel it. If you look closely you will see the inertia of this – the ship doesn’t stop rolling or pitching on a dime. There is however a very good reason why you don’t actually see the thrusters fire entirely accurately.
The problem with visually depicting the proper thrust is that it would actually look pretty horrible (trust me this is how I first did it, and is still pretty easy to switch back to as I’m actually doing some extra work to make the visuals looks nicer).
The reason is because there is no drag in space, so even a micro amount of thrust starts the Hornet (or any spaceship) rotating until you apply counter thrust. So what is really happening is that the flight control system is always applying micro thrust and counter thrust to achieve the pilot’s inputs. This results in the thrusters flickering off and on in micro amounts and you actually not getting a good feel of the general application of thrust. I think you know I like things to look cool (come on, we all know you probably wouldn’t be engaging in space dogfights at WW2 speeds, but it’s so much more fun than what the reality would probably be), so what happens is that the system is still modeled accurately, but I use the angular /linear velocity delta to drive the visual representation of thrust. Here’s my code comment
//Note the thrustGoal is actually the linear velocity delta (desired vel – current vel of
//the vehicle & rotational vel rather than the actual linear & angular acceleration / thrust. //This is because, while inaccurate its cooler to see more constant thrust that gives
//you a visual clue as to what correctional movement / velocity vectors the vehicle is using.
//If we just used the acceleration as opposed to the desired velocity correction, the thruster flames
//would flicker on and off – especially in the Wing Commander use case of Space, where
//there is no atmosphere to provide drag.
//
//Of course if you pass the actual accelerations to SetThrustGoal, then you’ll get an accurate //visual representation of what a thruster would really do
I hope that clears up any confusion!
I will admit that the ship doesn’t need to have wings or fans on the front, but the idea behind that is for possible atmospheric flight (this is not a promise of planetary action for the early build but allows for expansions in this direction), and as a RAM scoop. Plus it just looks / feels cool!
Chris Roberts
German
Es gab viele Fragen darüber, wie das Physiksystem des Spiels funktionieren wird. Wird es "Physik-Licht" wie Wing Commander sein, ein völlig ernsthaftes Modell der Newtonschen Physik wie neuere Spiele oder etwas dazwischen? Chris Roberts hat dies kürzlich in einem Forenbeitrag angesprochen und wir dachten, es wäre gut, diesen Hintergrund mit allen zu teilen:
Als jemand, der Physik an der Manchester University studiert hat, bevor ich ausstieg, um Spiele in Vollzeit zu machen, kann ich jedem versichern, dass das Physikmodell vollständig genau ist und es eine Ganzkörpersimulation ist. Ich weiß es, weil ich den Code geschrieben habe.
Vielleicht hätte ich in der Demo einen besseren Job machen sollen, aber wenn du mit Geschwindigkeit fliegst und deine gewünschte Geschwindigkeit auf Null stellst, wirst du sehen, wie die oberen vorderen Triebwerke artikulieren und feuern, um deine Geschwindigkeit zu verlangsamen. Wenn Sie sich meine Demo ansehen, werden Sie feststellen, dass es mit der Hornet etwas Dynamik gibt, wenn ich in der Nähe der Brücke langsamer werde. Es mag nicht auf dem Bildschirm sichtbar gewesen sein, aber ich kann versichern, dass die Hornet nicht auf einen Cent stoppt. Wenn man sie mit mehr Masse (wie Zusatzwaffen) auflädt, spürt man die Wirkung.
Es gibt keine Drag-Modelle - alles wird so gemacht, wie es im Weltraum wäre.
Zusätzlich gibt es tatsächlich Gegenschub, der innerhalb der Physik angewendet wird, und wenn man die Hände auf dem Controller hätte, würde man ihn spüren. Wenn Sie genau hinsehen, werden Sie die Trägheit sehen - das Schiff hört nicht auf, zu rollen oder zu kippen. Es gibt jedoch einen sehr guten Grund, warum man die Triebwerke nicht ganz genau feuern sieht.
Das Problem mit der visuellen Darstellung des richtigen Stosses ist, dass es tatsächlich ziemlich schrecklich aussehen würde (vertrauen Sie mir, so habe ich es zum ersten Mal gemacht, und es ist immer noch ziemlich einfach, zurückzuschalten, da ich tatsächlich etwas zusätzliche Arbeit verrichte, um die Visuals schöner aussehen zu lassen).
Der Grund dafür ist, dass es keinen Luftwiderstand im Raum gibt, so dass selbst eine geringe Menge an Schub die Hornisse (oder ein beliebiges Raumschiff) in Rotation versetzt, bis Sie Gegenschub anwenden. Was also wirklich passiert, ist, dass das Flugsteuerungssystem immer Mikroschub und Gegenschub anwendet, um die Eingaben des Piloten zu erreichen. Dies führt dazu, dass die Triebwerke in Mikromengen immer wieder flackern und man eigentlich kein gutes Gefühl für die allgemeine Anwendung des Schubs bekommt. Ich denke, du weißt, dass ich es mag, wenn die Dinge cool aussehen (komm schon, wir alle wissen, dass du wahrscheinlich nicht in Weltraum-Durchkämpfe mit Geschwindigkeiten des Zweiten Weltkriegs verwickelt wärst, aber es macht so viel mehr Spaß, als es die Realität wahrscheinlich wäre), also ist es so, dass das System immer noch genau modelliert ist, aber ich benutze das Winkel-Lineargeschwindigkeitsdelta, um die visuelle Darstellung von Schub zu steuern. Hier ist mein Codekommentar.
/ //Note das thrustGoal ist eigentlich das lineare Geschwindigkeitsdelta (gewünschte Geschwindigkeit - aktuelle Geschwindigkeit von
das Fahrzeug & die Rotationsgeschwindigkeit und nicht die tatsächliche lineare & Winkelbeschleunigung / Schub. / /Das liegt daran, dass, obwohl ungenau, sein Kühler, um einen konstanteren Schub zu sehen, der einen konstanten Schub gibt.
Sie erhalten einen visuellen Hinweis darauf, welche korrigierenden Bewegungs-/Geschwindigkeitsvektoren das Fahrzeug verwendet.
/ /Wenn wir nur die Beschleunigung und nicht die gewünschte Geschwindigkeitskorrektur verwendet haben, flammt das Triebwerk.
//würde ein- und ausblenden - besonders im Wing Commander Anwendungsfall Weltraum, bei dem
Es gibt keine Atmosphäre, die Widerstand bietet.
//
Wenn Sie die tatsächlichen Beschleunigungen an SetThrustGoal weitergeben, dann erhalten Sie eine genaue //visuelle Darstellung dessen, was ein Thruster wirklich tun würde.
Ich hoffe, das klärt jede Verwirrung!
Ich gebe zu, dass das Schiff keine Flügel oder Ventilatoren an der Vorderseite haben muss, aber die Idee dahinter ist für einen möglichen atmosphärischen Flug (dies ist kein Versprechen der planetarischen Aktion für den frühen Bau, sondern erlaubt Erweiterungen in diese Richtung) und als RAM-Schaufel. Außerdem sieht es einfach aus / fühlt sich cool an!
Chris Roberts
Als jemand, der Physik an der Manchester University studiert hat, bevor ich ausstieg, um Spiele in Vollzeit zu machen, kann ich jedem versichern, dass das Physikmodell vollständig genau ist und es eine Ganzkörpersimulation ist. Ich weiß es, weil ich den Code geschrieben habe.
Vielleicht hätte ich in der Demo einen besseren Job machen sollen, aber wenn du mit Geschwindigkeit fliegst und deine gewünschte Geschwindigkeit auf Null stellst, wirst du sehen, wie die oberen vorderen Triebwerke artikulieren und feuern, um deine Geschwindigkeit zu verlangsamen. Wenn Sie sich meine Demo ansehen, werden Sie feststellen, dass es mit der Hornet etwas Dynamik gibt, wenn ich in der Nähe der Brücke langsamer werde. Es mag nicht auf dem Bildschirm sichtbar gewesen sein, aber ich kann versichern, dass die Hornet nicht auf einen Cent stoppt. Wenn man sie mit mehr Masse (wie Zusatzwaffen) auflädt, spürt man die Wirkung.
Es gibt keine Drag-Modelle - alles wird so gemacht, wie es im Weltraum wäre.
Zusätzlich gibt es tatsächlich Gegenschub, der innerhalb der Physik angewendet wird, und wenn man die Hände auf dem Controller hätte, würde man ihn spüren. Wenn Sie genau hinsehen, werden Sie die Trägheit sehen - das Schiff hört nicht auf, zu rollen oder zu kippen. Es gibt jedoch einen sehr guten Grund, warum man die Triebwerke nicht ganz genau feuern sieht.
Das Problem mit der visuellen Darstellung des richtigen Stosses ist, dass es tatsächlich ziemlich schrecklich aussehen würde (vertrauen Sie mir, so habe ich es zum ersten Mal gemacht, und es ist immer noch ziemlich einfach, zurückzuschalten, da ich tatsächlich etwas zusätzliche Arbeit verrichte, um die Visuals schöner aussehen zu lassen).
Der Grund dafür ist, dass es keinen Luftwiderstand im Raum gibt, so dass selbst eine geringe Menge an Schub die Hornisse (oder ein beliebiges Raumschiff) in Rotation versetzt, bis Sie Gegenschub anwenden. Was also wirklich passiert, ist, dass das Flugsteuerungssystem immer Mikroschub und Gegenschub anwendet, um die Eingaben des Piloten zu erreichen. Dies führt dazu, dass die Triebwerke in Mikromengen immer wieder flackern und man eigentlich kein gutes Gefühl für die allgemeine Anwendung des Schubs bekommt. Ich denke, du weißt, dass ich es mag, wenn die Dinge cool aussehen (komm schon, wir alle wissen, dass du wahrscheinlich nicht in Weltraum-Durchkämpfe mit Geschwindigkeiten des Zweiten Weltkriegs verwickelt wärst, aber es macht so viel mehr Spaß, als es die Realität wahrscheinlich wäre), also ist es so, dass das System immer noch genau modelliert ist, aber ich benutze das Winkel-Lineargeschwindigkeitsdelta, um die visuelle Darstellung von Schub zu steuern. Hier ist mein Codekommentar.
/ //Note das thrustGoal ist eigentlich das lineare Geschwindigkeitsdelta (gewünschte Geschwindigkeit - aktuelle Geschwindigkeit von
das Fahrzeug & die Rotationsgeschwindigkeit und nicht die tatsächliche lineare & Winkelbeschleunigung / Schub. / /Das liegt daran, dass, obwohl ungenau, sein Kühler, um einen konstanteren Schub zu sehen, der einen konstanten Schub gibt.
Sie erhalten einen visuellen Hinweis darauf, welche korrigierenden Bewegungs-/Geschwindigkeitsvektoren das Fahrzeug verwendet.
/ /Wenn wir nur die Beschleunigung und nicht die gewünschte Geschwindigkeitskorrektur verwendet haben, flammt das Triebwerk.
//würde ein- und ausblenden - besonders im Wing Commander Anwendungsfall Weltraum, bei dem
Es gibt keine Atmosphäre, die Widerstand bietet.
//
Wenn Sie die tatsächlichen Beschleunigungen an SetThrustGoal weitergeben, dann erhalten Sie eine genaue //visuelle Darstellung dessen, was ein Thruster wirklich tun würde.
Ich hoffe, das klärt jede Verwirrung!
Ich gebe zu, dass das Schiff keine Flügel oder Ventilatoren an der Vorderseite haben muss, aber die Idee dahinter ist für einen möglichen atmosphärischen Flug (dies ist kein Versprechen der planetarischen Aktion für den frühen Bau, sondern erlaubt Erweiterungen in diese Richtung) und als RAM-Schaufel. Außerdem sieht es einfach aus / fühlt sich cool an!
Chris Roberts
Chinese
There have been a lot of questions about how the game’s physics system will work. Is it going to be ‘physics light’ like Wing Commander, an entirely serious model of Newtonian physics like more recent games, or something in-between? Chris Roberts recently addressed this in a forum post and we thought it’d be good to share this background with everyone:
As someone that was taking Physics at Manchester University before I dropped out to make games full time I can assure everyone that the physics model is COMPLETELY accurate and it’s a full rigid body simulation. I know because I wrote the code.
Maybe I should have done a better job in the demo, but if you are flying at speed and you set your desired velocity to zero you WILL see the top front thrusters articulating and firing to slow your velocity. If you watch my demo you will notice there is some momentum with the Hornet when I slow down close to the bridge. It may not have been apparent on the screen, but I can assure the Hornet does not stop on a dime. if you load it up with more mass (like extra weapons) you feel the effect of this.
There is no drag modeled – everything is done as it would be in space.
Additionally there is actually counter thrust being applied inside the physics and if you had your hands on the controller you would feel it. If you look closely you will see the inertia of this – the ship doesn’t stop rolling or pitching on a dime. There is however a very good reason why you don’t actually see the thrusters fire entirely accurately.
The problem with visually depicting the proper thrust is that it would actually look pretty horrible (trust me this is how I first did it, and is still pretty easy to switch back to as I’m actually doing some extra work to make the visuals looks nicer).
The reason is because there is no drag in space, so even a micro amount of thrust starts the Hornet (or any spaceship) rotating until you apply counter thrust. So what is really happening is that the flight control system is always applying micro thrust and counter thrust to achieve the pilot’s inputs. This results in the thrusters flickering off and on in micro amounts and you actually not getting a good feel of the general application of thrust. I think you know I like things to look cool (come on, we all know you probably wouldn’t be engaging in space dogfights at WW2 speeds, but it’s so much more fun than what the reality would probably be), so what happens is that the system is still modeled accurately, but I use the angular /linear velocity delta to drive the visual representation of thrust. Here’s my code comment
//Note the thrustGoal is actually the linear velocity delta (desired vel – current vel of
//the vehicle & rotational vel rather than the actual linear & angular acceleration / thrust. //This is because, while inaccurate its cooler to see more constant thrust that gives
//you a visual clue as to what correctional movement / velocity vectors the vehicle is using.
//If we just used the acceleration as opposed to the desired velocity correction, the thruster flames
//would flicker on and off – especially in the Wing Commander use case of Space, where
//there is no atmosphere to provide drag.
//
//Of course if you pass the actual accelerations to SetThrustGoal, then you’ll get an accurate //visual representation of what a thruster would really do
I hope that clears up any confusion!
I will admit that the ship doesn’t need to have wings or fans on the front, but the idea behind that is for possible atmospheric flight (this is not a promise of planetary action for the early build but allows for expansions in this direction), and as a RAM scoop. Plus it just looks / feels cool!
Chris Roberts
As someone that was taking Physics at Manchester University before I dropped out to make games full time I can assure everyone that the physics model is COMPLETELY accurate and it’s a full rigid body simulation. I know because I wrote the code.
Maybe I should have done a better job in the demo, but if you are flying at speed and you set your desired velocity to zero you WILL see the top front thrusters articulating and firing to slow your velocity. If you watch my demo you will notice there is some momentum with the Hornet when I slow down close to the bridge. It may not have been apparent on the screen, but I can assure the Hornet does not stop on a dime. if you load it up with more mass (like extra weapons) you feel the effect of this.
There is no drag modeled – everything is done as it would be in space.
Additionally there is actually counter thrust being applied inside the physics and if you had your hands on the controller you would feel it. If you look closely you will see the inertia of this – the ship doesn’t stop rolling or pitching on a dime. There is however a very good reason why you don’t actually see the thrusters fire entirely accurately.
The problem with visually depicting the proper thrust is that it would actually look pretty horrible (trust me this is how I first did it, and is still pretty easy to switch back to as I’m actually doing some extra work to make the visuals looks nicer).
The reason is because there is no drag in space, so even a micro amount of thrust starts the Hornet (or any spaceship) rotating until you apply counter thrust. So what is really happening is that the flight control system is always applying micro thrust and counter thrust to achieve the pilot’s inputs. This results in the thrusters flickering off and on in micro amounts and you actually not getting a good feel of the general application of thrust. I think you know I like things to look cool (come on, we all know you probably wouldn’t be engaging in space dogfights at WW2 speeds, but it’s so much more fun than what the reality would probably be), so what happens is that the system is still modeled accurately, but I use the angular /linear velocity delta to drive the visual representation of thrust. Here’s my code comment
//Note the thrustGoal is actually the linear velocity delta (desired vel – current vel of
//the vehicle & rotational vel rather than the actual linear & angular acceleration / thrust. //This is because, while inaccurate its cooler to see more constant thrust that gives
//you a visual clue as to what correctional movement / velocity vectors the vehicle is using.
//If we just used the acceleration as opposed to the desired velocity correction, the thruster flames
//would flicker on and off – especially in the Wing Commander use case of Space, where
//there is no atmosphere to provide drag.
//
//Of course if you pass the actual accelerations to SetThrustGoal, then you’ll get an accurate //visual representation of what a thruster would really do
I hope that clears up any confusion!
I will admit that the ship doesn’t need to have wings or fans on the front, but the idea behind that is for possible atmospheric flight (this is not a promise of planetary action for the early build but allows for expansions in this direction), and as a RAM scoop. Plus it just looks / feels cool!
Chris Roberts
Links
| Text | URL |
|---|---|
| forum | http://www.robertsspaceindustries.com/forums/ |
Metadata
- CIG ID
- 12741
- Channel
- Undefined
- Category
- Undefined
- Series
- Design Post
- Comments
- 129
- Published
- 13 years ago (2012-10-20T00:00:00+00:00)