Seite 1 von 1

strategie-manager

Verfasst: Dienstag 11. Juli 2006, 22:41
von murph
hi!
ich hatte mal so eine idee, hab 5min gesucht und nicht sofort was gefunden, daher stell ich das hier rein.
was haltet ihr von einem 'strategiemanager',
dem man (zb per xml) mitteilt, unter welchen umständen und leistungen man ein gebaäude/einheit bauen kann. nun gibt man einige eckpunkte an (erstmal zb die zeit) und nun errechnet er, in welcher reihentfolge man am geschicktesten baut.
falls sich nun jemand noch nicht so recht was darunter vorstellen kann, ein beispiel:
bei ogame hat(te) man 72h noobschutz. in dieser zeit muss man soviel aufbauen wie möglich. nun gibt man in das programm "72h" und "maxress"
ein (innerhalb von 72 stunden sollen maximale ressourcen erwirtschaftet werden).
das programm liest nun aus, wie viel nun welche mine bringt und wann es sich lohnt, zu warten oder erst eine andere mine auszubauen. oder auch andere nötige gabäude, wenn die zwischendurch erforderlich sind.
endziel ist dann natürlich, auch "maxress#1" oder "maxress#2" (in dem xml-file ist hinterlegt, was ress#1 etc ist, viel mehr sollte nur nit solchen namen gearbeitet werden, weil der planer unabhägigi vom spiel sein soll, man brauch nur den developtree + angaben, wie effizient minen sind).
ich weiß, dass ich nun angriffe unberücksichtigt lasse, aber wie sollte man das schaffen? das prgramm sollte ja auch nur ein hilfsmittel sein.
habt ihr schonmal sowas in python gesehen?

Verfasst: Mittwoch 12. Juli 2006, 00:25
von Valnar
Nein ich noch nicht aber du musst volgendes bedenken:

Rohstoffproduktion
Wie wird abgerechnet (Tick oder Realtime)
Bauzeit
e.t.c.

Da jedes Spiel anders ist müsstest du immer ein anderes Programm verwenden. Auch Gebäudezeiten verändern sich ja.
Fazit: Es ist wahrsacheinlich schwer zu machen, so dass es für mehrere spiele Klappt.

P.S. ich hab gedacht bei O-gGame endet der Noobschutz bei 5000 Punkte?!?!

Verfasst: Mittwoch 12. Juli 2006, 07:49
von BlackJack
Der Strategie-Manager wäre also eine Art KI in die man halt noch manuell eingreifen kann, wenn ich das jetzt richtig verstanden habe. Insofern ist es natürlich sehr stark abhängig vom Spiel.

Wenn man so etwas generisch machen wollte, müsste man sich wohl am besten mit Programmiersprachen oder Bibliotheken beschäftigen, die für Optimierungsfragen entworfen wurden. So etwas wie das constraints Modul von Logilab oder Prolog als Programmiersprache.

Verfasst: Mittwoch 12. Juli 2006, 14:38
von murph
@valnar:
der große unterschied wäre nur einzuspeisende xml-datei!
stratagus ist auch eine game-engine, die basis von aufwendigen spielen ist, selbst aber nur 4mb groß ist!

@BlackJack:
dieses Programm soll nur einen plan entwerfen, nicht selber agieren!
eher stelle ich mir den aufruf so vor:

murph@murphs:~$ strategiemanager.py maxress#1 120min
expand mine#1 to lvl 2
build mine#2
expand mine#1 to lvl 3
build tower of knowledge
build mine#3
[...]

die xml-dateien dafür müssten nur riesig sein und jemand müsste lust haben, sich ein onlinegame so genau anzusehen und auf dem neusten stand zu halten. ein spiel würd ich ja noch übernehmen...

Verfasst: Mittwoch 12. Juli 2006, 20:17
von CrackPod
Ich denke, wenn das programm fertig ist und läuft, dann findest du in den Foren schon genug Leute, die dir das machen mit den XML datein...

Verfasst: Mittwoch 12. Juli 2006, 20:49
von murph
wenn das ganze bekannt genug ist, schon ;)
alles gut und schön, aber wie kann man das denn wirklich selber ausrechnen?
ich hatte zwar den einfall, dass man das machen könnte und hätte auch den ansatz "versuch mal alles und kuckt, was am besten ist", was aber sehr langsam werden kann, wenn es sehr komplexe tech-bäume und eine lange zeit (zb 99h) ist.

Verfasst: Donnerstag 13. Juli 2006, 02:01
von Valnar
ausserdem müssten dann spieler die erfahren genug sind das vorher machen!

naja meinen segen hatse XD. Kann selbst sowat geb rauchen...

Verfasst: Donnerstag 13. Juli 2006, 18:48
von SigMA
ich frage mich gerade wofür man das dynamisch machen muss?! Man muss ihm eh Daten geben. Wieso nicht das als Website Projekt machen?! Erscheint mir sinnvoller

SigMA

Verfasst: Donnerstag 13. Juli 2006, 21:15
von murph
also dynamisch, weil ich grade keine strategiespiele spiele und nicht weiß, wofür man das machen sollte.
außerdem halte ich das für besser, wenn jemand nur den techtree + zusatzinfos (wie werden ressis abgerechnet etc.) in eine xml schreiben muss.
bin halt so dafür, dass jeder sein spiel damit dann vereinfachen kann
(obwohl natürlich das keine hilfe mehr ist, wenn man nicht weiß, wann man angegriffen wird....)
man könnte auch erst das als spezielles projekt machen und später erst abstrahieren für andere strategiespiele.
aber die wichtigste frage: Wie soll man vorgehen?
Ich habe mir überlegt, dass bei maxress#1 halt nun immer die mine#1 ausgebaut wird, bis die anderen prozentual so viel langsamer sind, dass dann auch mine#2 oä ausgebaut werden.
bei gebäuden ist das ganze ja ganz einfach: wenn das gebaut werden muss, damit eine mine ausgebaut werden kann, wird das ausgebaut.
soweit, so gut, aber wo legt man die prozentuale grenze, ab wann andere minen nachziehen müssen?
außerdem ist das dann noch nicht der "perfekte" durchmarsch, man könnte ja noch ress#1-lastiger arbeiten als gewohnt.
aber nochmal zum abstrahieren:
ich halte das selbst innerhalb eines websiteprojektes für wichtig, da sich schon noch mal sachen ändern (wie bei space-pioneers).
habt ihr schonmal so etwas gesehen, dass total extrem ist?
ich will dem user geben, was ich verspreche!
viiiiiel später kommt ja
murph@murphs~$: ./strategiemanager.py ress#1->40% ress#2->60%
^^

Verfasst: Freitag 14. Juli 2006, 18:12
von SigMA
du könntest in die XML datei einfach alle Anfangsdaten machen. Dazu wie viel was an Rohstoffen auf welchem Level bringt. Dazu noch was das Ziel ist (Raumschiffe bauen etc) und dann muss das Skript nur den Weg dorthin berechnen. Sollte nicht sooo das Problem werden ;)

SigMA

Verfasst: Freitag 14. Juli 2006, 21:42
von murph
also das, was du geschrieben hast zu beginn, ist auch nicht so das problem.
aber WIE soll der script das berechnen?
außerdem ein ganz neues problem, mit dem ich mich bis jetzt überhaupt nicht beschäftigt habe: der user muss auch zeit und muße haben, seinen ausbaustand anzugeben, daher am besten, dass man diese direkt von der site irgendwie auslesen kann, dann wäre es zwar browsergameabhängig,
aber einfacher zu händeln. außerdem kann man ja noch alternativ die manuelle variante nehmen. aber das ganze heißt viel arbeit, wobei das hauptproblem ist: WIE rechne ich den schnellsten weg denn aus?
(strategiemanager schön und gut, aber wie soll er funktionieren?)

Verfasst: Samstag 15. Juli 2006, 19:19
von SigMA
BrutForce ;D *g*

Oder du machst ein Skript was intelligent die Zeiten einteilen kann! Und einen Weg finden kann wie man am schnellsten zum Ziel kommen kann

SigMA

Verfasst: Dienstag 1. August 2006, 17:16
von murph
das eine ist sehr einfach, das andere sehr schwer...
das eine dauert aber kange, das andere nicht...
ich werde dann erstma meinen sqliteserver weiterproggen,
weitere gedanken mache ich vllt wan anders

Verfasst: Samstag 24. Februar 2007, 14:35
von Arthur
warum macht ihr nicht eine art "probierscript"???
Computer sind schnell und wer solche games zockt hat ohnehin zeit.
So ne art intervallschachtelung. Dh der Rechner probiert einfach alle kombinationen die in der zeit möglich sind aus, und sagt am ende weche die beste ist. Dann lassen sich die Ziele auch weiter verzweigen und besser variiren.