Latest Posts

Topic: Neues Volk - Europäer

MarkMcWire
Avatar
Topic Opener
Joined: 2017-02-08, 21:06
Posts: 341
Ranking
Tribe Member
Location: Eisenach, Germany
Posted at: 2021-05-25, 20:09

> *Nordfriese wrote:*
>
> In Version 1.1.0 scheint es in der Hilfe Probleme mit der Arena zu geben:
> !(https://www.widelands.org/forum/attachment/9cef87f647a04d22019474c3c55dd5ef132511e4/)
>
> ---
>

Das Problem ist, er sucht für meine Soldaten den Level-Indikator an einem Ort, den es nicht gibt.

Error rendering richtext: ../src/graphic/image_io.h:34 Image not found: tribes/workers/europeans/soldier/evade_level0.png. Text is:
Edited: 2021-05-25, 20:10

My widelands addons: https://drive.google.com/file/d/1jopANlODo41T2reHJ0zaCOMYxq_rxXP-/view?usp=sharing

Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2736
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2021-05-29, 22:29

Ich hab mir das Addon runtergeladen und mal geschaut und ausprobiert, wie die KI mit den Europäern umgeht. Die Antwort ist ziemlich schlecht.

Die Gründe dafür sind vor allem das die KI in einen zuverlässigen deadlock läuft. Hier ist was ich bisher herausfinden konnte:
1. alle bisher geäusserten potentiellen Einzelprobleme (z.B. Förster, Minen o.ä.) sind mehr oder weniger nicht relevant, da sie von anderen fundamentalen Problemen maskiert werden.
2. das bisher identifizierte fundamentale Designproblem ist das Recruitment Center. Weil es Handwerker Ausbildung mit Soldatenausbildung kombiniert, wird es von der Ai wie eine Kaserne behandelt, und alle Entscheidungen zu diesem Gebäude werden daher anhand der Soldatenausbildung gemanagt. Somit wird das Gebäude gestoppt und keine Arbeiter mehr ausgebildet. Wenn die AI das handhaben soll, muss die Ausbildung von Soldaten und Arbeitern getrennt werden. Vorschlag Handwerker in einer Gilde ausbilden und Soldaten in einer Kaserne.
3. Die Basic economy is nicht sehr ausgeprägt. Hier müsste sich der Stammdesigner noch mal genau Gedanken machen, welche Gebäude für einen erfolgreichen Start notwendig sind.
4. Die HQ Startbedingung köännte für einen erfolgreichen AI Start ein paar mehr Arbeiter vertragen. Ggf. löst sich dieses Problem aber auch mit der Lösung von 2.
5. Alle hochgerüsteten Gebäude brauchen keine AI Hints, da in der jetzigen Implementation die AI Hints für erweiterte Gebäude keine Rolle spielen.
6. es macht keinen Sinn in den Startbedingungen Gebäudetypen für eine Zeitspanne zu verbieten, um der AI zu helfen, da diese Verbote ja auch für alle anderen Spieler gelten.

wenn diese Probleme gefixt sind müsste ich neu analysieren, was es noch für Probleme gibt. Generell ist das Management von Gebäudeupgrades eher sehr grob im Vergleich zum Management von Neubauten, das kann einen Einfluss haben.


Top Quote
MarkMcWire
Avatar
Topic Opener
Joined: 2017-02-08, 21:06
Posts: 341
Ranking
Tribe Member
Location: Eisenach, Germany
Posted at: 2021-05-30, 09:40

Dann setze ich mich heute noch mal dran und mache ein Update auf 1.1.5. Das mit dem Verbot von Gebäuden war nur ein Experiment, ich wollte sehen ob es der KI irgendwie hilft, wenn sie nicht gleich die Baumaterialien für zu Spielbeginn nicht notwendige Gebäude und Upgrades verschwendet. Die AI Hints wollte ich eh mehr oder weniger komplett los werden. Ich wollte, siehe Punkt 6, das AI-Management über die Startbedingungen und eigene Skripte steuern. So wollte ich unabhängig von den hardcodierten Algorithmen werden.


My widelands addons: https://drive.google.com/file/d/1jopANlODo41T2reHJ0zaCOMYxq_rxXP-/view?usp=sharing

Top Quote
MarkMcWire
Avatar
Topic Opener
Joined: 2017-02-08, 21:06
Posts: 341
Ranking
Tribe Member
Location: Eisenach, Germany
Posted at: 2021-05-30, 10:55

Neue Version gepusht, müsst ihr nur noch freischalten.

Removing most of AI hints for normal and advanced buildings (only basic buildings have hints)
Adding basic_amount to some basic buildings
Changing starting conditions
Removing soldier production from recruitement center
Changing traingscamp (basic – level 4) from trainingssite to productionssites for creating soldiers
Changing battlearena (basic - level 4) to additional train health and attack (because trainingscamp no longer trains them)
Edited: 2021-05-30, 11:46

My widelands addons: https://drive.google.com/file/d/1jopANlODo41T2reHJ0zaCOMYxq_rxXP-/view?usp=sharing

Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2736
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2021-05-30, 12:10

MarkMcWire wrote:

Dann setze ich mich heute noch mal dran und mache ein Update auf 1.1.5. Das mit dem Verbot von Gebäuden war nur ein Experiment, ich wollte sehen ob es der KI irgendwie hilft, wenn sie nicht gleich die Baumaterialien für zu Spielbeginn nicht notwendige Gebäude und Upgrades verschwendet. Die AI Hints wollte ich eh mehr oder weniger komplett los werden. Ich wollte, siehe Punkt 6, das AI-Management über die Startbedingungen und eigene Skripte steuern. So wollte ich unabhängig von den hardcodierten Algorithmen werden.

Die Idee kann ich nachvollziehen. Allerdings kann das nicht funktionieren, weil:
- Skriptkode mit lua elendig langsam ist,
- die Skripte gegen die normale AI arbeiten müssten, oder diese ersetzen. Ersetzn geht nicht wegen Performance

werde mit der neuen Version mal testen


Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2736
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2021-05-30, 22:32

Hallo Mark,

Ich denke langsam kommen wir voran. Mit der aktuellen Version wird das Recruitment Center als Ochsenfarm von der AI behandelt. Deshalb müssen wir die AI ein wenig bescheissen. Ich habe ein Dummy Productionsprogramm hinzugefügt, das niemals aufgerufen wird und lediglich aus der Zeile "produce=chisel" besteht. Weill die Europäer aber keinen Meissel kennen will die AI unendlich viel davon bauen, deshalb brauchen wir noch einen AI Hint "normal_AI_limit = 1" Für v1.1 würde ich den AI Code modifizieren, um diesen Hack wieder loszuwerden.
Die Holzfäller werden nicht als solche erkannt, da sie davon ausgehen, dass Stamm ein Baumaterial ist. Workaround ist einen Stamm als Baumaterial zu einem beliebigen Gebäude hinzuzufügen. Hier hab ich auch das Basic Recruitment Center gewählt, da man davon nur 1 braucht. Auch hier würde cih die Erkennung in V1.1 ändern.
Eine Basisschmiede sollte Teil der Absic-Economy sein.
Lumberjack und forester kannst du aus der basic economy streichen, da dieser Hint nicht funktioniert (forester) bzw. nicht nötig ist (lumberjack).

Mit diesen Änderungen kommt die AI schon ein ganzes Stück weiter.

Was mir sonst noch aufgefallen ist:

Schmiede bekommen am schnellsten Erfahrung, wenn man die Inputs auf 0 setzt (alle programme failen). --> evtl. ein Bug muss ich noch analysieren.

Für die Rekrutierung von Soldaten sollte das Basisgebäude kein Gold kosten. Da die Europäer mit nur 16 Soldaten starten kann die Expansion zum erliegen kommen bevor Gold gefunden bzw. erreichbar ist.

Wenn du selber testen willst dann kannst du das so machen wie ich: Multiplayer - lokales Netzwerk Spiel mit ausschließlich AI Spielern und dir als Beobachter. Ich nehme meist die Karte Full Moon.

Die Starbedingung Ports finde ich interessant. Allerdings funktioniert sie mit dem gegenwärtigen Setup nur auf der Europa Karte. Vielleicht kannst du ja mal ein Zwei Gedanken verchwenden, wie man die verallgemeinern kann.


Top Quote
Nordfriese
Avatar
Joined: 2017-01-17, 18:07
Posts: 2054
OS: Debian Testing
Version: Latest master
Ranking
One Elder of Players
Location: 0x55555d3a34c0
Posted at: 2021-05-30, 22:54

Ich hab mir die Harbors-Starbedingung zufällig auch gerade angeschaut (auf Europa 1.2), aber sie scheint einen Bug zu enthalten:

[../src/scripting/lua_errors.cc:22] [string ''addons/europeans_tribe.wad/scripting/starting...'']:267: bad argument #-2 to 'region' (number expected, got nil)

(Version 1.1.5 mit git-bc1c355)

Edited: 2021-05-30, 22:55

Attachment:
shot0001.png

Top Quote
MarkMcWire
Avatar
Topic Opener
Joined: 2017-02-08, 21:06
Posts: 341
Ranking
Tribe Member
Location: Eisenach, Germany
Posted at: 2021-05-30, 23:55

hessenfarmer wrote:

Hallo Mark,

Ich denke langsam kommen wir voran. Mit der aktuellen Version wird das Recruitment Center als Ochsenfarm von der AI behandelt. Deshalb müssen wir die AI ein wenig bescheissen. Ich habe ein Dummy Productionsprogramm hinzugefügt, das niemals aufgerufen wird und lediglich aus der Zeile "produce=chisel" besteht. Weill die Europäer aber keinen Meissel kennen will die AI unendlich viel davon bauen, deshalb brauchen wir noch einen AI Hint "normal_AI_limit = 1" Für v1.1 würde ich den AI Code modifizieren, um diesen Hack wieder loszuwerden.

Bei mir im Einzelspielermodus wurde das Center überhaupt nicht gebaut.

Die Holzfäller werden nicht als solche erkannt, da sie davon ausgehen, dass Stamm ein Baumaterial ist. Workaround ist einen Stamm als Baumaterial zu einem beliebigen Gebäude hinzuzufügen. Hier hab ich auch das Basic Recruitment Center gewählt, da man davon nur 1 braucht. Auch hier würde cih die Erkennung in V1.1 ändern.
Eine Basisschmiede sollte Teil der Absic-Economy sein.
Lumberjack und forester kannst du aus der basic economy streichen, da dieser Hint nicht funktioniert (forester) bzw. nicht nötig ist (lumberjack).

Hab ich in Version 1.1.6 abgeändert.

Mit diesen Änderungen kommt die AI schon ein ganzes Stück weiter.

Was mir sonst noch aufgefallen ist:

Schmiede bekommen am schnellsten Erfahrung, wenn man die Inputs auf 0 setzt (alle programme failen). --> evtl. ein Bug muss ich noch analysieren.

Für die Rekrutierung von Soldaten sollte das Basisgebäude kein Gold kosten. Da die Europäer mit nur 16 Soldaten starten kann die Expansion zum erliegen kommen bevor Gold gefunden bzw. erreichbar ist.

Ich füge Gold den Startbedingungen hinzu. Ich möchte gerne, dass alle Militärgebäude (Trainingssites und Barracks) Gold kosten, um sie wertvoller zu machen.

Wenn du selber testen willst dann kannst du das so machen wie ich: Multiplayer - lokales Netzwerk Spiel mit ausschließlich AI Spielern und dir als Beobachter. Ich nehme meist die Karte Full Moon.

Die Starbedingung Ports finde ich interessant. Allerdings funktioniert sie mit dem gegenwärtigen Setup nur auf der Europa Karte. Vielleicht kannst du ja mal ein Zwei Gedanken verchwenden, wie man die verallgemeinern kann.

Die Startbedingung funktioniert auf allen Karten, jedoch bekommt man nur auf der Europa-Karte die Zusatz-Ports auf den abgelegenen Inseln, wenn man bestimmte Völker spielt.


My widelands addons: https://drive.google.com/file/d/1jopANlODo41T2reHJ0zaCOMYxq_rxXP-/view?usp=sharing

Top Quote
hessenfarmer
Avatar
Joined: 2014-12-11, 23:16
Posts: 2736
Ranking
One Elder of Players
Location: Bavaria
Posted at: 2021-05-31, 09:06

MarkMcWire wrote:

Bei mir im Einzelspielermodus wurde das Center überhaupt nicht gebaut.

Ja weil es als Ochsenfarm behandelt wird, wenn man den oben beschriebenen Hack nicht macht

Ich füge Gold den Startbedingungen hinzu. Ich möchte gerne, dass alle Militärgebäude (Trainingssites und Barracks) Gold kosten, um sie wertvoller zu machen.

Geht natürlich auch. obwohl die Lösung das erste Barracks Gebäude ohne Gold bauen zu können ein wenig sicherer für die AI ist. Aber testen wir es mal so.

Die Startbedingung funktioniert auf allen Karten, jedoch bekommt man nur auf der Europa-Karte die Zusatz-Ports auf den abgelegenen Inseln, wenn man bestimmte Völker spielt.

Dann hab ich das missverstanden, schau ich mir nochmal an. Das wäre aus meiner Sicht etwas, was man auch ins Hauptspiel integrieren kann.


Top Quote
MarkMcWire
Avatar
Topic Opener
Joined: 2017-02-08, 21:06
Posts: 341
Ranking
Tribe Member
Location: Eisenach, Germany
Posted at: 2021-05-31, 09:29

Ich iteriere über alle Hafenbauplätze (map.port_spaces) der Karte und wähle dann diejenigen aus, die in einem bestimmten Umkreis (im konkreten Fall 12 Felder) um den Startpunkt liegen. Dann generiere ich dort jeweils Häfen. Die Zuteilung der Waren erfolgt dann separat, da ich die Gesamtzahl ja erst durch die tatsächlich erbaute Anzahl der Häfen teilen muss. Sonst hätte ein Spieler mit 3 Häfen bei den Waren ja einen Vorteil gegenüber einem Spieler mit 2 Häfen. Bei den Arbeitern werde ich genauso verfahren, nur da habe ich noch keine Funktion set_workers in die Startbedingungen eingebaut, deswegen fülle ich die Häfen noch über den alten Algorithmus (prefield buildings) mit Arbeitern.

Schau dir auch mal die neue starting_conditions.lua an, ob ihr Funktionen davon ins Hauptspiel übernehmen könnt. Hab viele nützliche Funktionen aus der debug.lua ausgeliedert.

Edited: 2021-05-31, 09:30

My widelands addons: https://drive.google.com/file/d/1jopANlODo41T2reHJ0zaCOMYxq_rxXP-/view?usp=sharing

Top Quote