Aug 30

Phlame Engine: Ressourcenberechnung (Fusionskraftwerkproblem/Endliche Rohstoffe) & Bauliste mit Wartefunktion

Tag: EntwicklungPhoscur @ 15:36

Ich arbeite schon den ganzen Sommer an der Ressourcenberechnung und gerade zur Zeit an einer Bauliste und dem Eventhandler (Das sind die drei Ebenen der Planetenaktualisierung, die bei jedem Klick geschehen. Daher müssen sie auch besonders performant sein).

Mich wundert das noch niemand den Fusionskraftwerkbug bemerkt und ernst genommen hat. Er bedingt einige Funktionalitäten auf die ich nicht verzichten möchte:

Gebäude mit starkem „Resourcendrain“ (hoher Verbrauch, höher als die Produktion ist) oder eine sehr knappe Ressource die von bestimmten Gebäuden verbraucht wird.

Beispiele:
AMmine/Ultramine: Verbraucht AntiMaterie (das nur sehr wenig bis gar nicht produziert wird) und produziert große Mengen von Energie und als Abfallprodukt Aluminium und Silicium… (gut noch etwas gesponnen sollte aber nur ein Beispiel sein)

Rohstoffwandler: Dieses Gebäude verwandelt Dunkle Masse (die man nur auf Expeditionen findet) langsam in ein Aluminium/Silicium-Gemisch um (Über einen gewissen Zeitraum).

Betanken eines Schiffes: Man lässt eine Extra-Resssorte den Tank herunterzählen (leichter als ein variables Limit einzurichten)  – Energiebetankung/Laden von Batterien?.

Erklärung des Bugs:
Die Ressberechnung basiert auf dem einfachen Prinzip Produktion (Rohstoff durch Zeit) mal Zeit ergibt Rohstoff. Problematisch wird dies allerdings wenn bestimmte Grenzen erreicht werden. Besonders die untere Grenze wird bisher nicht berücksichtigt, weil die Produktion eigentlich immer positiv ist. Wer den Bug beobachten will, der baue einfach mal das Fusionskraftwerk so weit aus wie möglich, stelle seinen Deutextraktor auf Null und das Kraftwerk auf volle Power. Spannend wird es wenn 0 Deuterium oder weniger erreicht wird (MinusDeut?!).

Um dieses doch etwas komplexere Probleme zu lösen hatte ich zuerst eine Klasse in PHP geschrieben, habe mich dann aber von meikel überzeugen lassen, dass es besser wäre das in SQL zu lösen. Nachdem ich irgendwann mein Argument, dass das mit SQL gar nicht möglich wäre aufgeben musste habe ich es in MySQL geschrieben. Dadurch ist der Script weit statischer (versch. Ress-/Energiesorten), doch man kann den Script ja vor dem speichern in der Datenbank durch PHP jagen, welches dann die vierte und fünfte Resssorte hinzufügt, die der Admin gerne hätte…

Als ich das geschafft hatte habe ich mich an einen SQL Eventhandler und eine Bauliste gemacht, die beide fast fertig sind.

Die Bauliste unterstützt eine Wartefunktion, die es dem Spieler erlaubt eine Liste anzulegen ohne vorher auf die Verfügbarkeit von seinen Ressourcen zu achten. Das ist leider noch nicht ganz fertig und bestimmt nicht bugfrei, aber der Ansatz steht.

PHP bekommt hinter dem SQL Core nurnoch die Aufgabe die Daten des Users zu validieren, zb ob er das überhaupt schon bauen darf…

4 Kommentare zu “Phlame Engine: Ressourcenberechnung (Fusionskraftwerkproblem/Endliche Rohstoffe) & Bauliste mit Wartefunktion”

  1. Testos schrieb:

    Ich verstehe zwar keinen Ton, aber es klingt super!

  2. gianluca311 schrieb:

    Sauber!
    Wie ist jetzt eigentlich der Status des gesamten Projektes?

  3. Phoscur schrieb:

    Ich sage ungern einen Stand (Prozentsatz) von etwas, das ich gar nicht ganz kenne. Ich kann immer nur schätzen. Und da ich da bisher immer daneben gelegen habe, lasse ich das auch bleiben.
    Ich weise auch nochmal drauf hin, dass ich vorallem einen Core schreibe, das Herzstück eines Spieles. Das ganze Interface und einige Prüfungen PHP seitig müssen noch geschrieben werden bevor man User drauf loslassen kann!
    Um nochmal für dich den Fortschritt, der eigentlich aus diesem Artikel ersichtlich werden sollte, kurz zu fassen: Bauliste nun weit mehr als 5%.

  4. gianluca311 schrieb:

    Kann dich verstehen! Trotzdem danke für die Info

Dein Kommentar

Du musst eingelogt sein, um einen Kommentar zu schreiben.