Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden Impressum 
Das Forum ist read-only und nur noch zu Archivzwecken vorhanden. Neue Benutzer werden nicht mehr freigeschalten. Benutzt bitte unser aktuelles Forum: http://www.battle-planet.de/pbp/main/forum_neu.php
Sie können sich hier anmelden
Dieses Thema hat 17 Antworten
und wurde 713 mal aufgerufen
 Technische Fragen
mimic Offline




Beiträge: 74

23.08.2007 12:29
KI erobert keine Gebaeude Antworten

Die ASC KI erobert keine Gebaeude. In einigen Faellen, bewegen sich Infantrieeinheiten durch Gebaeude durch um anzugreifen. Eigentlich ist das ein Bug, aber ich sehe nicht, wie es auf die Schnelle geloest werden kann. Die Ursache ist wahrscheinlich, dass Die KI Gebaeudeeroberung ganz am Ende ueberprueft, wenn keine Einheit Bewegungspunkte uebrig hat. Man muesste also diesen Test weiter nach vorne verlegen, vor die Taktik. Doch ich bin mir nicht sicher ob dass eine gute Idee ist. Das Problem muesste wohl grundsaetzlicher angepackt werden.

Mimic

Tarliesin Offline



Beiträge: 159

23.08.2007 14:16
#2 RE: KI erobert keine Gebaeude Antworten

Wenn ich mich recht erinnere, prüft die KI, ob es gegnerische Einheiten gibt, die das Gebäude zurückerobern können. Sind diese vorhanden, wird von der KI nicht erobert. Buggy ist das Ganze deshalb, weil die Ki nicht prüft, ob der Rückeroberer in Zugreichweite steht. Sprich ein einziger Infanterist auf der Karte verhindert, dass die KI irgendwas erobert.

Xyphagoroszh Offline




Beiträge: 1.351

23.08.2007 14:51
#3 RE: KI erobert keine Gebaeude Antworten

Meiner Erfahrung nach spielt die Entfernung schon eine Rolle. Aber die KI von ASC2 hat eine sehr niedrige Priorität, da wird wohl auf absehbare Zeit nichts gemacht.

================================================================
There are 10 kinds of people. Those who understand binary code and those who don't.

mimic Offline




Beiträge: 74

23.08.2007 15:13
#4 RE: KI erobert keine Gebaeude Antworten

In Antwort auf:
Aber die KI von ASC2 hat eine sehr niedrige Priorität, da wird wohl auf absehbare Zeit nichts gemacht.


Schade eigentlich. Ich wuerde ja mal 'nen Blick drauf werfen, wenn mir jemand sagt, wo genau ich den Blick hinwerfen muesste. Vielleicht kommen mir ja ein paar Ideen.

Mimic

mimic Offline




Beiträge: 74

07.09.2007 12:40
#5 RE: KI erobert keine Gebaeude Antworten

Auf die Gefahr hin, wie eine Schallplatte mit einem Kratzer zu klingen: Wenn mir jemand sagt, wo ich Zeugs ueber die KI finde (Quellen, Dokumentationen etc.), dann mache ich mir mal einen Kopf. Das haette auch bei mir nur niedrige Prioritaet, dass ist aber besser als "sehr niedrige Prioritaet".

Mimic

Grom Offline




Beiträge: 1.069

07.09.2007 12:44
#6 RE: KI erobert keine Gebaeude Antworten
Im CVS findet mal alles nötige wenn man sich über den Quellcode informieren will:

CVS

ASC Development of ASC is done using CVS, thanks to SEUL for hosting it. For a snapshot of ASC2 you may run the following commands:

cvs -d :pserver: anoncvs@cvs.seul.org :/home/cvspsrv/cvsroot login
cvs -d :pserver: anoncvs@cvs.seul.org :/home/cvspsrv/cvsroot co games/asc
The password is "guest"

CVS Programme gibt es für Windows oder für Linux:
Für Windows ist Tortoise CVS sehr gut für Linux einfach das normale CVS.
Wer Quellcode lesen kann denke ich kann auch mit CVS umgehen oder sich schnell anlesen.
Hanni Offline


Agent Implementeur

Beiträge: 2.337

07.09.2007 12:46
#7 RE: KI erobert keine Gebaeude Antworten

Ansonsten kannste auch hier guggn:

http://terdon.asc-hq.org/asc/srcdoc/html/

Grüße,
Hanni

_____________________________
Computer sind Maschinen, mit denen man Probleme lösen kann, die es ohne sie nicht gäbe.

Rhiow Offline




Beiträge: 624

07.09.2007 12:49
#8 RE: KI erobert keine Gebaeude Antworten

In Antwort auf:
cvs -d :pserver: anoncvs@cvs.seul.org :/home/cvspsrv/cvsroot login
cvs -d :pserver: anoncvs@cvs.seul.org :/home/cvspsrv/cvsroot co games/asc



wenn ich mich recht erinnere müssen ein paar leerzeichen raus, damit es klappt:

cvs -d :pserver:anoncvs@cvs.seul.org:/home/cvspsrv/cvsroot login
cvs -d :pserver:anoncvs@cvs.seul.org:/home/cvspsrv/cvsroot co games/asc

Kamor Offline



Beiträge: 136

21.09.2007 15:00
#9 RE: KI erobert keine Gebaeude Antworten
Die Ki erobert schon Gebäude, nur setzt sie die Prioritäten falsch. Die Distanz zu den Gebäuden wird unterschätzt, während z.b. Produktionstätten und Depot überschätzt werden.

So läuft die KI an einem "ein Feld neben ihm, nicht bewachten Gebäude, was auch nicht zurück erobert werden kann" vorbei, nur um unbedingt diesen 15 Schritte entfernten Hafen mit sehr hoher Priorität einzunehmen, bleibt dann aber vor diesem Hafen bewegungslos stehen, wenn wir rechtzeitig eine Einheit neben ziehen, die zurückerobern kann. Habe jetzt den ganzen Vormittag versucht, den Code für "KI nimmt Gebäude ein" zu verstehen, aber so ganz ist mir die Leuchte noch nicht aufgegangen. Immerhin schaffe ich schon eine Punktlandung eines allierten Fliegers auf meine Landebahn zu programmieren plus die Einnahme eines von mir ausgesuchten Gebäudes zu forcen, wobei bei letzteren der Ki-Task nicht mehr geresetet wird und diese Einheit dann für immer im Gebäude bleibt. :-/ ;-)
Kraal Offline



Beiträge: 429

21.09.2007 20:34
#10 RE: KI erobert keine Gebaeude Antworten

*euchanfeuerntut*

Kamor Offline



Beiträge: 136

21.09.2007 21:37
#11 RE: KI erobert keine Gebaeude Antworten

Funktion buildingcapture.cpp

00142 return float(bld->aiparam[getPlayerNum()]->getValue()) / float(traveltime+1);

Hier könnte man etwas mehr Priorität auf die traveltime geben, bzw. etwas prio von dem Gebäude getvalue nehmen. Mir fällt gerade nicht besseres ein, wie eine Potenzierung also z.B.

return float(bld->aiparam[getPlayerNum()]->getValue()) / 2 "hoch" float(traveltime+1);

Hat mich nur einen Tag gekostet, den Code so einigermassen zu verstehen, um hierher zu kommen. ;-) Jetzt mache ich mir einen gemütlichen Abend. :-)

mimic Offline




Beiträge: 74

24.09.2007 14:18
#12 RE: KI erobert keine Gebaeude Antworten

Ich habe festgestellt, wenn (1.)genuegend Infantrie sowieso (2.)drumrumsteht dann macht die KI es auch. Aber wenn die gegenerische Stellung ueberrannt ist und nur Fahrzeuge uebrig sind, wird keine Infantrie entsendet um Gebaeude zu erobern. Ich bastle an einer Karte in der sich eine Stadt nicht verteidigen laesst und die KI nimmt sie auch irgendwann ein. In einer zweiten Karten, in der die KI eine schwaechere KI-partei ueberrennt, werden die Gebaeude nicht erorbert (die Infantrie hat das gemetzel nicht ueberlebt und neue wird nicht geschickt).

Kamor Offline



Beiträge: 136

28.09.2007 11:41
#13 RE: KI erobert keine Gebaeude Antworten
Die KI entsendet genau eine Einheit für die Einnahme eines Gebäudes, andere Einheiten werden für andere Zwecke eingeteilt. Erst wenn die Einheit, die das Gebäude einnehmen sollte verloren wird, wird eine neue Einheit zur Eroberung eingeteilt, und dies auch erst eine Runde danach.

Der ganz Conquervorgang liegt auch ausserhalb der sonstigen Strategie-/Taktik Routinen, also zwei Algorithmen, die nicht oder sehr wenig miteinander korresspondieren und beide haben ihren eigenen Kopf, wobei der Conquervorgang doch sehr primitiv gestaltet ist. Die Logic für Produktion von Einheiten, kommt ganz am Schluß des KI-Script, habe ich mir aber noch nicht angeguckt, aber was die KI teilweise in manchen Spielen produziert ist schon fraglich. ;-)

Ich versuche die KI-Scripts weiter zu verstehen, aber das Lesen von Maschinencode ohne Disassembler einzusetzen ist bei weitem leichter, wie die ständige Suche nach dem "Wo ist den die Prozedur schon wieder, wo wird denn die Variablenstruktur definiert?" :-) Ausserdem kommen ständig "neue" Funktionen dazu, die es zu verstehen gilt, zumindest soweit, das man weiss, was aufgerufene Funktionen grob machen und was für Werte zurückgeliefert werden. Die Dokumentation des Codes beschränkt sich weitgehends auf den Riesen-Non-Info-Header, ein paar ausgeklammerte inaktive Algorithmen und die ein/zwei wenigen Zeilen, die mal etwas helfen. Hier sollte man auch zuerst ansetzen, wenn man als Fremder in den Code einzusteigen versucht. Code verstehen und für sich selber dokumentieren. Habe ich eigentlich gesagt, das ich C++ nicht mag. ;-) Ki ja, das interessiert mich, aber durch einen C++ Irrgarten von unendlich verschatchtelten Prozeduren und Variablenstrukturen durchzugehen, um dann die doch finale recht einfachen Ki-Algorhytmen zufinden ist schon ein hartes Stück Arbeit. Ich stöber weiter im Ki-Code, aber vom Ändern, bzw. das Compilen einer Änderung, bin ich doch noch meilenweit entfernt. Und bitte den Text nicht falsch verstehen, die Leistung der Asc-Programmierer ist enorm und der Code massiv, auch wenn es für Fremde ein undokumentierter Irrgarten ist. :-)
Rhiow Offline




Beiträge: 624

28.09.2007 12:41
#14 RE: KI erobert keine Gebaeude Antworten
hmm... da sind wir ja schon zwei, die gerne an der ki schrauben würden... auch wenn es ein haufen arbeit ist ;)

vielleicht können wir uns ja mal im irc treffen und ein wenig darüber diskutieren, wie eine neue ki aussehen könnte (codetechnisch), und uns zusammen daran machen die zu programmieren?
mimic Offline




Beiträge: 74

28.09.2007 17:27
#15 RE: KI erobert keine Gebaeude Antworten

Ich wuerde auch was machen. Ich kann selbst nicht fuer die KI programmieren, da ich weder mit C++ noch mit Windows arbeite (programmiere mit gfortran unter Linux ;-). Ich habe aber Ahnung von intelligenter Datenverabeitung und kenne mich ein bisschen mit Optimierung und machine-learning aus. Wollte immer schon mal 'ne KI machen

Kamor Offline



Beiträge: 136

29.09.2007 12:14
#16 RE: KI erobert keine Gebaeude Antworten

@Rhiow

Jaja, Haufen Arbeit und eigentlich mag ich keine Arbeit. :-) So sollten wir also als Erstes an unserer grundlegenden Kommunikation arbeiten. Ich muss dann erstmal den Chatlink suchen und meine "Chatsysteme" reaktivieren. Wobei ein Chat immer das große Problem hat, das sich die Teilnehmer zeitlich koordinieren müssen. Das Forum ist hier die Variante, die eine "zeitunabhängige" Kommunikation erlaubt. Ich habe mal mein altes Forum reaktiviert und im Schnelldurchgang mein bisherigen Wissensstand über die derzeitge ASC-KI dort notiert. Das ganze ist chaotisch organisiert, aber immerhin schonmal mehr, wie gar keine KI-Kommentierung. Ihr könnt dort auch ohne das lästige Anmelden reinposten, bzw. können wir von dort auch weiterspringen auf eine noch bessere Komunikationsform?

@Mimic

Das ganze KI-Sript ist OS-unabhängig. C++ was ist das? Habe selbst ganz wenig damit rumgespielt. Ein paar Variablendefinitionen, bischen If-Then und Alternativen und log. Vergleichsoperatoren, evtl. musst du noch das Prinzip von Zeigern verstanden haben, das war es. Das schwerste sind die ASC-typischen Variablendefinitionen (Klassen) und dort in den Definitionen die vielen kleine Prozeduren, die dann irgendwo später aufgerufen werden zu lernen.

Ich schicke euch Beiden dann mal den den Link auf mein Primitiv-Forum und meine erste Ki-Analyse. Das Forum von mir soll keine verpflichtende Vorgabe sein, können wir jederzeit ändern. Ist nur eine schnelle Komunikationslösung von mir. Ihr könnt dort ohne Anmeldung reinschreiben und die Threats auch nach Ablauf einer Stunde noch edieren.

Grom Offline




Beiträge: 1.069

29.09.2007 12:14
#17 RE: KI erobert keine Gebaeude Antworten

Overlord ist quasi KI Experte und hatte mal angefangen eine KI zu machen.
Evt. könntet ihr versuchen seinen Source zu bekommen und den weiterentwickeln aus Zeitgründen hatte er PBP verlassen und die Entwicklung eingestellt und nichts veröffentlicht.
Der Anfang war aber (angeblich) schon gemacht (die KI soll schon Funktionen ausgeübt haben) und die Idee dahinter war gut durchdacht.

Kamor Offline



Beiträge: 136

29.09.2007 16:50
#18 RE: KI erobert keine Gebaeude Antworten

Aufjedenfall ein Blick wert, wie kann man Overlord kontakten? Der ist nicht im aktuellen Mitgliederverzeichnis eingetragen?

 Sprung  
Xobor Einfach ein eigenes Forum erstellen | ©Xobor.de
Datenschutz