-
Hintergrund der Erfindung
-
1. Bereich der Erfindung
-
Die
Erfindung betrifft ein vernetztes interaktives Simulationssystem,
und insbesondere ein vernetztes interaktives Bewegungssimulationssystem mit
geteiltem Speicher, das es überwachenden
Personen erlaubt, die Spielsteuerung zu korrigieren, und Zuschauern
erlaubt, bei dem Simulationsspiel zuzuschauen.
-
2. Beschreibung des Standes
der Technik
-
Computerbasierte
Arcadespiele, welche den Betrieb von Fahrzeugen, wie beispielsweise
Autos, Flugzeuge, zu Trainingszwecken und zur Unterhaltung simulieren,
haben eine weite Verbreitung. Aufgrund von Fortschritten in der
Netzwerktechnik wurden die Spiele in steigenden Maße komplex,
so dass es möglich
ist, eine Mehrzahl von Fahrzeugen zu simulieren, die durch unterschiedliche
Teilnehmer gesteuert werden. Ein Szenario, bei dem mehrere Teilnehmer
mitmachen können,
kann ein Autorennen sein. Jeder der Teilnehmer sitzt in einer individuellen Simulatorkabine
und sieht eine Anzeige, die eine virtuelle Umgebung darstellt, die
den Rennkurs und alle anderen Fahrzeuge enthält. Jeder Teilnehmer steuert ein
individuelles Fahrzeug in der virtuellen Umgebung durch die um den
Sitz herum gebildete Spielsteuerungseinheit.
-
Unterschiedliche
Fahrzeuge interagieren miteinander durch gegebene physikalische
Prinzipien. Die Interaktion im Spiel kann eine Kollision der Autos,
eine Kollision zwischen einem Auto und Zäunen oder Bäumen sein. Das Netzwerk wird
dazu verwendet, diejenigen Daten zu übertragen, welche dazu verwendet
werden, die Erfordernis des Eintauchens in das Spiel und der Realität des Spiels
zu erfüllen.
-
Beispiele
von Mehrspieler-Simulationssystemen gemäß des Standes der Technik enthalten
das Patent
WO 92/16922 mit
dem Titel „Vehicle
simulator including cross-network feedback" (Fahrzeugsimulator mit Feedback über Netzwerk),
welches einen Fahrzeugsimulator offenbart, der eine Tandemoberfläche zum
Ausstatten eines ersten und eines zweiten Benutzers aufweist, die
jeweils ein erstes bzw. ein zweites simuliertes Fahrzeug durch einen
simulierten Raum steuern. Jeder Benutzer sitzt vor einem Videomonitor,
und jeder Videomonitor ist elektrisch mit einem zugehörigen Computer
verbunden. Jeder Computer hat einen simulierten Raum, der in dem
elektronischen Speicher des Computers gespeichert ist, und die Computer
sind über
einen geteilten RAM-Speicher verbunden. Der Computer der Benutzer
führt in
jedem Spielzyklus Zugriffe auf den geteilten RAM durch, um zu bestimmen,
ob ein Schuss abgefeuert wurde, und berechnet, falls ein Schuss
abgefeuert wurde, ob der Schuss die zugehörigen Fahrzeuge getroffen hat.
Das Patent
WO 93/16776 mit dem
Titel „virtual
image Entertainment" (Unterhaltung durch
virtuelle Bilder) offenbart ein interaktives bewegungsbasiertes
Echtzeit-Simulations-Unterhaltungspiel,
das ein computererzeugtes Videospiel verwendet, dass mit der bewegungsbasierten,
anwendergesteuerten Steuerungsstation oder mit dem Simulator interagiert.
Eine Mehrzahl von (typischerweise zwei) Teilnehmern interagieren
mittels der selektiven und zeitlich abgepassten Videoszenarien,
um ein Ziel zu erreichen.
-
Interaktionen
werden unter Verwendung des Steuerknüppels und des Steuerknopfes
ausgeführt. Mehrspieler-Simulationssysteme
gemäß des Standes
der Technik sind hardwaremäßig verdrahtet
für besondere
Teamwork-Erfahrungen. Obgleich es relativ einfach ist, einen Rennsimulator
umzugestalten, um unterschiedliche Routen zu simulieren, kann ein solcher
Simulator nicht in einen Simulator eines Eins-zu-Eins Kampfszenarios
umgestaltet werden, dass gegeneinander zusammenstoßende Motorfahrzeuge
umfasst.
-
Der
Stand der Technik enthält
auch die
WO 94/19783 mit
dem Titel „The
System and Method for Providing a Simulation Ride and Game" (System und Verfahren
zum Bereitstellen einer Simulationsfahrt und eines Simulationsspiels).
Diese Systemarchitektur erzeugt eine Bordkarte oder eine Kassette,
welche die Fahrtparameter für
die Simulationsvorrichtung liefert, welche die Bewegung, visuelle
Elemente, und die Klänge
der Fahrt, die der Benutzer gestaltet hat, enthält. Das Netzwerk und das Modem
erlauben dem Benutzer auch, mit Fahrtgestaltern und Spielern des
Spiels zu interagieren, um miteinander entweder eine Fahrt oder
einen Wettbewerb in einem Spiel zu entwickeln. Simulationssysteme
gemäß dem Stand der
Technik setzen den Fokus mehr auf Achterbahn-Arkadespiele, die durch
die Vielseitigkeit der Fahrtgestaltung durch den Benutzer gekennzeichnet sind.
Das System wird einen Wettkampf mit physischer Interaktionen der
Spieler, wie beispielsweise eine Nahkampfsimulation, die Kampfflugzeuge
einbezieht, nicht erlauben.
-
Der
Stand der Technik enthält
auch das
US-Patent Nr. 6,126,548 mit
dem Titel „Multi-Player Entertainment
System" (Mehrspieler
Unterhaltungssystem".
Das System, welches die Simulatoren aufweist, welche durch Host-Computer
an das Netzwerk gekoppelt sind, arbeitet als verteilte Zustandsmaschine
(distributed state machine). Jeder von den Hostcomputern hält einen
Zustandsvektor, der einen aktuellen Zustand seines zugehörigen Simulators
definiert. Von jedem Computer werden Elemente des Zustandsvektors,
die für
die anderen Simulatoren in dem System relevant sind, dem Netzwerk
auf asynchrone Weise bekanntgegeben, wenn der Zustand des Simulators
um mehr als einen voreingestellten Schwellenwert von dem abweicht,
der durch ein Berechnungsmodel geringer Auflösung für dessen Verhalten berechnet
wurde. Jeder Simulator führt
solch ein Kopplungsmodell für
sich selbst und für
alle anderen Simulatoren in der geteilten virtuellen Umgebung aus.
Erneuerungen der Zustandsparameter für jede simulierte Plattform
werden daher beibehalten entweder durch einen Kopplungsprozess (dead
reckoning) (solange wie dessen Genauigkeit innerhalb eines definierten
Fehlerschwellenwerts bleibt) oder durch Senden von Zustandserneuerungen,
welche die Kopplungseinschätzungen
korrigieren. Mehrspielersysteme des Standes der Technik heben die
Rekonfigurierung des Systems und die eintauchende, mosaikmäßige grafische
Anzeige hervor. Es ist nicht als überwachtes Trainingssystem
konfiguriert, wie beispielsweise das Automobilfahrertraining, noch kann
es als Zuschauerbetreuungssystem konfiguriert sein, das dem Zuschauer
nur teilnehmen lässt,
um den Nahkampf der Kämpfer
gemäß seines/ihres
Augenpunktes und seiner/ihrer Sichtauswahllinie anzuschauen.
-
Der
Stand der Technik enthält
auch der
US-Patent Nr. 5,816,920 mit
dem Titel „Game
System and Method of Entering Game System" (Spielsystem und Verfahren des Eintretens
eines Spielsystems). Das Spielsystem ermöglicht den Eintritt eines neuen
Spielterminals in ein aktuell sich in Betrieb befindliches Mehrspieler-Spielsystem.
Jedes Spielterminal enthält
einen Master/Slave-Einstell-Bereich, welcher detektiert, ob Daten über Datenübertragungsleitungen übertragen
wurden oder nicht, wenn das Spielterminal startet, und entweder
setzt es sich selbst als die Master-Maschine, falls keine übertragenen
Daten vorhanden sind, oder es setzt sich selbst als Slave-Maschine,
falls übertragene
Daten schon vorhanden sind. Das Spielsystem enthält auch einen Eintrittsakzeptanzsignal-Übertragungsbereich, wobei die
Master-Maschine ein Eintrittsakzeptanzsignal zum Akzeptieren von
Eintritten in das Spielsystem zwischen den Spielterminals überträgt.
-
Der
Stand der Technik enthält
auch das
US-Patent Nr. 6,155,928 mit
dem Titel „Modular
Portable Gaming Simulator Systems and Methods" (modulare portable Spielsimulationssysteme
und -Verfahren). Das modulare portable Spielsimulationssystem enthält einen
Transportbehälter
mit mindestens einer beweglichen Seitenwand, an welcher zwei oder mehrere
Spielsimulationsstationen angebracht sind. Die bewegliche Seitenwand
kann zwischen einer Transportposition oder aufrechten Position zum Transportieren
des Systems und einer ausgefahrenen oder aktiven Position zum Anzeigen
und Betätigen der
Spielsimulationsstationen selektiv angehoben und gesenkt werden.
Die Spielsimulationsstationen sind miteinander verbunden, so dass
die Spielsimulationsstationen eine Softwareprogrammanwendung, wie
zum Beispiel einen Kopf-an-Kopf-Wettkampf,
interaktiv ausführen
können.
In der ausgefahrenen Position bilden die beweglichen Seitenwände ein
Gerüst,
auf dem die Spielsimulationsstationen ruhen können. Um das System zu transportieren,
bleiben die Spielsimulationsstationen in einer horizontalen Seitenlage
an der Seitenwand angebracht.
-
Der
Stand der Technik enthält
auch die
US-Veröffentlichung
Nr. 2004/127288 mit dem Titel „Communication Game Equipment" (Kommunikationsspiel-Ausstattung).
Das Kommunikationsspiel ist dazu in der Lage, ein System zum Durchführen einer Echtzeit-Mehrspieler-Kommunikation
und Echtzeit-Managementüberwachungs-Kommunikation zu implementieren,
während
gleichzeitig der Auslastungsgrad der Ausstattung beibehalten wird.
Die Kommunikationsspiel-Ausstattung enthält ein Hauptsystem mit einer
Haupt-CPU, welche die Ausführung von
Spielen durch Spielprogramme steuert; und ein Kommunikations-Untersystem
mit einer Unter-CPU, welche eine Mehrzahl von unterschiedlichen
Kommunikationsfunktionsaufgaben ausführt, wobei das Kommunikationsuntersystem
mit einem geteilten Speicher ausgestattet ist, auf den durch die Haupt-CPU
und die Unter-CPU
zugegriffen werden kann, wobei das Kommunikationsuntersystem eine Ressourcen-Managementaufgaben-Funktion
hat, welche die Ressourcen des geteilten Speichers für die Mehrzahl
von unterschiedlichen Kommunikationsfunktionsaufgaben verwaltet.
-
Es
besteht das Bedürfnis
nach einem System und einem Verfahren zum Bereitstellen einer Simulationsfahrt
und eines Simulationsspiels, welche einem Überwacher erlauben, die Spielsteuerung
zu unterrichten, und Zuschauern jederzeit erlaubt, dem Simulationsspiel
zuzuschauen, ganz gleich ob das Simulationsrennen gerade läuft oder
nicht.
-
Kurze Beschreibung der Erfindung
-
Die
Erfindung betrifft ein vernetztes Bewegungssimulationssystem mit
geteiltem Speicher gemäß dem unabhängigen Anspruch
1. Das System hat eine Architektur mit geteiltem Speicher, die unterschiedlichen
Teilnehmern unterschiedliche Prioritäten zuweist. Der Ausdruck „Teilnehmer" bezeichnet hier
einen Spielteilnehmer, der mindestens mit einem Computer ausgestattet
ist und durch ein Netzwerk mit dem Simulationssystem verbunden ist.
Gemäß der Priorität der Speicherzugriffsberechtigungen
können
die Teilnehmer die Daten aus dem von unterschiedlichen Speicherbenutzern
geteilten gemeinsamen Speicher lesen, schreiben, und überschreiben. Solch
ein Speicher wird durch das Netzwerk gehalten, um für alle Benutzer
konsistente und transparente Daten zu gewinnen. Ein Computer unter
den vernetzten Computern wird für
den gesamten Simulationsprozess als der Server verwendet, welcher
die Zustände
als auch den Ablauf des Simulationsspiels steuert. Die restlichen
Computer werden Clients genannt. Jeder der individuellen Clients
steuert höchstens
eine Simulatoreinheit. Jede Simulatoreinheit ist vorzugsweise auf
einer Bewegungsplattform montiert, um den Teilnehmer mit dem Bewegungsunterprogramm
(motion cue) auszustatten, das konsistent ist mit der Bewegung in
dem Simulationsspiel. Das „Unterprogramm" bezeichnet hier
einen Hinweis oder ein Merkmal, der/das die Natur von etwas Wahrgenommenen
angibt.
-
Innerhalb
eines Simulationsspiels kann es eine Integration von beweglichen
Objekten geben, die Fahrzeuge, Flugkörper, Raketen, Kanonenkugeln,
fallende Bäume
usw. aufweisen, wobei die statischen Objekte Berge, Straßen, Brücken, Wege, usw.
aufweisen. Die durch die Benutzer gesteuerten beweglichen Objekte
werden als Client-eigene Fahrzeuge bezeichnet. Die selbstgesteuerten,
beweglichen Objekte, wie beispielsweise Raketen, werden als Server-eigene
bewegliche Objekte bezeichnet. Die Darstellung der statischen Objekte
wird durch einen Satz von Daten bestimmt, genannt Virtuelle-Umgebungs- Parameter, wie die
Position der Sonne und Nebel. Die zentralisierten Informationen,
die verwendet werden, den Spielablauf zu regeln, werden als Spielzustandsparameter
bezeichnet, wie beispielsweise der Spielstartstatus, der Spielzeitzähler, usw. Die
Zustandsparameter enthalten einen Ort, Orientierungskoordinaten,
Geschwindigkeiten und Beschleunigungen der Objekte und simulierten
Fahrzeuge innerhalb der virtuellen Welt.
-
Der
geteilte Speicher des Simulationsspiels besteht aus dem minimalen
Satz von Daten, der für die
Bewegungs-, Grafik-, und Klang-Unterprogramme für die Teilnehmer erforderlich
ist.
-
Dadurch
wird der Netzwerkverkehr minimiert, während gleichzeitig die geteilten
Speicherdaten jedes Simulators für
alle anderen Simulatoren in dem Netzwerk verfügbar sind. Die Teilnehmer des
Simulationsspiels werden gemäß deren
Datenautorisierung in drei unterschiedliche Klassen eingeteilt. Die
erste Klasse wird die Überwachungsklasse
genannt, welche die höchste
Priorität
zum Lesen/Schreiben der Daten in dem geteilten Speicher des Simulationsprozesses
hat. Die zweite Klasse wird die Fahrerklasse genannt, welche das
Recht zum Lesen/Schreiben der Daten in dem geteilten Speicher des
Simulationsprozesses hat, wobei jedoch die Daten, die durch die
Fahrerklasse geschrieben wurden, durch die Überwachungsklasse umgeschrieben
werden können.
Die dritte Klasse wird die Zuschauerklasse genannt, die lediglich
das Recht hat, die Daten in dem geteilten Speicher zu lesen.
-
Die
entsprechende, auf die Unterscheidung von Teilnehmerklassen basierende
Datenentscheidung wird in dem Simulationsspiel erreicht. Überwachern
wird es ermöglicht,
die Spielsteuerung der einzelnen Fahrer korrigieren, und neuen Zuschauern wird
es ermöglicht,
dem Simulationsspiel mittels einer fortschrittlichen Ausstattung,
wie beispielsweise einer Simulatoreinheit, zuzuschauen.
-
Kurze Beschreibung der Figuren
-
1 ist
die Systemstruktur des Bewegungssimulationssytems.
-
2 ist
die Simulationseinheit.
-
3 sind
die Bereiche in dem gemeinsamen Speicher.
-
4 ist
die Teilnehmerwarteschlange für jede
der Client-eigenen
Datenbereiche.
-
5 ist
das Schema des geteilten Speichers für die Netzwerkkommunikation.
-
6 ist
das Blockdiagramm von auf dem Servercomputer und den Clientcomputern
laufender Software.
-
7 ist
der Inhalt in den Datenbereichen.
-
Ausführliche
Beschreibung der bevorzugten Ausführungsbeispiele
-
Innerhalb
eines Simulationsspiels können die
beweglichen Objekte durch Kollisionen miteinander Wechselwirken.
Das bewegliche Objekt kann sich selbst in zwei bewegliche Objekte
teilen, von denen eines ein Server-eigenes bewegliches Objekt ist. Das
bewegliche Objekt kann durch eine Kollision mit dem statischen Objekt
interagieren. Das statische Objekt wird aufgrund der Kollision ein
Server-eigenes statisches Objekt. Die Kollision wird mittels einer
als Kollisionsanalyse bezeichneten Grenzen-Überschneidungs-Analyse detektiert.
-
Unter
den vernetzten Computern wird ein Computer als der Server des gesamten
Simulationsprozesses verwendet, welcher Servercomputer den Ablauf
des Simulationsspiels steuert. Die restlichen Computer werden Clients
genannt. Jeder der individuellen Clients steuert höchstens
eine Simulatoreinheit. Jede Simulatoreinheit ist vorzugsweise auf
einer Bewegungsplattform montiert, um den Teilnehmer mit dem Unterprogramm
auszustatten, das mit der Bewegung des Simulationsspiels konsistent
ist. Oben auf der Bewegungsplattform befindet sich eine Kabine,
die die Projektoranzeigevorrichtung, die Spielsteuerung und das
Audiosystem aufweist. Die Projektoranzeigevorrichtung zeigt virtuell
das Abbild der 3D-Welt der Objekte auf einem 2D-Bildschirm gemäß der Position des Augenpunktes
und/oder der ausgewählten
Sichtorientierungslinie des Teilnehmers. Die Position des Augenpunktes
und/oder der Sichtorientierungslinie des Fahrers sind typischerweise
an einem virtuellen Fahrzeug angebracht, das innerhalb der 3D-Welt
fährt.
Die Bewegung des virtuellen Fahrzeugs wird durch eine Bewegungsplattform ausgeführt, die
den Teilnehmer schüttelt
und das Bewegungsunterprogramm liefert. Die Position des Augenpunkts
und/oder der Sichtorientierungslinie des Fahrers in der virtuellen
Welt sind an dem virtuellen Fahrzeug angebracht, und das gemäß dem Aussichtpunkt
projizierte Bild wird auf dem Bildschirm angezeigt. Der Augenpunkt
und/oder die Sichtorientierungslinie, die mit dem Navigieren des
Fahrzeugs verändert
werden, ergeben für
den Fahrer eine Serie von 2D-Bildprojektionen,
die das visuelle Unterprogramm genannt werden. Das Audiosystem mit
einem Satz von 2 bis 6 Lautsprechern, wobei jeder der Lautsprecher
unterschiedliche Klänge
erzeugt, simuliert die Geräuschquellen
in der virtuellen Welt. Das Audiosystem ist gestaltet, das Klang-Unterprogramm für den Teilnehmer
auszuführen,
das dem Teilnehmer erlaubt, die Lokalisierung sowie die Annäherungs/Entfernungs-Geschwindigkeit
des Objektes in der virtuellen Welt zu beurteilen.
-
Die
Teilnehmer werden gemäß deren
Datenberechtigung in drei unterschiedliche Klassen eingeteilt. Die
erste Klasse wird die Überwachungsklasse genannt,
welche die höchste
Priorität
zum Lesen/Schreiben der Daten in dem geteilten Speicher des Simulationsprozesses
hat. Die zweite Klasse wird die Fahrerklasse genannt, welche das
Recht zum Lesen/Schreiben der Daten in dem geteilten Speicher des
Simulationsprozesse hat, wobei jedoch die Daten, die durch die Fahrerklasse
geschrieben wurden, durch die Überwachungsklasse
umgeschrieben werden können.
Die dritte Klasse wird die Zuschauerklasse genannt, die lediglich
das Recht hat, die Daten in dem geteilten Speicher zu lesen.
-
1 zeigt
eine Systemstruktur des Bewegungssimulationssytems. In dem Bewegungssimulationssystem
gibt es drei Klassen von Teilnehmern; die Fahrerklasse ist typischerweise
mit einem Clientcomputer 11 und einer Simulatoreinheit 12 ausgestattet;
die Überwachungsklasse
ist typischerweise mit einem Clientcomputer 11 ausgestattet
und ist vorzugsweise mit der Simulatoreinheit 12 ausgestattet; die
Zuschauerklasse ist typischerweise nur mit dem Client-Computer 11 ausgestattet.
-
2 zeigt
die Simulatoreinheit 12. Jede Simulatoreinheit 12 weist
eine Bewegungsplattform 21, eine elektrische Steuerungsbox 22,
eine Kabine 23, die Platz für mindestens einen Benutzer
bietet, eine Projektionsanzeigevorrichtung 24, eine Spielsteuerungseinheit 25,
und ein Audiosystem mit Lautsprechern 26 auf.
-
3 zeigt
die Inhalte in einem geteilten Speicher 30. Der Speicher
ist in eine Vielzahl von Bereichen aufgeteilt, einschließlich des
Server-eigenen Datenbereichs und der Client-eigenen Datenbereiche.
Der gemeinsame Speicher ist vorzugsweise von minimaler Größe, um die
Datenübertragungsrate
zu beschleunigen. In einem besonderen Ausführungsbeispiel der Erfindung
besteht der gemeinsame Speicher aus einem Server-eigenen Datenbereich der Größe von zweiunddreißig Doppelworten
(32 Bits). Jeder der Client-eigenen Bereiche besteht aus zweiunddreißig Doppelworten
(32 Bits).
-
Die
Berechtigung des Datenzugriffs auf den geteilten Speicher wird durch
die Priorität
geregelt. Es ist nur einem Benutzer aus der Wartschlange von Benutzern
erlaubt, die Daten zu schreiben. Die restlichen Benutzer, welche
mit der niedrigeren Priorität ausgestattet
sind, können
die Daten nur lesen, wenn sie warten, dass der Benutzer mit der
höchsten
Priorität
die Warteschlange verlässt.
Jeder der Client-eigenen Daten ist mit einem in der virtuellen Umgebung
dargestellten Fahrzeug verknüpft,
falls irgendeiner der Teilnehmer gerade diesen Client-eigenen Datenbereich
steuert. Der Ausdruck „gesteuert" wird praktisch durch
die Daten-„Schreib"-Berechtigung implementiert.
Der Teilnehmer wird höchstens einen
Client-eigenen Datenbereich
prüfen,
um die Berechtigung zur Steuerung zu erhalten. Es kann mehr als
einen Teilnehmer geben, der denselben Client-eigenen Datenbereich
steuern will. Die Teilnehmer warten in der Warteschlange auf die
Berechtigung zur Steuerung. 4 zeigt
ein Beispiel des besonderen Ausführungsbeispiels
der Benutzerwarteschlange des Client-eigenen Datenbereichs. In dem Beispiel
gibt es acht Teilnehmer; jeder hat eine zugewiesene Priorität in dem
Simulationssystem. Teilnehmer #1, Teilnehmer #2 und Teilnehmer #8
sind auf demselben Datenbereich überprüft. Da der
Teilnehmer #2 die höchste
Priorität
hat, wird er damit betraut, das mit diesem Datenbereich verbundene
Fahrzeug zu steuern; mit anderen Worten, es ihm wird erlaubt, Daten
in diesen Bereich zu schreiben, während die restlichen Teilnehmer
in der Warteschlange auf die Berechtigung zur Steuerung warten.
In dem Fall, wenn der Teilnehmer #2 austritt, kann der Teilnehmer #1
sofort den Platz des Steuern des mit dem Client #2-Datenbereich
verbundenen Fahrzeugs einnehmen. In dem Fall, dass der Teilnehmer
#2 wieder in die Warteschlange kommt, um die Steuerungs-Berechtigung
zu erhalten, wird der Teilnehmer #1 zurückverwiesen, um in der Warteschlange
auf die Berechtigung zu warten. Dadurch, dass die Autorität über den
Client-eigenen Datenbereich wahlweise von einem Benutzer zu einem
anderen Benutzer geschoben wird, wird die Überwachungssteuerung realisiert.
In diesem besonderen Ausführungsbeispiel, bei
dem es in dem Client #2-Datenbereich drei Klassen von Teilnehmern
gibt, übernimmt
der Teilnehmer #2 die Rolle des Überwachers
des Teilnehmers #1, da Teilnehmer #1 eine höhere Priorität besitzt,
um in die durch den Teilnehmer #1, der eine niedrigere Priorität besitzt,
durchgeführte
Steuerung einzugreifen. Der Teilnehmer #8 hat die Rolle des Zuschauers,
der auf dem Rücksitz
des Fahrzeugs sitzt, um das Fahrzeug fahren (oder navigieren) zu
sehen. Die Teilnehmer #3, #4, #5 und #6 steuern individuell ein
Fahrzeug in der virtuellen Umgebung. Der Teilnehmer #7 testet keinen
Client-eigenen Datenbereich;
er ist ein freier Zuschauer, um seine statische Sichtlinie und seinen
Augenpunkt in der virtuellen Umgebung auszuwählen.
-
5 zeigt
das Schema des geteilten Speichers für die Netzwerkkommunikation.
In einem besonderen Ausführungsbeispiel
der Erfindung wird der gemeinsame Speicher für jeden individuellen Computer
alle dreißig
Millisekunden (30 × 10–3 s)
erneuert (updated). Der Servercomputer 13 schreibt die
Daten gemäß den Spielzustandsparametern
in den Server-eigenen Bereich des geteilten Speichers. Der Servercomputer 13 ist
auch dafür
verantwortlich, die Datenkonsistenz in dem geteilten Speicher auf
jedem der Clientcomputer 11 und dem Servercomputer 13 aufrechtzuerhalten
durch Hochladen der Server-eigenen Daten auf den Clientcomputer 11 und
Herunterladen der Client-eigenen Daten von dem Clientcomputer 11.
-
In
einem besonderen Ausführungsbeispiel der
Erfindung ist der Client durch das Benutzer-Datagramm-Protokoll
(user datagram protocol) (UDP), welches ein verbindungsloses Netzwerkprotokoll
ist, mit dem Server verbunden. Um Daten unter Verwendung des UDP
zu übertragen,
setzt der Clientcomputer zuerst die Eigenschaften der lokalen Schnittstellen
(Ports) des Clientcomputers, und ruft das Sende-Daten-Verfahren
(SendData method) auf, um mit dem Nachrichten-Senden zu beginnen.
Der Clientcomputer verwendet dann das Erhalte-Daten-Verfahren (GetData
method) mit dem Daten-Ankunfts-Ereignis (DataArrival event), um
die gesendeten Daten wiederzugewinnen. Es kann eine Liste von Servern geben,
welcher ein Clientcomputer beitreten kann. Um einen aktiven Server
zu finden, kann das UDP zum Server-Suchen verwendet werden. In einem Fall,
dass keiner der Server der Liste aktiv ist, kann der Clientcomputer
dann selbst der Servercomputer werden. Nachdem ein Server gefunden
wurde, kann das sukzessive Übertragungssteuerungsprotokoll (TCP)
(Transfer Control Protokol) zwischen dem Clientcomputer und dem
gefundenen Servercomputer aufgebaut werden. Das TCP wird eine Verbindung zwischen
den entfernten Computern aufbauen und beibehalten. Unter Verwendung
dieser Verbindung können
die Computer Datenströme
unter sich austauschen. Ein Anschluss in dem Servercomputer ist zum
Hören gesetzt
und ruft das Hör-Verfahren (Listen
method) auf. Wenn der Clientcomputer eine Verbindung anfordert,
tritt das Client-Anfrage-Ereignis (ClientRequest event) auf. Um
die Verbindung zu vervollständigen,
wird das Akzeptier-Verfahren (Accept method) innerhalb des Verbindungs-Anforderungs-Ereignisses
aufgerufen.
-
6 zeigt
ein Blockdiagramm einer auf dem Servercomputer und den Clientcomputern
laufenden Software. Der Clientcomputer 11 lädt die Fahrzeugtypparameter,
die Fahrzeugzustandsparameter, die Parameter des visuellen Zustands/Klang-Zustands
und die Fahrzeugkollisionsparameter auf den Servercomputer hoch
und schreibt in den Client-eigenen Bereich des geteilten Speichers.
Der Clientcomputer lädt
dann die gesamten Daten des geteilten Speichers von dem Servercomputer
herunter.
-
Gleichzeitig
erhält
der Clientcomputer Spieleingabedaten aus der Spielsteuerungseinheit.
In einem besonderen Ausführungsbeispiel
ist die Abtastrate eine Zehntelsekunde. Gemäß den Spieleingabedaten und
heruntergeladenen Daten des geteilten Speichers führt der
Clientcomputer die dynamische Analyse des Client-eigenen virtuellen
Fahrzeugs aus. Der Clientcomputer führt dann die Analyse der Kollision
des Client-eigenen virtuellen Fahrzeugs gegen die anderen Client-eigenen virtuellen
Fahrzeuge und Server-eigenen beweglichen Objekte aus gemäß den Spiel-Eingangsdaten
und heruntergeladenen geteilten Speicherdaten. Gemäß dem Ergebnis aus
der dynamischen Analyse und der Kollisionsanalyse und den Daten
des geteilten Speichers führt
der Clientcomputer visuelle Effekte und Klangeffekte aus. Gemäß den visuellen
Effekten und Klangeffekten steuert der Clientcomputer das Anzeige-
und Audiosystem. Gemäß den dynamischen
Daten und Kollisionsdaten führt
der Clientcomputer die Erzeugung der Bewegungen durch, mit den Gesetzen
des Bewegungsunterprogramms einhergehend. Der Client steuert dann
die Bewegungsplattform gemäß den Bewegungserzeugungsdaten.
Der Servercomputer 13 steuert die Spielzustandsparameter
gemäß den vorbestimmten
Spielregeln und den geteilten Speicherdaten und schreibt die Spielzustandsparameter, die
Parameter der virtuellen Umgebung, in den Server-eigenen Bereich
in dem geteilten Speicher gemäß der Spielzustandsparameter.
Die wichtigste Funktion des Servercomputers in dem Simulationsprozess
ist es, die Datenkonsistenz in dem geteilten Speicher aufrechtzuerhalten.
Der Servercomputer erzeugt Server-eigene bewegliche Objekte gemäß den Daten
in dem geteilten Speicher. Der Servercomputer führt auch die dynamische Analyse
und Kollisionsanalyse der Server-eigenen beweglichen Objekte aus.
Der Servercomputer schreibt Statusparameter und Kollisionsparameter
der Server-eigenen
beweglichen Objekte und in den Server-eigenen Bereich in dem geteilten
Speicher. Der Servercomputer kann ferner Mehrfachprozesse und Mehrfachfäden (multi thread)
aufweisen, von denen jede die zuvor erwähnte Clientfunktion emuliert.
-
7 zeigt
den Inhalt in den Datenbereichen. In einem besonderen Ausführungsbeispiel
der Erfindung kann der Inhalt in dem Serverspeicher aus Spielzustandsparametern,
Parametern der virtuellen Umgebung, den Zustandsparametern der Server-eigenen beweglichen
Objekte und den Kollisionsparametern der Server-eigenen beweglichen
Objekte bestehen. Der Inhalt in dem Clientspeicher kann aus den
Fahrzeugtypparametern, den Zustandsparametern, die mit diesen Client-eigenen
Datenbereich verbunden sind, den Klangparametern und den visuellen
Parametern des Fahrzeugs und den Kollisionsparametern des Fahrzeugs
bestehen. Die Zustandsparameter des Fahrzeugs können aus einer Position, einer
Geschwindigkeit und einer Beschleunigung des Fahrzeugs bestehen.
Die Kollisionsparameter des Fahrzeugs können aus der ID des momentan
beschäftigten
Fahrzeugs und derjenigen Geschwindigkeit bestehen, auf welche das
kollidierte Fahrzeug gesetzt werden sollte. Die Klangparameter können die
Art des Klangs enthalten, der das mit diesem Client-eigenen Datenbereich
verknüpfte
Fahrzeug darstellt, beispielsweise eine Explosion und den Motorklang.
Die visuellen Parameter können
umfassen, ob die Scheinwerfer des Fahrzeugs an sind.
-
Die
vorliegende Erfindung stellt ein vernetztes Bewegungssimulationssystem
mit geteiltem Speicher bereit. Das System hat einen geteilten Speicher
mit einer Architektur, die unterschiedlichen Teilnehmern unterschiedliche
Prioritäten
zuweist. Der Begriff „Teilnehmer" bezeichnet hierin
den Spielteilnehmer, der zumindest mit einem Computer ausgestattet
und über
Netzwerk mit dem Simulationssystem verbunden ist. Gemäß der Priorität der Speicherzugriffsberechtigungen
können
Teilnehmer die Daten aus dem von mehreren Benutzern geteilten gemeinsamen
Speicher lesen, schreiben und überschreiben.
Solch ein Speicher wird über
Netzwerk aufrechterhalten, um allen Benutzern konsistente und transparente
Daten zu liefern. Unter den vernetzten Computern wird ein Computer
als Server des gesamten Simulationsprozesses verwendet, welcher
die Zustände
sowie den Ablauf des Simulationsspiels steuert. Die restlichen Computer
werden Clients genannt. Jeder der individuellen Clients steuert
mindestens eine Simulatoreinheit. Jede Simulatoreinheit ist vorzugsweise
an einer Bewegungsplattform montiert, um den Teilnehmer mit einem
Bewegungsunterprogramm auszustatten, das konsistent mit der Bewegung
des Simulationsspiels ist. Das „Unterprogramm" bezeichnet hierin
einen Hinweis oder ein Merkmal, das die Natur von etwas Wahrgenommenen
bezeichnet.
-
Wie
oben erwähnt
wurde, schafft die vorliegende Erfindung ein vernetztes Bewegungssimulationssystem
mit geteiltem Speicher. Das System hat einen geteilten Speicher
mit einer Architektur, die unterschiedlichen Teilnehmern unterschiedliche
Prioritäten
zuweist. Der Begriff „Teilnehmer" bezeichnet hierin
den Spielteilnehmer, der zumindest mit einem Computer ausgestattet
und über
Netzwerk mit dem Simulationssystem verbunden ist.
-
Gemäß der Priorität der Speicherzugriffsberechtigungen
können
Teilnehmer die Daten aus dem gemeinsamen, von mehreren Benutzern
geteilten Speicher lesen, schreiben und überschreiben. Solch ein Speicher
wird über
Netzwerk aufrechterhalten, um allen Benutzern konsistente und transparente Daten
zu liefern. Das System und das Verfahren bietet eine Simulationsfahrt
und ein Simulationsspiel, die überwachenden
Personen erlauben, Fahrer über die
Spielsteuerung zu unterrichten, und Zuschauern erlauben, bei dem
Simulationsspiel zuzuschauen. Das System erfüllt mehrere Zwecke einschließlich Unterhaltung
und Training der Teilnehmer.