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

trash52

Treue Seele

  • »trash52« ist der Autor dieses Themas

Beiträge: 86

Wohnort: Dresden

  • Private Nachricht senden

1

06.02.2009, 16:41

Gegner-KI für Weltraumshooter

Hallo

ich bastel zur Zeit an meinem kleinen 3D-Projekt, nun fehlt mir noch die Gegner-KI.
Bisher hab ich versucht, das per Zufall festzulegen, wohin sich ein Computer
bewegt, das Resultat war ein endloses gezucke und gezappel, welches am Bildschirm zu sehen war bzw. ein ständiges spiralförmiges Kreisen.

Nun suche ich ein Prinzip um folgendes Ziel zu erreichen.

Ziel der Schiffe: mit waffengewalt die Zerstörung der gegnerischen Schiffe.

LG trash52

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

2

06.02.2009, 16:55

Also die einfachste Form einer solchen KI ließe sich in etwa so realisieren:
- Suche nächsten Gegner (Abstände zu allen Gegnern vergleichen)
- Setze Kurs auf den Gegner
- Sobald in Feuerreichweite: Feuern
- Sobald außer Feuerreichweite oder Tot: Wieder von Vorne beginnen

Nur als grober Vorschlag ;). Ich denke auf Basis dessen kann man die KI noch etwas ausbauen (Flugbahn des Gegners beim Feuern beachten, etc).

trash52

Treue Seele

  • »trash52« ist der Autor dieses Themas

Beiträge: 86

Wohnort: Dresden

  • Private Nachricht senden

3

06.02.2009, 17:19

Ok, danke erstmal für den Ansatz,
habs auch gleich mal eingebaut, nur ist dass nen ziemlich schnell zu durchschauendes Verhalten, wie bekomm ich da noch mehr Vielfalt rein,

jetzt muss man ja nur das eigene Schiff wenden, rückwärts fliegen und solange Feurn drücken, bis das Gegnerschiff platt ist.

LG Trash52

4

06.02.2009, 18:35

du könntest z.B. einbauen, das die KI gegnerischem Feuer auszuweichen versucht ;)

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

5

06.02.2009, 19:04

Dann könntest du eine Gaußverteilung für die Schussfunktion einbauen (muss natürlich nicht Gauß sein, wäre aber ideal ;). alternativ eine quadratische Funktion des Radius (eigentlich egal was, nur halt rotationsinvariant)).
Außerdem könntest du einbauen, dass nur Salven geschossen werden, mit variabler Pause.
Weiters, dass gewisse Abweichungen vom direkten Kurs durch einen Zufallsgenerator gemacht werden. Könnte man so realiseren, dass man den "optimalen" Kurs diskretisiert (Wegpunkte), diese dann (zufällig) auslenkt und dann ein Approximationspolynom durch diese Punkte berechnet, was dann der neue Kurs des raumschiffs wäre. Alternativ könnte man den "aktuellen" Wegpunkt mit einer Art "Pseudogravitation" ausstatten, dass das Raumschiff sich immer noch physikalisch bewegt (leichtere Bewegungsgleichungen ohne Zwangskräfte!), und dennoch eine Abweichung vom optimalen Kurs zu sehen ist.
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

trash52

Treue Seele

  • »trash52« ist der Autor dieses Themas

Beiträge: 86

Wohnort: Dresden

  • Private Nachricht senden

6

06.02.2009, 21:20

Also, danke euch.

Ich hab jetzt genügend Ideen ausgesammelt, um mir da was einfallen zu lassen, hab halt nur das Problem, dass ich manchmal den richtigen Anfang nicht finde, bzw. mir erst mal schildern lassen muss, wie man das realisieren könnte.

LG trash52
:)

7

06.02.2009, 23:21

Ich kenne eine KI, die ist recht gemein.

Die Monster sind auf feste Gebiete gelegt, kommt man einem zu Nahe greift es an, man kann es nicht töten, also rennt man weg, das Vieh einem hinterher, solange bis man tot ist oder es abschütteln kann. Das geht nur wenn es einen nicht mehr sehen kann, es ist daher ratsam sich bei solchen Monstern hinter ihrem Rücken zu stehen, dann sehen sie einen nicht.
Wenn man das Monster echt abgeschüttelt hat, schaut es noch eine Weile und rennt dann zurück zu seiner Herde. Gande Gott dem armen Kerl, dem es begegnet, es greift diesen dann an und das spiel fängt von neu an. Begegnet es aber niemanden rennt es zurück und stellt sich einfach wieder dazu, nicht an der Position wo es war, sondern an eine neue Posiotion.
Es gibt sogar Monster die reden mit einem und sagen, geh weg, sobald man sich ihnen nähert, und wieder andere rennen weg, das Nervt wenn du die als Quest hast.
Account wurde gelöscht

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

8

06.02.2009, 23:40

Zitat von »"S.E.N"«

Ich kenne eine KI, die ist recht gemein.

Die Monster sind auf feste Gebiete gelegt, kommt man einem zu Nahe greift es an, man kann es nicht töten, also rennt man weg, das Vieh einem hinterher, solange bis man tot ist oder es abschütteln kann. Das geht nur wenn es einen nicht mehr sehen kann, es ist daher ratsam sich bei solchen Monstern hinter ihrem Rücken zu stehen, dann sehen sie einen nicht.
Wenn man das Monster echt abgeschüttelt hat, schaut es noch eine Weile und rennt dann zurück zu seiner Herde. Gande Gott dem armen Kerl, dem es begegnet, es greift diesen dann an und das spiel fängt von neu an. Begegnet es aber niemanden rennt es zurück und stellt sich einfach wieder dazu, nicht an der Position wo es war, sondern an eine neue Posiotion.
Es gibt sogar Monster die reden mit einem und sagen, geh weg, sobald man sich ihnen nähert, und wieder andere rennen weg, das Nervt wenn du die als Quest hast.


Mag sein, hilft trash52 aber wahrscheinlich nicht viel bei seinem Spaceshooter (oder was er da macht) ;)

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

9

07.02.2009, 00:50

Sehr "einfacher" und interessanter Ansatz: Steering Behaviour.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige