Systemverwalter

Hast du eine Idee für eine neue Funktion im Spiel oder möchtest etwas am Spielablauf verbessern, so poste sie hier
Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
phpbb forum styles
Registriert: Freitag 14. Mai 2010, 14:39

Systemverwalter

Beitrag von Anonymissimus »

Der "manager" branch bei github ab commit 2464a38b1fe8890b4da6f6ff2dd38d559742d000
fügt einen Systemverwalter hinzu in etwa so wie ichs mir vorstelle. Hier eine grobe Erläuterung.

Er wird aufgerufen
-nach jedem Rundenwechsel, unmittelbar bevor der Spieler seine Runde hat.
-wenn der Spieler ein Gebäude offline nimmt.
-wenn er das, was momentan gebaut wird, ändert.

Der Manager
-prüft, ob eine Schiffswerft on/offline geschaltet werden muss, entsprechend dem zu Bauenden.
-verteilt Arbeiter:
1. Energie: So viele, dass die Energieproduktion positiv ist, aber so wenige wie möglich.
2. Nahrung: analog zu Energie
3. Industrie: So viele, dass das momentan zu bauende in so wenigen Runden wie möglich fertig wird, aber so wenige wie möglich.
4. Geheimdienst, Forschung, Titan, Deuterium, Duranium, Kristall, Iridium:
Entsprechend vom Spieler gesetzten Prioritätenreihenfolge in die jeweiligen Gebäude so viele, wie jeweils Gebäude vorhanden sind, dann weiter mit der nächsten Priorität.

Im Systemmenü öffnet der "Verwalter" Button den Einstellungsdialog. Alle Einstellungen sind systemspezifisch und werden gespeichert.


Active: Verwalter komplett an/ausschalten (default: aus)

Schieber für Geheimdienst, Forschung, Titan, Deuterium, Duranium, Kristall, Iridium:
Legen die jeweilige Priorität fest; der höchste Wert wird als erstes berücksichtigt, dann der zweithöchste usw.

Safe Moral: Wenn das zu bauende noch eine Runde dauert, verwende einen Industriearbeiter mehr als nötig sofern möglich, für den Fall eines Moralverlustes, was bedeuten könnte, dass es doch noch nicht fertig wird.
Da der Verwalter aber jede Runde nachregelt, wird damit nur eine Runde gespaart.

Max Industry: Verwende soviele Industriearbeiter wie es Fabriken gibt (oder man Arbeiter hat), es sei denn, das zu bauende braucht nur noch eine Runde.
Die Option ist nützlich, wenn man plant, das zu bauende zu kaufen, in welchem Fall man eh keine Produktionspunkte verschwendet.

===================
Systemverwalter ist IMHO das mit Abstand wichtigste Feature, was BotE braucht. Alle sonstigen Pläne, den Button Platz zu verbrauchen, sind damit wohl hinfällig. :P Eine UI ähnlich den anderen Systemmenüs wäre schön, aber da hab ich keine Ahnung von.
Dennis0078
Vizeadmiral
Vizeadmiral
Beiträge: 2063
Registriert: Samstag 6. Dezember 2008, 21:05

Re: Systemverwalter

Beitrag von Dennis0078 »

Interessant
kann man den schon testen?
Benutzeravatar
Vuto
Flottenkapitän
Flottenkapitän
Beiträge: 515
Registriert: Donnerstag 15. Juli 2010, 17:04

Re: Systemverwalter

Beitrag von Vuto »

Sehr vielversprechend. :D

Ich habe es nur kurz getestet (mit dem Stand von gestern), außer ein paar Abstürzen (neu erobertes System ohne Industriegebäude und beim kaufen) funktioniert es gut.
Gerade im späteren Spielverlauf könnte der Systemverwalter den Arbeitsaufwand enorm erleichtern und das ein oder andere Spiel wird dann vielleicht auch mal zu Ende gespielt. :wink:
Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: Systemverwalter

Beitrag von Anonymissimus »

Dennis0078 hat geschrieben:Interessant
kann man den schon testen?
Musst selber auschecken und kompilieren.
Vielleicht merge ich ihn bald, dann wenn einer ne Testexe postet.

Ja, ich hab vor allem das lategame im Blick, so Runde 400+ wenn die ersten Gegner platt sind.
Benutzeravatar
MTB
Flottenkapitän
Flottenkapitän
Beiträge: 683
Registriert: Donnerstag 12. Juni 2008, 15:37
Wohnort: Frankfurt

Re: Systemverwalter

Beitrag von MTB »

Klingt wirklich gut!
Vorschlag: Eine Möglichkeit Imperiumsweit einen default zu definieren der bei neuen System gilt bis zur Abänderung.
Besser ein lebender Feigling als ein toter Held
Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: Systemverwalter

Beitrag von Anonymissimus »

MTB hat geschrieben:Klingt wirklich gut!
Vorschlag: Eine Möglichkeit Imperiumsweit einen default zu definieren der bei neuen System gilt bis zur Abänderung.
Macht nicht so viel Sinn, denn das Verfahren nimmt an, dass man seine Prioritäten systemabhängig setzt. Ansonsten passiert es, dass man zB kein Titan mehr hat oder auf einen Schlag zich feindliche Sabotagenachrichten da man keinen Gemheimdienst geproddded hatte.
So weit, dass das zu bauende ausgewählt wird, sind wir noch lange nicht. Das muss man schon selbst machen. Nur macht die Verwendung der Bauliste auch tatsächlich Sinn dann, wenn nachgeregelt wird, sobald was fertig wurde.
Benutzeravatar
Vuto
Flottenkapitän
Flottenkapitän
Beiträge: 515
Registriert: Donnerstag 15. Juli 2010, 17:04

Re: Systemverwalter

Beitrag von Vuto »

Eine selbst wählbare Default-Reglerstellung fände ich auch gut, denn jetzt muss ich in jedem neuen System die Regler vom jetzigen Default auf meine Grundeinstellung bringen.
Von der Grundeinstellung entwickelt sich das System mit der Zeit weg, aber für neue Systeme ist es trotzdem immer der gleiche Arbeitsschritt.

Ich habe jetzt den aktuellen Stand getestet, Abstürze gab es keine mehr.
Eine Kleinigkeit habe ich noch gefunden, die Werften schalten sich zwar wie gewollt ab, aber man muss sie leider manuell einschalten.
Genug freie Arbeiter und freie Energiegebäude sind für die Werft vorhanden, aber sie werden nicht genutzt.
Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: Systemverwalter

Beitrag von Anonymissimus »

Vuto hat geschrieben:Eine selbst wählbare Default-Reglerstellung fände ich auch gut, denn jetzt muss ich in jedem neuen System die Regler vom jetzigen Default auf meine Grundeinstellung bringen.
Von der Grundeinstellung entwickelt sich das System mit der Zeit weg, aber für neue Systeme ist es trotzdem immer der gleiche Arbeitsschritt.
Ich wurde inspiriert durch freeciv und C-Evo (wie so oft); bei denen gibt es presets für den Verwalter; zB "max Wachstum" oder "max Forschung" welche dann die Regler einstellen, sowas könnte man machen.
Ich habe jetzt den aktuellen Stand getestet, Abstürze gab es keine mehr.
Eine Kleinigkeit habe ich noch gefunden, die Werften schalten sich zwar wie gewollt ab, aber man muss sie leider manuell einschalten.
Genug freie Arbeiter und Energiegebäude sind für die Werft vorhanden, aber sie werden nicht genutzt.
Da müsste man einiges vorher berechnen. Sofern genug Energie von vornherein da ist, schalten sie sich schon ein. Das nervigste war ja, dass man vergisst, sie abzuschalten, wenn man gar keine Schiffe mehr baut, das kann so nicht mehr passieren.

Schön wärs, ein Fenster für den Verwalter zu haben, analog dem Arbeitermenü, anstatt diesen modalen Dialog, aber um es mal prinzipiell verwenden zu können, brauch ich ne UI zum einstellen.
Benutzeravatar
Vuto
Flottenkapitän
Flottenkapitän
Beiträge: 515
Registriert: Donnerstag 15. Juli 2010, 17:04

Re: Systemverwalter

Beitrag von Vuto »

Anonymissimus hat geschrieben:Da müsste man einiges vorher berechnen. Sofern genug Energie von vornherein da ist, schalten sie sich schon ein. Das nervigste war ja, dass man vergisst, sie abzuschalten, wenn man gar keine Schiffe mehr baut, das kann so nicht mehr passieren.
Aber da der Verwalter die Energie ausschaltet ist so gut wie nie genug Energie vorhanden. Würde der Verwalter nicht bei jedem Klick im Energiemenü wieder die Energie klauen, wäre es vielleicht ok. Aber so muss man oft den Verwalter ausschalten, um die Werft anschalten zu können und das nach jedem achten Schiff.

Statt einem neuen Menü würde ich den Verwalter im Baummenü integrieren, dann hat man alles im Blick und muss nicht ständig umschalten. Unter dem Gebäudebild wäre noch genug Platz, um neben jeden Rohstoff einen Button zu machen der von 0-10 durchschaltet, es müssen keine Regler sein.
Benutzeravatar
rainer
Vizeadmiral
Vizeadmiral
Beiträge: 2898
Registriert: Mittwoch 12. September 2007, 10:57

Re: Systemverwalter

Beitrag von rainer »

habe den Verwalter erst mal angestartet (noch Runde 1 bei mir)...

1.) toll :)
2.) toll :)
3.) richtig, "entlastet" von vielen Klicks und nerviger Arbeiterzuteilung :)

...dann mal weiter:

- für einen GUI-Screen vll. einfach ein Screen kopieren und dann neu bestücken. Welchen man als Vorlage nimmt...je nachdem (z.B. System-Handel kopieren). => als Hintergrundgrafik kann man ja einen "leeren" wieTop5Menue.boj verwenden. EDIT: habe nachgeschaut...hier bräuchte man ein neues void CSystemMenuView::DrawSystemManagerMenue(Graphics* g), Inhalt aus CSystemMenuView::DrawSystemTradeMenue(Graphics* g) kopiert (das wär's schon)

- momentan kann ich sehr gut mit dem vorhandenen GUI leben :) . Vuto's Vorschlag (Prio-Einstellung im Baumenue) finde ich gut....im jetzigen GUI hatte ich noch den Gedanken einer Prio-Liste (mit Rauf- und Runterschieben anstelle der Prio-Werte)...so eine Liste hat Vorteile, aber auch Nachteile im Handling...

- zu den Voreinstellung: eigentlich müßte die jetzigen Werte in die BotE.ini, dort kann sie jeder dann einstellen, wie er will, und das wäre dann die individuelle Einstellung (GameSettings-Dialog kann ja später mal angepasst werden)

- in den jetzigen Dialog könnten noch ein paar Texte rein (falls man gerade nicht die Beschreibung zur Hand hat 8) ):
-- Workers Distributor (highest value will be executed firstly) (z.B. jeweils in extra Zeilen)
-- Safe moral (one more industry)
-- MaxIndustry (for buying)
-- Neglect Food (use also food workers)

PS: vll. sollten wir momentan mit dem GUI-Fenster weitermachen, wenn das Dazu-Programmieren leichter fällt :wink:
Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: Systemverwalter

Beitrag von Anonymissimus »

rainer hat geschrieben:Inhalt aus CSystemMenuView::DrawSystemTradeMenue(Graphics* g) kopiert (das wär's schon)
Nein, nein, nein, nicht kopieren, wirklich, *NICHT KOPIEREN, SONDERN FAKTORIEREN*. Kopieren ist wie der BotE code so schrottig wurde. Und bei jedem Kopieren vergrößert sich die Menge an Schrott exponentiell. Nicht speziell jetzt auf dieses Thema bezogen, sondern allgemein. Immer wenn der Impuls besteht, etwas zu kopieren, wäre das richtige, stattdessen einen Funktionsaufruf an den code zu machen, den man kopieren will.
Aber bevor man was mit der GUI macht, sollten erstmal die Funktionalitäten weitgehend sich herausgebildet haben. Für mich wäre vor allem wichtig, dass sich die Zahl der Klicks bzw was man machen muss/Mikromanagement nicht (wieder) erhöht durch die GUI. (so wie es bei den meisten (Web-)Redesigns der Fall war/ist die ich in den letzten Jahren gesehn hab)
-- Neglect Food (use also food workers)
Bedeutet Vernachlässigung der Regel "produziere genug Nahrung sodass Nahrungsprod >= 0" und erlaube stattdessen Verbrauchen des Lagers
Benutzeravatar
rainer
Vizeadmiral
Vizeadmiral
Beiträge: 2898
Registriert: Mittwoch 12. September 2007, 10:57

Re: Systemverwalter

Beitrag von rainer »

8) Faktorieren...das Wort kenne ich genauso wenig wie ich programmieren kann...darum sind kaum CodeZeilen von mir hochgeladen. (sehe aber schon, dass Du immer wieder toll "aufräumst" im Code)
...wollte nur aufzeigen, dass es Wege gäbe :wink:


Neglect Food ....aber dass food workers verwendet werden, ist das sichtbare Ergebnis, dass intuitiv verstanden werden kann :wink: ......ok, hast Recht, müßte wohl eher "use additional food workers if available" heißen, oder so ähnlich irgendwie


ändert nichts an: Toll gemacht, bitte weiter so :D
Benutzeravatar
Vuto
Flottenkapitän
Flottenkapitän
Beiträge: 515
Registriert: Donnerstag 15. Juli 2010, 17:04

Re: Systemverwalter

Beitrag von Vuto »

Schade dass du die minimale Rundenzeit wieder rauswerfen musstest, die hattte den Überblick erheblich erhöht.

Die neue prozentuale Arbeiterverteilung finde ich leider etwas unintuitiv.
Wenn ich Deuterium erhöhe springt ein Arbeiter von Titan zum Geheimdienst. :?
Die Priorisierung vorher war dagegen ziemlich einfach zu verstehen.

Die vielen anderen Verbesserungen finde ich sehr gut.



Im Bild unten habe ich einen Vorschlag um die einfache Priorisierung zu kombinieren mit der Auswahl, ob alle oder nur ein Teil der Gebäude benutzt werden soll.
In der Spalte mit den Zahlen stellt man die Priorität ein und in der Reglerspalte wie viel Prozent der Gebäude gefüllt werden sollen.

In dem Beispiel würden also versucht werden
- zuerst die Hälfte der Titangebäude mit Arbeitern zu füllen
- dann alle Forschungsgebäude
- dann 30% Deuterium und 60% Duranium
- dann 100% Geheimdienst
Kristall und Iridium werden ignoriert

Man kann damit auch deine Systeme simulieren:
Stellt man alle Regler auf 100% kann man die Prio wie im alten System benutzen.
Wenn man alle Prios auf den gleichen Wert stellt, funktionieren die Regler wie im jetzigen System.
Verwalter-klein.png
Verwalter-klein.png (407.63 KiB) 14808 mal betrachtet
Anonymissimus
Flottenkapitän
Flottenkapitän
Beiträge: 990
Registriert: Freitag 14. Mai 2010, 14:39

Re: Systemverwalter

Beitrag von Anonymissimus »

Die Fixierung auf maximale Arbeiterzahl geht jedenfalls nur zu Beginn eines Spiels, wenn noch nicht so viele Gebäude da sind. Mir ist es dann passiert dass ich gar keinen Geheimdienst produziert hab und so.
Hübsch, und keine schlechte Idee. Mir gefällt allerdings nicht, dass es ziemlich viel zum einstellen ist. Die Verwaltereinstellungen sollten nicht zu kompliziert sein, das konterkariert ja sonst den Sinn der Sache. Und diese "Regler" wie in im Arbeitermenü sind schwieriger und langsamer einzustellen als die slider in dem modalen Dialog; ich seh zB nicht wo ich da hinklicken muss um ihn schnell auf Maximum zu setzen und klicke dumm rum, sehr schlecht.
Meiner Erfahrung nach möchte man typischwerweise in einem Durschnittssystem (gerade) genug Nahrung und Energie, max Produktion, eine Resource und/oder Geheimdienst auf Max und dann vllt noch 1-2 nachrangig.
Das Prioritätenhandlig ab 44d47d29be881335a764879da52189c69cbe0c46 ist jetzt so:
0 bedeutet, der Verwalter versucht, keine Arbeiter zuzuweisen.
10 bedeutet, der Verwalter versucht, so viele Arbeiter zuzuweisen, wie Gebäude da sind.
Für alle restlichen Prios zwischen 1 und 9, Grenzen eingeschlossen, versucht der Verwalter, Arbeiter im Verhältnis zuzuweisen.
Außerdem gibt es einen optionalen slider für Produktion, da man im lategame oft ein Projekt in mehr als der minimal möglichen Rundenzahl fertigstellen möchte (das heißt nicht mit der default-Produktionsarbeiterlogik) und dafür mehr Arbeiter für Ressourcen/Geheimdienst/Forschung hat.
Benutzeravatar
Vuto
Flottenkapitän
Flottenkapitän
Beiträge: 515
Registriert: Donnerstag 15. Juli 2010, 17:04

Re: Systemverwalter

Beitrag von Vuto »

Mir ging es mit dem Vorschlag ja nicht um die GUI, sondern um eine einfachere Einstellung. :)

Gut mit der 10 als max Gebäude könnte ich mir vorstellen, dass es verständlicher sein könnte.
Wie verhält sich die Verdopplung mit der 10? Wird ein 10er Rohstoff beim Abstand der anderen zur Verdopplung eingerechnet?

Die Möglichkeit einen (oder mehrere) Bereich(e) als Überlaufbecken zu definieren fehlt mir leider noch sehr.
Wie in meinem Beispiel oben hätte ich gerne, dass der Geheimdienst nur besetzt wird wenn alles andere nach den Vorgaben voll ist.
Mit der Möglichkeit der Priorisierung könntest du es so einstellen, dass du keine Angst haben musst den Geheimdienst zu vergessen und ich so, dass ich ihn vergessen kann. :wink:
Antworten

Zurück zu „Spielfunktionen“