TWLan Forum
Alg. Frage Browsergame Programmierung - Printable Version

+- TWLan Forum (https://twlan.org)
+-- Forum: Deutsch (https://twlan.org/forumdisplay.php?fid=1)
+--- Forum: Gott und die Welt (https://twlan.org/forumdisplay.php?fid=4)
+--- Thread: Alg. Frage Browsergame Programmierung (/showthread.php?tid=2677)



Alg. Frage Browsergame Programmierung - szepi - 26.02.2010

Hallo,
ich bin gerade bei der Planung eines Browsergames.
Jetzt habe ich mich gefragt, wie man es wohl am besten macht
die ganzen Eigenschaften (Bauzeit,Kosten...etc.) von den Gebäuden und Truppen zu speichern.Man könnte natürlich alles in ein Array Packen oder in einer Datenbank speichern, das wäre aber eine riesige Datenmenge, die ja auch zu performence Verlust führen würde.
Jetzt habe ich gesehen, dass bei der Dslan, die Gebäude Eigenschaften in der einer Config übergeben werden, bei der die steigung der Rohstoffkosten, etc. mit übergeben werden.
Ein guter Weg um die Datenmenge gering zu halten, jedoch frage ich mich dann, ob es nicht ein großer Rechenaufwand ist, die Werte bei jedem laden auf die aktuellen Stufen hochzurechnen.
Oder ist das anders realisiert worden und die Daten werden dann irgendwo gespeichert?
Wie mache ich das am Besten, mit möglichst geringen Geschwindigkeitsverlusten?
Gruß


RE: Alg. Frage Browsergame Programmierung - SlimShady95 - 26.02.2010

Schreib dir ne Builds Klasse und mach dann zB:
PHP Code:
<?php
class Builds {
  public 
$Builds;

  public function 
add_build($Name$German) {
    
$this->aktu_building $Name;
    
$this->Builds[$this->aktu_building] = array($Name$German);
  }

  public function 
set_wood($Price$Raise) {
    
$this->Builds[$this->aktu_building]['wood'] = array($Price$Raise);
  }
}

// USW. 

Dann kannst du mittels $cl_builds->add_building ein Gebäude hinzufügen und mit set_wood den Holzpreis festlegen.
Brauchst halt für alle Ress ne Funktion.
Habs auch so ähnlich gemacht.

MfG Manuel


RE: Alg. Frage Browsergame Programmierung - szepi - 27.02.2010

Danke für die schnelle Antwort.
Ja das schaut gut aus. Meine Frage wäre jetzt nur, wie du dann auf die Rohstoffkosten des Gebäudes auf stufe 20 kommst.
Rechnest du das dann immer hoch?
So etwa in der Art: Rohstoffkosten Stufe 20= $price *$raise^20

Weil wenn du dann das Beispielsweise das Hauptgebäude anwählst, müsste das Script ja ersteinmal für die ganzen Gebäude, die Rohstoffkosten etc. ausrechnen, das wäre doch ein großer rechenaufwand.
Oder wird das irgendwie anders realisiert?
Gruß


RE: Alg. Frage Browsergame Programmierung - agent47 - 27.02.2010

Die Gebäudestufen musst du schon in einer DB Speichern, und dann die Rohstoffkosten mit einem faktor erhöhen. Um dann die Kosten zu verändern musst du entweder die Grundpreise anpassen oder den Faktor verändern.

Um die Serverbelastung gering zu halten musst du daten die zwar dynamisch sein sollen aber sich relativ selten ändern Cashen (also Zwischenspeichern).

Zusätzlich ist bei solchen großen sachen eine MVC Architecktur mit Front-Controller, Intercepting-Filter, Event-Dispatcher usw. von nutzen da diese n haufen arbeit ersparen.


RE: Alg. Frage Browsergame Programmierung - szepi - 12.03.2010

Alles klar. Wenn ich das ganze aber in ner DB Cache habe ich wiederrum eine große, Datenbankbelastung. Bei der Dslan wurde es ja auch nicht in der Datenbank gespeichert. Wie werden denn da überhaupt die Daten gecached?