2016-11-25 1 views
0

Ich erstelle ein Spiel, und ein Teil des Spiels beinhaltet eine große Anzahl von unabhängigen Akteuren, die in "Divisionen" gruppiert sind. Der Spieler kann die Schauspieler nicht direkt steuern, aber er kann der Division Befehle geben, wie "in diesen Bereich ziehen". Ich suche nach einem Algorithmus, der es dem Spieler erlaubt, etwas wie "Organisiere in ein Rechteck mit diesem Seitenverhältnis um diesen Punkt herum" zu sagen. Ich erwarte nicht, dass irgendjemand mir den Algorithmus übergibt, aber ich habe nicht viel mit dem Googlen gefunden, also frage ich mich, ob irgendjemand mir in die richtige Richtung zeigen könnte. Vielen Dank!Ich bin auf der Suche nach einem AI-Algorithmus, um Gruppen von Spielschauspielern in bestimmte Formen zu organisieren

+0

Warum müssen sich die Schauspieler selbst organisieren? Kann man nicht einfach das "4: 3-Rechteck in (x, y)" - Reihenfolge wählen, dann die * n * -Punkte auf dem Umfang dieses Rechtecks ​​auswählen und diese Punkte an die Schauspieler verteilen? – Blorgbeard

+0

Was künstliche Intelligenz in einem Spiel bedeutet, ist "dieses Spiel hat viel Code, um Dinge außerhalb der Benutzerkontrolle selbständig zu machen". IOW Sie müssen solche "Automagischen Organisationen" kodieren – Ripi2

+0

Haben Sie irgendwelche zusätzlichen Einschränkungen? Zum Beispiel, sollte der Algorithmus die Gesamtdistanz minimieren, die alle Akteure zurücklegen müssen, um zu ihren Zielorten zu gelangen? – samgak

Antwort

-1

Sie könnten eine Anzahl von Zielorten berechnen, die der Anzahl der Agenten entspricht, jeden Agenten paarweise an einen Standort anpassen (vorzugsweise den Abgleich wählen, der die längste Entfernung minimiert, die ein Agent zurücklegen muss) und dann jeden Agenten einen Pfad finden lassen zu seinem Ziel, z. B. mit einer A * -Suche.

Wenn Sie sie nicht von oben nach unten koordinieren können, dann könnten Sie jedem Agenten das Ziel geben, an einem Zielort zu landen, vorzugsweise am nächsten, und seinen Pfad neu berechnen zu lassen, wenn er den anderen sieht Wird oder ist zuerst dort angekommen. Das wäre komplizierter.

Für bestimmte Formen können Sie möglicherweise Ziele definieren, die zu dieser Formbildung führen: Wenn die Agenten beispielsweise versuchen, eine bestimmte Entfernung vom Mittelpunkt und so weit wie möglich von einem anderen Agenten entfernt zu sein , sie werden die Eckpunkte eines regelmäßigen Polygons bilden.

0

Ich bin mir nicht ganz sicher, ob ich die Frage beantworte, aber hier sind meine Gedanken.

Ich nehme an, die Pfadfindung selbst ist nicht das Problem, sondern bestimmt die Endpunkte für die Bewegung jeder Einheit.

Lassen Sie die Anzahl der (gleich großen, 1x1) Einheiten N und das Seitenverhältnis des gewünschten Rechtecks ​​0<r<=1. Wir möchten die Längen der Seiten des Rechtecks ​​a und b finden, die die obigen Kriterien erfüllen. Lasst uns sie neu formulieren.

a/b = r und a*b = N

Mit anderen Worten, a = r*b und damit r*a*a = N, die uns zu a = sqrt(N/r) führt und b = sqrt(r*N)

Nach Decke a und b wir die Größe des Rechtecks ​​werden wir suchen (a Eine kleine Verbesserung wäre hier, zuerst einen Wert einzunehmen, sagen wir a und berechnen b als ceil(N/ceil(a))).

Verwandte Themen