JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=2a704eafe54f61e15321fd0fa01f2612Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Pathfinding ohne Sektorenteilung

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 12:16    Titel: Pathfinding ohne Sektorenteilung Antworten mit Zitat

Ich habe ein 2D-Weltraumshooter programmiert, worin man sein Raumschiff inkl. Verbündete Einheiten in allen richtungen frei bewegen kann. Die Karte ist nicht in Felder aufgeteilt. Die Objektplatzierung und Bewegung soll komplett frei sein. Gibt dennoch Möglichkeiten für einen Pathfindingalgorithmus? z.B. möchte ich meine Einheiten von A nach B schicken und unterwegs ein Objekt umfliegen ( z.B. ein gegnerisches übermächtiges Schlachtschiff).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 12:31    Titel: Antworten mit Zitat

Der Bildschirm ist doch sicher in Pixel unterteilt - nimm doch einfach die als Sektoren Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 12:34    Titel: Antworten mit Zitat

Hallo,

hmmm Kollisionserkennung? Wozu brauchst du bei einem 2D-Shooter Pathfinding? Nur eben mal so?
Ich meine reicht ja, wenn deine Objekte ihr Ziel kenne und versuchen das zu erreichen. Auf dem Weg dorthin kann man ja kontrollieren, ob sie irgendwo anecken und wenn ja eben umfliegen? Ich weiß jetzt natuerlich nicht, wie komplex deine Umgebung ist und wie anspruchsvoll deine KI sein soll??
Aber ich wuerds so machen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 13:13    Titel: Antworten mit Zitat

Das mit den Pixel wäre ja echt ne geniale Idee. Wink
Klar kann ich meine Einheiten manuell steuern. Aber ich steuer nur eine Einheit gleichzeitig. Die Verbündeten bekommen nur befehle von mir. die Umgebung ist nicht sonderlich komplex. Die Hintergrundgrafiken dienen nur zur Show. Aber wenn ich z.B. ein schwarzes loch einbauen will, sollte dies möglichst umflogen werden. Ist halt nur ne verfeinerung der KI. Wenns keine Möglichkeit gibt, lass ich es halt sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 13:33    Titel: Antworten mit Zitat

Ich hab hier ein cooles Beispiel dazu aus einem Buch von mir:
Alle Hindernisse haben einen Mittelpunkt und einen Radius. Das zu bewegende Objekt hat einen Mittelpunkt, einen Radius und einen Zielvektor. Aus diesen Informationen lässt sich dann der verbesserte Richtungsvektor berechnen, und zwar wie folgt:

Legende:
Code:

GloalVec = Zielvektor
GolaLocation = Zielposition
Location = Spielerposition
DirVec = Richtungsvektor
ObstacleVec = Vektor zum Hindernis
Distance = Abstand zum Hindernis


Code:

GoalVec = GoalLocation - Location

if(GoalVec.length < Speed)
  return  // das Ziel wurde erreicht

DirVec = GoalVec / GoalVec.length // Der Richtungsvektor ist gleich dem normalisierten Zielvektor

k = 0.1

for(i = 0; i < NumObstacles; ++i)
{
  ObstacleVec = Location - Obstacle[i].Location

  Distance = ObstacleVec.length - Obstacles[i].Radius - Radius
  ObstacleVec.Normalize()

  DirVec += ObstacleVec * ( k / (Distance * Distance) )
}

DirVec.Normalize()


Danach musst du dein Objekt nur noch um DirVec * Speed bewegen. Fertig. ;)
Zur Anwendung: Ich würde den gegnerischen Raumschiffen einen so großen Hindernisradius geben, dass deine Einheiten außer Schussreichweite bleiben. Und bei schwarzen Löchern so groß, dass sie nicht in den "Ansaugabstand" geraten... den beachtet die obere Funktion nämlich nicht. ;)
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 13:48    Titel: Antworten mit Zitat

Das hört sich schon mal gut an. Die Raumschiffe sollen nicht so verblödet sein wie die Sammler aus C&C, die ab und zu durch die gegnerische Basis fahren um Tiberium zu sammeln.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 06.09.2003, 18:48    Titel: Antworten mit Zitat

Du liest nicht zufällig auch "Der Entwickler" ? Very Happy
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 18:49    Titel: Antworten mit Zitat

Ist das ne Zeitschrift?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 06.09.2003, 18:59    Titel: Antworten mit Zitat

Ja, besonders für Borland Programmierer ist leider ziemlich nahe am Profibereich angesiedelt.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 06.09.2003, 19:45    Titel: Antworten mit Zitat

Wenns ne Zeitschrift sein soll... kenn ich nicht. Aber solche feinheiten in der KI sind meiner Meinung wichtig. Vor allem sollte vieles Automatisiert werden, damit der Benutzer keine Handlingsprobleme bekommt. Ich hatte damals auch das problem gehabt Schiffe um eine Insel beliebiger Form herum fahren zu lassen. Ohne Sektorenteilung ging da gar nichts. Aber wenn jemand ne Idee hat wies ohne geht, der sollte gefeiert werden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum