strategie-manager

Du hast eine Idee für ein Projekt?
Antworten
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

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?
http://www.cs.unm.edu/~dlchao/flake/doom/
Valnar
User
Beiträge: 49
Registriert: Samstag 1. Juli 2006, 12:31
Wohnort: Trier

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?!?!
Die Schrebfehler sind absicht und dienen der Belustigung.
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.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

@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...
http://www.cs.unm.edu/~dlchao/flake/doom/
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

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...
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

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.
http://www.cs.unm.edu/~dlchao/flake/doom/
Valnar
User
Beiträge: 49
Registriert: Samstag 1. Juli 2006, 12:31
Wohnort: Trier

ausserdem müssten dann spieler die erfahren genug sind das vorher machen!

naja meinen segen hatse XD. Kann selbst sowat geb rauchen...
Die Schrebfehler sind absicht und dienen der Belustigung.
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

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
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

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%
^^
http://www.cs.unm.edu/~dlchao/flake/doom/
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

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
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

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?)
http://www.cs.unm.edu/~dlchao/flake/doom/
Benutzeravatar
SigMA
User
Beiträge: 181
Registriert: Sonntag 4. April 2004, 13:27
Wohnort: Freiburg
Kontaktdaten:

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
Leichtdio.de - Das Kreativ-Blog
http://www.leichtdio.de
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

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
http://www.cs.unm.edu/~dlchao/flake/doom/
Benutzeravatar
Arthur
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 18:07

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.
Ich bin nicht verrückt!
Nur verhaltensoriginell!
Antworten