Beiträge: 57
Themen: 6
Registriert seit: Jun 2006
Bewertung:
0
30-03-2008, Sunday-14:30:02
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.
Beiträge: 615
Themen: 49
Registriert seit: Aug 2004
Bewertung:
0
30-03-2008, Sunday-15:42:59
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.
Beiträge: 57
Themen: 6
Registriert seit: Jun 2006
Bewertung:
0
30-03-2008, Sunday-16:34:38
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.
Beiträge: 7.536
Themen: 249
Registriert seit: Apr 2013
Bewertung:
27
30-03-2008, Sunday-21:35:18
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.)
Beiträge: 57
Themen: 6
Registriert seit: Jun 2006
Bewertung:
0
30-03-2008, Sunday-22:09:12
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.
Beiträge: 7.536
Themen: 249
Registriert seit: Apr 2013
Bewertung:
27
30-03-2008, Sunday-22:57:15
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.