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
Antwort
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.
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))
).
- 1. Ich bin auf der Suche nach einem JavaScript IRC-Client
- 2. Ich bin auf der Suche nach Syslog-Client-Quellcode
- 3. Ich bin auf der Suche nach einem Regex, um Sonderzeichen in Javascript zu erkennen, damit ich einen Validierungsfehler anzeigen kann
- 4. Suche nach Minimum von Gruppen in Tableau
- 5. Ich bin auf der Suche nach einem Tool wie LibCheck, um verschiedene Versionen des gleichen SDK zu bewerten
- 6. Der beste Weg, um Entitäten in einem Spiel zu organisieren?
- 7. Auf der Suche nach Anleitung
- 8. Ich bin auf der Suche nach Links zu cdb/windbg + .net Dokumentation
- 9. Auswahl nur bestimmte Formen in einem Dynamikbereich
- 10. Auf der Suche nach einem bestimmten Designmuster
- 11. ZedGraph - Ich bin auf der Suche nach einem Beispiel für die Verwendung einer DateTime
- 12. Wie suche ich nach AD-Gruppen in Shiro ohne Systembenutzer?
- 13. Was ist der beste Weg, um Code zu organisieren?
- 14. Auf der Suche nach einem kreativen Designmuster
- 15. Auf der Suche nach einem Cocotron-Beispiel
- 16. Auf der Suche nach einem PHP-Encoder
- 17. Der beste Weg, um eine komplexe iPhone-Projektdateistruktur zu organisieren?
- 18. Ich bin auf der Suche nach einer Reihe von guten Praktiken zur sicheren HTML-Formular-Handle
- 19. Auf der Suche nach einem Designmuster
- 20. Ich bin auf der Suche nach dem Unterschied zwischen 2 "HH: mm: ss.fff" -Werte in VB
- 21. Auf der Suche nach einem Responsive Dropdown
- 22. Suche nach einem Punkt auf der Winkelhalbierenden
- 23. Auf der Suche nach einem hochauflösenden Timer
- 24. php Suche nach Arbeit auf bestimmte URL
- 25. Auf der Suche nach einem Arbeitsbeispiel von JasperStudio xml subdatasource
- 26. Auf der Suche nach einem Shurtcut von Properties.Settings.Default
- 27. Ich bin auf der Suche nach Element auf .ready ausblenden und zeigen sie mit Animation onclick
- 28. Ich bin verwirrt über einige Reflection-Code und auf der Suche nach Einsicht
- 29. Ich bin auf der Suche nach dem Vertx JDBC SQLite Treiber
- 30. Ich bin auf der Suche nach einem Windows-Hosting-Provider, der benutzerdefinierte OS-Images unterstützt (wie AMZN EC2)
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
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
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