Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changes between Initial Version and Version 1 of ~archive/AI


Ignore:
Timestamp:
Nov 28, 2007, 1:00:24 AM (17 years ago)
Author:
landauf
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • ~archive/AI

    v1 v1  
     1= Artificial Intelligence =
     2== Author ==
     3Thomas Fahrni
     4
     5== Annahmen ==
     6 * Schüsse von NPC fliegen durch die anderen NPC hindurch, d.h. machen keinen Schaden. Sonst wird alles schrecklich kompliziert und die NPC können nie schiessen oder schiessen sich andauernd gegenseitig ab.
     7 * NPC können nicht nur ganz gerade aus schiessen sondern haben einen Winkel in dem sie schiessen können d.h. auch ein wenig seitwärts.
     8
     9== Konzept ==
     10=== 1. Schiessen ===
     11Hier gibt es nicht viel Intelligenz, der NPC schiesst einfach sobald er schiessen kann. Eventuell nach verschiedenen "Intelligenznieveaus":
     12
     13 1) I'''mmer schiessen wenn die Richtung ungefähr stimmt'''
     14
     15 3) Nur wenn nichts im Weg steht
     16
     17 2) Nur wenn die Reichweite der Waffe nicht überschritten wird (gibt es das?)
     18
     19 4) Wahl der besten Waffe (falls mehrere vorhanden)
     20
     21Wobei Stuffen 1-3 keinen Einfluss auf die Schwierigkeit haben, aber sie lassen den NPC intelligenter aussehen. (Ein NPC der nur planlos in die Richtung des Spielers schiesst aber dummerweise immer nur einen Meteoriten trifft, sieht nicht sehr intelligent aus..)
     22
     23'''Notwendige Informationen aus dem Framework:'''
     24 * Wo ist der Spieler und wie gross ist er
     25 * Wo bin ich
     26 * Wo sind Objekte und wie gross sind sie
     27 * Was habe ich für Waffen
     28
     29'''Befehle an das Framework:'''
     30 * Schiessen
     31 * Waffe wechseln
     32
     33=== 2. Positionieren ===
     34'''Idee: '''
     35
     36Jeder NPC bewertet (Punktesystem) für sich selbst jede mögliche Bewegungsrichtung und Beschleunigungsänderung. Danach liefert er alle Daten an die Schwarmintelligenz (Superhirn, Oberboss, etc..) Dieser vergleicht alle Daten und sucht sich die beste Kombination aus. Danach werden die NPC entsprechend bewegt.
     37
     38
     39'''Ein NPC bewertet Bewegungsrichtungen nach folgenden Kriterien:'''
     40 * '''Bewertung der Schussposition'''
     41   * '''kann ich von hier aus schiessen?'''
     42   * mit/ohne Vorausschiessen
     43   * evt. Treffsicherheit (ja näher desto grösser?)
     44   * Sind Objekte im Weg?
     45 * Physik: Es werden nur die Positionen bewertet und weitergegeben die auch tatsächlich möglich sind.
     46 * '''Gegnerische Schüsse: Positionen in denen man getroffen wird werden schlecht gewertet'''
     47 * Objekte: Kollisionen werden schlecht gewertet
     48 * Evt: Bewegungsdrang (Materialparameter) Damit man NPC's machen kann die sich viel bewegen und solche die eher träg sind
     49 * Evt: Hirarchiemultiplikator (Ich bin der Kommandant und kein Soldat soll mich daran hindern dorthin zu gehen)
     50
     51Durch unterschiedliche Gewichtung der Kriterien kann man verschiedene Verhaltensmuster und Schweirigkeitsstuffen erzeugen. (Paranoide, Hyperaktive, Intelligente, Dumme, etc) Die Schwierigkeit kann auch variert werden indem man probiert weiter voraus zu berechnen.
     52
     53'''Die Schwarmintelligenz ermittelt die beste Kombination nach folgenden Kriterien:'''
     54 * '''Maximierung der Gesamtpunktzahl'''
     55 * Zusammenstösse von NPC geben Minuspunkte
     56 * Schöne Formationen geben Pluspunkte :P
     57
     58'''Notwendige Informationen aus dem Framework:'''
     59 * Position aller Schüsse des Spielers (oder: Position aller Schüsse und wem sie gehören)
     60 * Position, Bewegungsrichtung, Geschwindigkeit, Grösse der Objekte
     61 * Position, Bewegungsrichtung, Geschwindigkeit, Grösse des Spielers
     62
     63 Jeder NPC muss von sich selbst wissen oder sich merken:
     64 * Position, Geschwindigkeit, Flugrichtung, Grösse
     65
     66'''Befehle an das Framework:'''
     67 * Position ändern
     68 * Lage im Raum ändern
     69
     70== Ablauf als Programm ==
     71(Nur so eine Idee wie es etwa gehen könnte)
     72
     73Tik NPC1
     74 * Allgemeine aufgaben (Model animieren etc)
     75 * Schiessen
     76 * Richtungen bewerten und an Schwarmintelligenz weitergeben
     77   
     78Tik NPC2 ...
     79
     80Tik NPC3 ...
     81
     82...
     83
     84Tik AI
     85 * Beste positionierung suchen
     86 * Neue NPC Positionen berechnen und NPC positionieren
     87
     88== Realisierung ==
     89Wahrscheinlich reicht die Zeit bis zum Ende des PPS nicht um alles komplett perfekt zu realisieren. Sicher müssen zuerst einmal die  '''fetten''' sachen funktionnieren dann ist die AI schon ein kleines bisschen brauchbar. Danach werden die anderen Sachen grob implementiert. Schlussendlich kann man das dann beleibig perfektionieren...