Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
KI-Schnittstelle
#1
Moin!

Hier meine nächste verrückte bzw. Langzeit-Idee (wenn man sich versucht von etwas anderem abzulenken, kommen plötzlich viele Ideen):

Ich habe vorhin gegen den Computer gespielt und ihn relativ schnell in den Bankrott getrieben. Wie wäre es denn, wenn man selber Computergegner programmieren könnte über eine wohldefinierte Schnittstelle? Und dann noch ein wenig weitergedacht, wie wäre es, wenn dann verschiedene Computergegner gegeneinander spielen würden? Welche KI macht das meiste Geld in fünf Jahren? Oder schafft es eine KI alle anderen in den Ruin zu treiben?

Die Realisierbarkeit hängt wieder vom aktuellen Code ab, den ich nicht kenne, aber im Prinzip müsste nur an der Schnittstelle zu den Computergegner ein wenig geschraubt und das ganze halbwegs vernünftig dokumentiert werden.
Zitieren
#2
Nun, ohne dass ich den code kenne/lesen könnte, kann ich dir sagen, die Computergegner verhalten sich nach einem skript. Einem stück programmcode, das ihnen sagt: finde 2 fabriken->verbinde si so günstig und effizient wie möglich. In Wahrheit sind diese Vorgänge etwas komplexer und mit Berechnungen und Vergleichen der Ergebnisse verbunden. Bisher "beobachten" sich die Computergegner nicht gegenseitig (den Menschen auch nicht), und können daher auch nicht taktisch aufeinender eingehen/gegeneinander handeln. Komplexe taktische erwägungen wie:"Stadt A schnell erschliessen ehe es jemand anders tut, egal ob sofort gewinn abfällt" oder gar "Stadt A schnell erschliessen, Gegneer B ist nur ein dorf entfernt und wartet sicher nur auf etwas geld ehe er Stadt A mit anschliesst" ner müssten erst geschrieben werden, ehe man sie dann mit einer benutzerfreundlichen Schnittstelle beeinflussen kann.

Um solche Ügerlegungen anzustellen braucht man wirklich ein gewisse Portion Intelligenz, oder eben gut ausgetüftelte skripte. Wir menschen haben ausserdem noch ein As im Ärmel, wenn das problem zu komplex wird und wir es durch reines nachdenken nicht mehr gelöst kriegen, handeln wir halt nach Plan B: Instinkt. Ich zumindest tue das ständig bei simutrans, wer rechnet schon vorher alles im kopf aus? Instinkt ist Computern aber auch fremd.
Zitieren
#3
dazu gibs weitere Threads

Bessere KI
Ki
Zitieren
#4
Scheint ja beides ein wenig eingeschlafen zu sein. Aber das grundsätzliche Interesse scheint da zu sein.

Ich melde mich dann mal wieder, wenn ich die Zeit habe, bei einer Implementation oder Projektplanung zu helfen.

Vielleicht könnte man bis dahin (oder bis jemand anderes es früher machen will), eine Seite im Wiki einrichten, bei der Wünsche und Anregungen zentral gesammelt werden können.

@Moistboy: Einige der Überlegungen, wie du sie beschrieben hast gehören auf die andere Seite der Schnittstelle. Evtl in eine eigene Bibliothek. Die Schnittstelle dient nur zum Zugriff der KI auf Simutrans. Die KI und ihre Bilbilotheken sollen ausserhalb von Simutrans sein.
Zitieren
#5
Zitat:Original von trublu
...
Vielleicht könnte man bis dahin (oder bis jemand anderes es früher machen will), eine Seite im Wiki einrichten, bei der Wünsche und Anregungen zentral gesammelt werden können.
...

Die zentrale Sammelstelle ist bereits hier. Zumindest in deutscher Sprache.

Einen weiteren Bereich im Wiki einzurichten bringt nur noch mehr Unübersichtlichkeit.
Zitieren
#6
Zitat:Original von FrankP
Die zentrale Sammelstelle ist bereits hier. Zumindest in deutscher Sprache.

Einen weiteren Bereich im Wiki einzurichten bringt nur noch mehr Unübersichtlichkeit.

Naja, ein Forum ist nicht so gut als Übersichts- und Sammelstelle geeignet. Alte Diskussionen rutschen immer wieder in die Vergessenheit. Die Stärken eines Forums liegen in der Diskussion und Kommunikation. Nicht in der Struktur und Organisationsunterstützung.

Dazu kommt, dass ich ein ausgesprochener Wiki-Fan bin.
Zitieren
#7
Es steht Dir frei eine entsprechende Wiki-Seite anzulegen.

Wiki -> Hinweise für Wiki-Schreiber
Zitieren
#8
Die KI werden sicher nicht ausserhalb von Simutrans sein, denn wie soll das denn mit der Plattformunabhängigkeit gehen. DIe KI werden wohl LUA-Programme (oder was ähnliches sein), die Simutrans dann ablaufen lässt.

Da ich im Moment die Werkzeugfunktionen gerade alle umbaue (was im Prinzip jetzt Skripte leicht ermöglichen könnte), kann man ja mal wieder darüber nachdenken.

Aber du kannst auch jetzt schon mal dein Glück mit simplay.cc versuchen, und eine besser als die vorhandenen KI schreiben, bzw. die vorhandenen Überarbeiten. (Damit habe ich auch meine Simutransprogrammiertätigkeit angefangen.)
Zitieren
#9
Sie können als nachladbare Module gebaut werden. Dann müssten sie zwar für jede Zielplatform einzeln übersetzt werden, aber das sollte prinzipiell genauso gehen, wie SImutrans für mehrere Plattformen funktioniert.

LUA ist sicher auch eine Interessante Variante, allerdings vermute ich, dass die KIs auch recht viel zu rechnen haben dürften, das könnte durch die notwendige Interpretation unnötig langsamer werden.

Wenn ich Zeit habe mir den Quellcode anzugucken, kann ich mal sehen ob eine simple Schnittstelle "schnell" zu machen ist.
Zitieren
#10
Die KIs haben nicht viel zu rechnen. Das Aufwendigste, wie Wegebau und Platzsuche, wird von Routinen erledigt, die nur noch mit korrekten Parametern zu füttern sind.

DLL-Module halte ich schlicht für unbrauchbar, da die nicht mal zwischen Unixen austauschbar sind.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste