Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

01.06.2010, 11:21

Agenten in GTA

Hallo Leutz,

ich schreibe gerade meine Diplomarbeit über eine Verkehrsimulation. Derzeit ist es so, dass die fremden Autos, also die Agenten(Objekte in C#) mit dem Start der Simulation generiert und initialisiert werden, sie bleiben über die gesamte Laufzeit aktiv. Uns sind aber nur Agenten wichtig, die in unserem Sichtbereich sind.

Jedoch erfordert die Berechnung der Parameter der Agenten einiges an Zeit (ca. 0,5ms pro Agent) so dass die Anzahl der Agenten begrenzt ist.

Meine Frage ist nun, wie ist das in PC Spielen wie GTA gelöst. Anscheinend werden die Objekt dort an der Sichtgrenze generiert bzw. terminiert. Könnt ihr mir helfen, bzw. sagen, wo ich konkrete Infos herbekomme?

Danke

Robert

2

01.06.2010, 11:51

Also ich weiß es nicht genau, aber ich denke mal, dass die Modelle halt am Anfang des Spieles geladen werden und dann je nach Einstellung und Gegend per Zufallsprinzip erscheinen. Ich denke mal, dass sie die aktuelle Position des Spielers überprüfen und an einer bestimmten Entfernung die Autos halt positionieren und fahren lassen. Es könnte gut sein, dass sie eine bestimmte Anzahl an Autos bei Spielbeginn erzeugen (je nach Einstellungen) und diese dann halt entsprechend erscheinen lassen. Sind die Autos gleich, werden dann halt per Kopierkonstruktor weitere Autos erzeugt, was ja recht fix gehen sollte.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

Tobiking

1x Rätselkönig

  • Private Nachricht senden

3

01.06.2010, 12:39

Ich weiß nicht wie das bei GTA 4 ist, aber bei Vice City und anderen GTA ähnlichen Spielen fällt mir immer wieder auf, das Fahrzeuge spurlos verschwinden oder neu auftauchen wenn man sich um 180 Grad dreht, und kurz danach wieder zurück. Ich würde darauf tippen das es verschiedene Entfernungsstufen gibt, und ein paar Faktoren die beeinflussen welche Stufe gewählt wird. Fahrzeuge dürfen im Einflussbereich und Sichtbereich z.B. gar nicht auftauchen oder verschwinden. Außerhalb dessen ist das ganze wohl etwas lockerer zu sehen. Die Bereiche wird man aber wohl etwas in die Richtung vergrößern müssen, je nachdem wie schnell man sich in diese Richtung bewegt.

4

01.06.2010, 14:31

schonmal Danke für das rege Interesse am Thema.

Kennt ihr ein Spiel, welches ähnliche Funktionen aufweist und offenen Quellcode hat? Ich brauch es nähmlich etwas detaillierter um es in die Tat umzusetzen und um das Rad nicht neu erfinden zu müssen. Dass ichs dann nicht copy pasten kann und möchte ist mir klar.

Eigentlich sollte sich das Prinzip, welches ich Suche in den Grundlagen schon in den Computerspielen der ersten Generation finden lassen.

Gruß

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

01.06.2010, 22:03

@Tobiking:
Das gleiche ist mir auch aufgefallen.

@Molle:
Kannst du das nicht einfach so machen, dass zwar alle Objekte bereits bestehen, dann aber die aufwenigen Berechnungen nur mit den Agenten gemacht werden, welche im Sichtbereich liegen?
Das erstellen und entfernen von Objekten scheint mir bei deinem Fall unsinnig, weil durch das ja keine Dynamik produziert werden soll.

6

02.06.2010, 00:53

Naja, man kann das ja ein wenig geschickt machen. Soweit ich mich erinnere, kommt die Feuerwehr in GTA, wenn man ein Auto explodieren lässt. Bleibt der Spieler stehen, berechnet das Spiel die Anfahrt der Feuerwehr, kommt man nur nach einer Zeit wieder, reicht es, wenn das Spiel die Feuerwehr direkt beim Unfallort platziert, für den Spieler macht es dann keinen Unterschied, ob der Anfahrtweg berechnet wurde oder nicht.

Das ist jetzt ein einfaches Beispiel, ich glaube Allgemein kann man so etwas als Heuristiken bezeichnen. Letztendlich ist es egal, was genau passiert ist, wenn man nur mit sehr wenig Aufwand berechnen kann, was passiert sein könnte, merkt der Spieler schon keinen Unterschied mehr. Je nach Detailgrad muss man dann bei einem fahrenden Auto die komplette Fahrphysik berechnen, es einfach nur entlang des Fahrweges bewegen oder direkt zum Ziel teleportieren, abhängig ob der Spieler das Auto gerade anschaut, nur in der Nähe ist oder eben ganz woanders.
Lieber dumm fragen, als dumm bleiben!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

02.06.2010, 09:05

ich schreibe gerade meine Diplomarbeit über eine Verkehrsimulation.

Hi!
Mein Kollege hat seine Master-Arbeit über dieses Thema geschrieben.
Wir brauchen für unseren Fahrradsimulator nämlich eine vernünftige KI, die die Autos steuert.
Leider ist nicht viel dabei rumgekommen.
Aber vielleicht sind darin ein paar interessante Ideen für dich.

Ich finde die Arbeit selbst zwar gerade nicht online, aber hier ist ein Projektbericht:
http://www2.inf.fh-rhein-sieg.de/mi/lv/p…ichte/StV-2.pdf

Und ein Paper:
http://portal.acm.org/citation.cfm?id=1497015

Vielleicht hilft es dir.
Ich halte die Aufgabe für sehr komplex.

8

02.06.2010, 11:21

@Drakon: die Idee hatte ich auch, man friert die Agenten außerhalb des Sichtbereichs einfach ein.

Problem: Angenommen es existiert eine feste Grenze, hinter der die Agenten dann nicht mehr berechnet werden. Wenn das Beobachterfahrzeug nun eine Weile an einem Punkt steht, dann bewegen sich über kurz oder lang alle Agenten über diese Grenze und werden dann icht mehr berechnet. Erstens kommen keine Agenten in den Sichtbereich rein, weil sie ja nicht berechnet werden. Zweitens könnten sich die Agenten den Grenzen stapeln, durch die Kollisionsvermeidung kommt es dann zu einen Dead-Lock.



@David: auf das erste Dokument war ich bei der Recherche auch schon gestoßen, trotzdem Danke. Das Paper will nicht so recht, die PDF lässt sich nicht laden.


Gruß

Mastermind

unregistriert

9

02.06.2010, 11:42

Bei GTA geht es darum dass das ganze einigermaßen passabel aussieht. Du dagegen willst ja was simulieren. Wie du das am besten machst hängt von den Annahmen ab, die du triffst. Ich bezweifle dass die Annahmen für eine realistische Simulation die gleichen sind wie für GTA.

Es fehlen jede Menge Informationen über dein Projekt um wirklich einen vernünftigen Vorschlag machen zu können, und ganz ehrlich ich glaube im Rahmen einer Diplomarbeit ist dass sowieso die intellektuelle Leistung die du selbst bringen musst.

Vielleicht solltest du darüber hinaus in der Lokalen Bibliothek mal einen Kurs zum Recherchieren besuchen. Dass man einen ACM Account braucht um sich dort pdfs herunterzuladen dürfte eigentlich jedem der schonmal wissenschaftlich gearbeitet hat aufgefallen sein. Der nächste Schritt wäre rauszufinden ob deine Uni so einen Account hat, bzw. ob es das Paper auch bei einem Anbieter gibt für den deine Uni einen Account hat. Schlimmstenfalls musst du halt eine Fernleihe machen. Ich kann nicht glauben dass ich das einem Diplomanden wirklich erklären muss.


EDIT:

Himmel, die bieten es sogar selbst zum Download an, ohne umweg über irgendeinen Publisher. Enfach mal Titel bei Google angeben:

http://www.fivis.eu/download.php?f39e76f…367860bcd4772c9

10

02.06.2010, 12:21

@mastermind: sehr nett, ehrlich! Ich wollte hier nicht über Sinn und Unsinn meiner Diplomarbeit diskutieren und auch nicht über wissenschaftliche Recherche, ich habe lediglich die obige Frage gestellt.

Zitat

,und ganz ehrlich ich glaube im Rahmen einer Diplomarbeit ist dass sowieso die intellektuelle Leistung die du selbst bringen musst.


-->für ein Teilgebiet meiner Arbeit muss ich das Rad nicht neu erfinden!

Werbeanzeige