Denkanstoß : Bots

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

ToeB

Betreff: Denkanstoß : Bots

BeitragMo, Jan 12, 2009 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich wollte mich mal mit dem Thema Bots beschäftigen. Dazu viel mir gleich was ein was ich ja auch in meinem "EgoShooter" verbaut habe. Und zwar Waypoints. Man muss waypoints setzten, verbinden und der bot kann an ihnen langlaufen( Zufällig). Das ist aber sehr aufwändig, shr umständlich und außerdem kann man nicht viel damit anfangen, da der Bot z.B keinem Spieler hinterher gehen kann, schluchten "überspringen" oder kisten hochspringen kann. Jetzt hab ich mal ne Frage, ob sich aneder Leute schonmal damit beschäftigt haben und wie die es gelöst haben (Obs z.B. Tuts dazu gibt). Außerdem wollt ich Fragen, ob wie man so was machen kann wie in CS (1.6) das die Bots die Map eigenstädig lernen (Hat dazu jemand villeicht eine Idee ?).

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

FreetimeCoder

BeitragMo, Jan 12, 2009 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Also zu Spieler hinterherlaufen: Mach bei den Waypoints doch einen Radius drum in dem sich die Bots bewegen können, dann haben sie mehr Bewegungsfreiheit.

Zum Springen: Erstelle einen Waypont Type der Node Types als Verbindungen hat. Diese sagen dann aus wie der Bot vom einem zum anderen Waypoint kommt und ob es eventuell ein OneWayTicket ist.

Zu CS: Ja das versuch ich auch schon lange rauszukriegen Confused
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

Smily

BeitragMo, Jan 12, 2009 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Pathfinding
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

ozzi789

BeitragMo, Jan 12, 2009 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu CS
http://developer.valvesoftware...generation

hoffe es hilft dir
mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

ToeB

BeitragMo, Jan 12, 2009 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
@ozzi : Ja aber die machen es ja "per hand" also die Zonen einzeln verteilen, also könnt ich praktisch auch waypoints machen.

@FreeTimeCoder : Ja das hab ich auch schon gemacht, das wegpunkte sich nach 1 sek immer eine neue position um den eigentlichen punkt suchen, so laufen nicht alle bots gleich.

Aber danke schonmal trotzdem !

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ozzi789

BeitragMo, Jan 12, 2009 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt auch die möglichkeit das Nav file automatisch zu erstellen.
Frag mich jedoch nicht wie das geht ><

mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

coolo

BeitragMo, Jan 12, 2009 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich schätze da wird die Map in einzelne Raster(Array's) zerteilt, und geschaut was begebar oder nicht begebar ist Dann simple per normalen Pathfinding die Bots dem Weg entlang geschickt. So schätze ich würde man das machen.
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

Xeres

Moderator

BeitragMo, Jan 12, 2009 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde ja die Bewegung der Menschlichen Spieler mitloggen. Menschen sind intelligent genug begehbare Wege zu gehen und taktische Positionen zu benutzen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Geeecko

BeitragMo, Jan 12, 2009 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe schon Spieler gesehen, die versucht haben, eine Wand hochzuspringen,
oder hinter einer Kiste gecampt haben, die sehr weit weg vom Geschehen war.
Dann müsste man es schon über sehr lange Zeit durchführen, das was gutes bei raus kommt.

Und bei CS lernen die Bots die map erst dann, wenn sie dem spiel hinzugefügt werden.
Es erscheint ein kleines Fenster, wo drin steht "Bots lernen Welt" oder so.

Xaymar

ehemals "Cgamer"

BeitragMo, Jan 12, 2009 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
also bei cs 1.6 wird die begehbaren tiles in "Cubes" aufgeteilt.

zb ihr habt vier räume und ein raum hat zb nen flur.
dieser flur zählt als 5. begehbarer raum. daher kommt es vor das die bots gegen die wand laufen.
in der source sdk werden räume nun mit area_portals aufgeteilt. das ist sehr schwer zu handhaben.

und jetzt zur arbeitsart:
vvis sucht sich 6 bestehende wände die die außenwelt abdecken. hat es diese gefunden so wird der raum gemessen.
nach dieser messung wird ein nav mesh erstellt. ein bot geht dann alle möglichen positionen durch(danke an gravitation) und merkt sich wo er hinkann und nicht. das tut dieser so 2-3 mal so dass fehler eigentlich ausgeschlossen werden können.
Warbseite

Vincent

BeitragDi, Jan 13, 2009 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab vor langer Zeit mal ein Programm geschrieben, welches die Welt in ein 3d Raster unterteilt und testet, welche Felder begehbar sind und welche nicht. Um eine sinnvolle Ausnutzung hinzubekommen mussten die Felder sehr klein sein, da sonst nicht gewährleistet war, dass z.b. Türen als freie Felder gezählt werden.
Die Nachbearbeitung der durch dieses System erhaltenen Daten ist sehr aufwendig.

Daher hab ich dann angefangen meine LvL nach nem Raster aufzubauen (in den meisten 3d Modellern kann man ein Raster einblenden). Nicht strikt alles im 90° Winkel, sondern nur so, dass die freien Felder grob frei waren und die unbegehbaren Felder grob belegt (z.b. mit Wänden, Terminals, Kisten, usw ). Dann hab ich in einem kleinen dafür gebauten Editor per Hand die soliden Zonen-Felder markiert und so die relativ unregelmäßige 3d Welt ... welche aber Rastergeeignet gebaut war ... in ein Raster interpretiert. Dann ist die Botsteuerung per Pathfinding genauso leicht wie in einem 2d Spiel.
Gott ist nicht mit uns ... weil er mit Idioten keine Gnade kennt !

StarGazer

BeitragMi, Jan 14, 2009 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein normales 2D Pathing sollte es lieber nicht sein, da die Bots dann ein Raster entlanglaufen, was sicher nicht so toll aussieht.
In einem 3D Raum sollten die Bots eingentlich frei in jeden Richtung laufen können.
Ich habe dazu schonmal was gefunden, es damals einigermassen verstanden, aber nicht genug um es selber programmieren zu können Smile Embarassed
http://wiki.delphigl.com/index...thfinding2
vielleicht hast du ja mehr Grips als ich Very Happy

DAK

BeitragMi, Jan 14, 2009 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
das is mal ne gscheite idee... und gar nicht so schwer zu verstehen (realisieren is was anderes...)

da werden einfach alle ecken von hindernissen als waypoints verwendet...und aus diesen waypoints sucht der bot sich dann seinen weg zusammen...
Gewinner der 6. und der 68. BlitzCodeCompo

ToeB

BeitragDo, Jan 15, 2009 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich finde diese lösung sogar einfacher (zu verstehen Wink ) als das normale A*-Pathfinding ! Werds auf jeden fall mal probieren das umzusetzten !

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group