KI (Künstliche Intelligenz): Unterschied zwischen den Versionen

Aus BotE Wiki
Zur Navigation springen Zur Suche springen
(AI: terraforming and colonizing)
(added: english textes)
Zeile 1: Zeile 1:
http://birth-of-the-empires.de/wiki_files/Bilder/Englisch-Symbol.jpg for English just click [http://translate.google.de/translate?hl=de&sl=de&tl=en&u=http%3A%2F%2Fbirth-of-the-empires.de%2Fwiki%2Findex.php%3Ftitle%3DKI_(Künstliche_Intelligenz) here]
+
{| class="prettytable" Width="100%"
 +
| align="right" | click [http://translate.google.de/translate?hl=de&sl=de&tl=en&u=http%3A%2F%2Fbirth-of-the-empires.de%2Fwiki%2Findex.php%3Ftitle%3DKI_(Künstliche_Intelligenz) here] for other languages http://birth-of-the-empires.de/wiki_files/Bilder/Russland-Symbol.gif
 +
|}
  
= Einleitung =
+
= Intro =
  
 +
{|width="100%" bgcolor="#dadada" style="border:2px solid #000000;padding:1em;padding-top:0.5em;"
 +
| bgcolor="#dadada" width="51%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Deutsch-Symbol.jpg
 +
| bgcolor="#dadada" width="46%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Englisch-Symbol.jpg
 +
|-
 +
| bgcolor="#fafafa" valign="top"|
 
Die '''KI (Künstliche Intelligenz)''' steuert die anderen [[Imperien Übersicht|Imperien]] sowie die [[Kleine Völker|kleinen Völker]].
 
Die '''KI (Künstliche Intelligenz)''' steuert die anderen [[Imperien Übersicht|Imperien]] sowie die [[Kleine Völker|kleinen Völker]].
  
Zeile 12: Zeile 19:
  
 
*(internal) KI-Vorgaben http://forum.birth-of-the-empires.de/viewtopic.php?f=16&t=1076 (search entry t=1076)
 
*(internal) KI-Vorgaben http://forum.birth-of-the-empires.de/viewtopic.php?f=16&t=1076 (search entry t=1076)
 +
| bgcolor="#fafaba" valign="top"|
  
= Gebäudebau =
+
|}
  
 +
 +
= Building Queue =
 +
 +
{|width="100%" bgcolor="#dadada" style="border:2px solid #000000;padding:1em;padding-top:0.5em;"
 +
| bgcolor="#dadada" width="51%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Deutsch-Symbol.jpg
 +
| bgcolor="#dadada" width="46%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Englisch-Symbol.jpg
 +
|-
 +
| bgcolor="#fafafa" valign="top"|
 
*Die KI hat keine festen Baualgorithmen. Sie berechnet immer, was sie gerade braucht und sucht sich dann ein passendes Gebäude. Kriterien sind u.a. Industriekosten, Ressourcenkosten, aber auch vorhandene Vorräte und die aktuelle Moral.
 
*Die KI hat keine festen Baualgorithmen. Sie berechnet immer, was sie gerade braucht und sucht sich dann ein passendes Gebäude. Kriterien sind u.a. Industriekosten, Ressourcenkosten, aber auch vorhandene Vorräte und die aktuelle Moral.
  
Zeile 22: Zeile 38:
  
 
*Die KI baut derzeit keine Gebäude, die eine negative Moral besitzen. Es ist schwierig programmatisch vorauszusehen, ob das irgendwann nicht mal in einer Rebellion enden könnte. Da besteht noch Verbesserungsbedarf für die Bau-KI.
 
*Die KI baut derzeit keine Gebäude, die eine negative Moral besitzen. Es ist schwierig programmatisch vorauszusehen, ob das irgendwann nicht mal in einer Rebellion enden könnte. Da besteht noch Verbesserungsbedarf für die Bau-KI.
 +
| bgcolor="#fafaba" valign="top"|
 +
 +
|}
 +
  
=Ressourcen =
+
=Resources =
  
 
== Deritium ==
 
== Deritium ==
  
 +
{|width="100%" bgcolor="#dadada" style="border:2px solid #000000;padding:1em;padding-top:0.5em;"
 +
| bgcolor="#dadada" width="51%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Deutsch-Symbol.jpg
 +
| bgcolor="#dadada" width="46%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Englisch-Symbol.jpg
 +
|-
 +
| bgcolor="#fafafa" valign="top"|
 
Die KI bekommt in jeder Runde etwas Deritium "geschenkt" und zwar je höher der Schwierigkeitsgrad, desto mehr.
 
Die KI bekommt in jeder Runde etwas Deritium "geschenkt" und zwar je höher der Schwierigkeitsgrad, desto mehr.
  
 
Quelle: Code Build 58548 botf2Doc.cpp: int temp = rand()%((int)(m_fDifficultyLevel * 7.5));
 
Quelle: Code Build 58548 botf2Doc.cpp: int temp = rand()%((int)(m_fDifficultyLevel * 7.5));
 +
| bgcolor="#fafaba" valign="top"|
 +
Each turn AI gets some Deritium (totally free = cheated), and the higher the difficulty level the more it gets.
 +
 +
Source: Code Build 58548 botf2Doc.cpp: int temp = rand()%((int)(m_fDifficultyLevel * 7.5));
 +
|}
  
  
= Forschung =
 
  
Ab der Version Alpha 6.1 erforscht die KI auch [[Spezialforschung]]en (siehe [[Programm-Code|ResearchAI.cpp]]).
+
= Research =
 +
 
 +
{|width="100%" bgcolor="#dadada" style="border:2px solid #000000;padding:1em;padding-top:0.5em;"
 +
| bgcolor="#dadada" width="51%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Deutsch-Symbol.jpg KI: Forschung
 +
| bgcolor="#dadada" width="46%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Englisch-Symbol.jpg AI: Research
 +
|-
 +
| bgcolor="#fafafa" valign="top"|
 +
Seit Version Alpha6.1 (V0.81) erforscht die KI auch [[Spezialforschung]]en (siehe [[Programm-Code|ResearchAI.cpp]]).
 +
| bgcolor="#fafaba" valign="top"|
 +
Since Version Alpha6.1 (V0.81) AI also does [[Spezialforschung|special research]] (see [[Programm-Code|ResearchAI.cpp]])
 +
|}
 +
 
  
= Geheimdienst =
+
= Intelligence =
  
 +
{|width="100%" bgcolor="#dadada" style="border:2px solid #000000;padding:1em;padding-top:0.5em;"
 +
| bgcolor="#dadada" width="51%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Deutsch-Symbol.jpg
 +
| bgcolor="#dadada" width="46%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Englisch-Symbol.jpg
 +
|-
 +
| bgcolor="#fafafa" valign="top"|
 
Die KI verwendet nur Sabotage. Eine Geheimdiensaktion wird gestartet, wenn die Geheimdienstpunkte + Punkte aus Depot größer sind als die gegnerische Innere Sicherheit + deren Inneres Depot. (Quelle+Details: [[Programm-Code|IntelAI.cpp]])
 
Die KI verwendet nur Sabotage. Eine Geheimdiensaktion wird gestartet, wenn die Geheimdienstpunkte + Punkte aus Depot größer sind als die gegnerische Innere Sicherheit + deren Inneres Depot. (Quelle+Details: [[Programm-Code|IntelAI.cpp]])
  
Zeile 53: Zeile 98:
  
 
Zufall spielt eine Rolle. Als grobe Formel kann man sich aber bei Sabotage merken, Angriff größer Verteidigung + X ist erfolgreich. Anzahl Aktionen = Angriff / (Verteidigung + X). X ist innerhalb bestimmter Parameter zufällig. X hängt auch von der Aggressivität und von der Art (Spionage/Sabotage) ab. Viel mehr will ich jetzt aber nicht verraten.
 
Zufall spielt eine Rolle. Als grobe Formel kann man sich aber bei Sabotage merken, Angriff größer Verteidigung + X ist erfolgreich. Anzahl Aktionen = Angriff / (Verteidigung + X). X ist innerhalb bestimmter Parameter zufällig. X hängt auch von der Aggressivität und von der Art (Spionage/Sabotage) ab. Viel mehr will ich jetzt aber nicht verraten.
 +
| bgcolor="#fafaba" valign="top"|
 +
 +
|}
 +
  
 
= Ships =
 
= Ships =
Zeile 58: Zeile 107:
 
== AI: terraforming and colonizing ==
 
== AI: terraforming and colonizing ==
  
 +
{|width="100%" bgcolor="#dadada" style="border:2px solid #000000;padding:1em;padding-top:0.5em;"
 +
| bgcolor="#dadada" width="51%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Deutsch-Symbol.jpg
 +
| bgcolor="#dadada" width="46%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Englisch-Symbol.jpg
 +
|-
 +
| bgcolor="#fafafa" valign="top"|
 +
Seit Alpha7 V0.90 terraformt die KI alle Planeten mit weniger als 8 Terraform-Punkten. Nur wenn kein anderer '''kolonisier'''barer Planet in diesem System gefunden wird und kein Planet mit weniger als 8 nötigen '''Terraform'''-Punkten -> nur dann werden Planeten mit mehr als 8 Punkten terrageformt. (Quelle: CShipAI::DoTerraform).
 +
 +
Bis Version 0.81 war es noch so, dass die KI immer erst ein System komplett terraformte und erst dann kolonisierte. Das war teilweise schlecht für die KI.
 +
| bgcolor="#fafaba" valign="top"|
 
From Alpha7 V0.90 on AI terraforms all planets with needed terraform-points less than 8 will get terraformed. Only if no other planet is found which be can '''colonized''' in this system and no planet with less terraform-points than 8 -> than a planet with more than 8 terraform-points will be terraformed. (Source: CShipAI::DoTerraform)
 
From Alpha7 V0.90 on AI terraforms all planets with needed terraform-points less than 8 will get terraformed. Only if no other planet is found which be can '''colonized''' in this system and no planet with less terraform-points than 8 -> than a planet with more than 8 terraform-points will be terraformed. (Source: CShipAI::DoTerraform)
  
old: In der Version 0.81 war es noch so, dass die KI immer erst ein System komplett terraformt und erst dann kolonisiert.  
+
Until version 0.81 AI firstly terraformed '''all''' planets before colonizing. This wasn't good for AI.
 +
|}
 +
 
  
 
== Attacking systems ==
 
== Attacking systems ==
Zeile 76: Zeile 136:
  
 
= Troops =
 
= Troops =
 
+
{|width="100%" bgcolor="#dadada" style="border:2px solid #000000;padding:1em;padding-top:0.5em;"
At the Moment (Alpha7 V0.90) BotE's AI can not handle troops. So AI scraps troops at the beginning, also because some troops have morale values.
+
| bgcolor="#dadada" width="51%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Deutsch-Symbol.jpg
 +
| bgcolor="#dadada" width="46%" - valign="top" align="center"| http://birth-of-the-empires.de/wiki_files/Bilder/Englisch-Symbol.jpg
 +
|-
 +
| bgcolor="#fafafa" valign="top"|
 +
Momentan kann die KI noch nicht mit Truppen umgehen. Deshalb entsorgt die KI ihre Truppen gleich zu Beginn, auch weil einige Truppen ja auch Moralwerte haben, die sich in manchen Situationen hinderlich auswirken könnten.
 +
| bgcolor="#fafaba" valign="top"|
 +
At the moment (Alpha7 V0.90) BotE's AI can not handle troops. So AI scraps troops at the beginning, also because some troops have morale values which could be destructively in some case.
 +
|}

Version vom 31. August 2013, 13:49 Uhr

click here for other languages Russland-Symbol.gif

Intro

Deutsch-Symbol.jpg Englisch-Symbol.jpg

Die KI (Künstliche Intelligenz) steuert die anderen Imperien sowie die kleinen Völker.


Bei einer schlechten Ausgangslage kommt die KI bei niedrigen Schwierigkeitsgraden (s. Bote.ini:DIFFICULTY) meist erst circa ab Runde 100 gut zurecht, bei höherem Schwierigkeitsgrad bereits eher. Dadurch ist bei niedrigem Schwierigkeitsgrad ein leichterer Spielerfolg möglich.

Threads:


Building Queue

Deutsch-Symbol.jpg Englisch-Symbol.jpg
  • Die KI hat keine festen Baualgorithmen. Sie berechnet immer, was sie gerade braucht und sucht sich dann ein passendes Gebäude. Kriterien sind u.a. Industriekosten, Ressourcenkosten, aber auch vorhandene Vorräte und die aktuelle Moral.
  • Nicht immer kann die KI ein Gebäude auch bauen (z.B. wegen Ressourcenmangel). Dann versucht sie alternativ etwas anderes zu bauen.
  • Die KI baut keine Gebäude, mit denen sie z.B. 100 Runden beschäftigt ist: Währenddessen würde die Bevölkerung evtl. verhungern, die Moral sinken usw. Die gebauten Gebäude sind also ausbalanciert.
  • Die KI baut derzeit keine Gebäude, die eine negative Moral besitzen. Es ist schwierig programmatisch vorauszusehen, ob das irgendwann nicht mal in einer Rebellion enden könnte. Da besteht noch Verbesserungsbedarf für die Bau-KI.


Resources

Deritium

Deutsch-Symbol.jpg Englisch-Symbol.jpg

Die KI bekommt in jeder Runde etwas Deritium "geschenkt" und zwar je höher der Schwierigkeitsgrad, desto mehr.

Quelle: Code Build 58548 botf2Doc.cpp: int temp = rand()%((int)(m_fDifficultyLevel * 7.5));

Each turn AI gets some Deritium (totally free = cheated), and the higher the difficulty level the more it gets.

Source: Code Build 58548 botf2Doc.cpp: int temp = rand()%((int)(m_fDifficultyLevel * 7.5));


Research

Deutsch-Symbol.jpg KI: Forschung Englisch-Symbol.jpg AI: Research

Seit Version Alpha6.1 (V0.81) erforscht die KI auch Spezialforschungen (siehe ResearchAI.cpp).

Since Version Alpha6.1 (V0.81) AI also does special research (see ResearchAI.cpp)


Intelligence

Deutsch-Symbol.jpg Englisch-Symbol.jpg

Die KI verwendet nur Sabotage. Eine Geheimdiensaktion wird gestartet, wenn die Geheimdienstpunkte + Punkte aus Depot größer sind als die gegnerische Innere Sicherheit + deren Inneres Depot. (Quelle+Details: IntelAI.cpp)


Fragen:

Wonach aber richtet sich die Anzahl erfolgreicher Aktionen pro Runde?

Manchmal wird nur 1 Ziel erfolgreich sabotiert, in der nächsten Runde aber 3.

Zufall, oder wird für jedes erneute punktemässige Überwinden der inneren Sicherheit in der selben Runde 1 Aktion durchgeführt?


Antwort SirPustekuchen:

Zufall spielt eine Rolle. Als grobe Formel kann man sich aber bei Sabotage merken, Angriff größer Verteidigung + X ist erfolgreich. Anzahl Aktionen = Angriff / (Verteidigung + X). X ist innerhalb bestimmter Parameter zufällig. X hängt auch von der Aggressivität und von der Art (Spionage/Sabotage) ab. Viel mehr will ich jetzt aber nicht verraten.


Ships

AI: terraforming and colonizing

Deutsch-Symbol.jpg Englisch-Symbol.jpg

Seit Alpha7 V0.90 terraformt die KI alle Planeten mit weniger als 8 Terraform-Punkten. Nur wenn kein anderer kolonisierbarer Planet in diesem System gefunden wird und kein Planet mit weniger als 8 nötigen Terraform-Punkten -> nur dann werden Planeten mit mehr als 8 Punkten terrageformt. (Quelle: CShipAI::DoTerraform).

Bis Version 0.81 war es noch so, dass die KI immer erst ein System komplett terraformte und erst dann kolonisierte. Das war teilweise schlecht für die KI.

From Alpha7 V0.90 on AI terraforms all planets with needed terraform-points less than 8 will get terraformed. Only if no other planet is found which be can colonized in this system and no planet with less terraform-points than 8 -> than a planet with more than 8 terraform-points will be terraformed. (Source: CShipAI::DoTerraform)

Until version 0.81 AI firstly terraformed all planets before colonizing. This wasn't good for AI.


Attacking systems

Deutsch-Symbol.jpg Englisch-Symbol.jpg

In der derzeitigen Version 0.90 ist immer noch so, dass die KI ausschließlich Systeme bombardiert (also nicht erobert!). Anschließend kolonisiert die KI dann das leergebombte Systeme.

It's still so (V0.90) that AI only bombards systems (no conquering). After eliminating all population AI does a fresh colonization.


Troops

Deutsch-Symbol.jpg Englisch-Symbol.jpg

Momentan kann die KI noch nicht mit Truppen umgehen. Deshalb entsorgt die KI ihre Truppen gleich zu Beginn, auch weil einige Truppen ja auch Moralwerte haben, die sich in manchen Situationen hinderlich auswirken könnten.

At the moment (Alpha7 V0.90) BotE's AI can not handle troops. So AI scraps troops at the beginning, also because some troops have morale values which could be destructively in some case.