Ich habe mir mal Gedanken um die Serverlast des Spieles gemacht. Natürlich sind diese Gedanken zum Teil unausgereift weil ich weiß nicht in wieweit sie in der aktuellen Version umsetzbar sind (, da ich nicht weiß welche Programmiersprache ihr benutzt und ob der Code so leicht umstrickbar ist).
Mein angenommener Ist-Zustand ist folgender.:
Beim Login holt sich der Browser des Users die Stammdaten ab.
Also.:
Nickname
Bar: xxx wT
Punkte: xxx
Level: xxx
Coins: xxx
Deko: xxx
Dazu lädt er noch die Grafikzeile in denen der Anpflanztopf, Sense, Gießkanne und Co enthalten sind.
Den Garten selbst schickt der Server dem Browser aktiv zu. Hier nehme ich an daß dies die erste Datenspitze ist die der Server auszuhalten hat - aufgrund des Counters für jedes einzelne Datenfeld (204 Datenfelder). Hinzu kommt noch daß der Server bei jedem Anbauprodukt drei verschiedene Grafiken lädt. Nimmt man hier nun eine sehr schnell wachsende Pflanzenart wie den Salat lädt man ohne Gießen aller fünf Minuten eine neue Grafik.
Nun baut ja keiner alle Felder innerhalb einer Minute, sondern klickt jedes Feld nacheinander an. Wenn also ein User 20 Salat pflanzt, hat er 20 verschiede Zeiten die zu verschiedenen Zeiten 20 neue Grafiken laden und zu unterschiedlichen Zeiten fertig werden. Rechnet man das Ganze auf 500 User hoch, die alle gleichzeitig Salat und Karotten anpflanzen und ernten, kommt man auf gigantische Datenspitzen.
Das ist der Ist-Zustand den ich aufgrund der Art wie das Spiel sich lädt annehme.
Mein Vorschlag zur Optimierung der Serverlast.:
Jedes Anbauprodukt hat eine feste Anpflanzzeit die sich nur prozentual durch Aktionen wie Gießen&Co verändert werden. Leider weiß ich, aufgrund dessen daß ich das Spiel noch nicht sehr lang spiele, nicht welche Prozente beim Abzug der Anbauzeit entstehen. Ich nehme also als Beispiel die 5% Gießzeit.
Jedes Gemüse hat eine Anpflanzzeit die in den Minutentakt liegen. So haben wir z.B. 10 min, 14 min, 120 min, 2400 min und 2880 min. Nimmt man diese Zahlen genauer unter die Lupe sieht man daß die 5% Gießzeit nur bei den 10 min und den 14 min eine Wachstumszeit ergeben die im Sekundenbereich liegen und keine vollen Minuten. Rundet man diese zwei Wachstumszeiten, könnte man eventuell den Counter auf einen Minuten-, anstatt eines Sekundentaktes einstellen.
Weitergesponnen würde der Gedanke dann folgendermaßen aussehen.:
- Man hole sich per Script die Serverzeit in Minuten und blende sie für den User ein. Diese Minutenzeit greift sich auch das Script um die Zeiten zu berechnen.
- Die Abbauzeit wird nach der Minute in der sie fertig ist angegeben und geladen, ebenso werden die Grafiken nur im Minutentakt geladen.
- Der Browser wird nur jede Minute neu resetet und dadurch entfallen die Ladezeiten die durch die Sekundentakte entstehen.
- Die Pflanzenarten die durch Forschung oder dergleichen eine abweichende Abbauzeit haben, werden auf Minuten gerundet. (Hier sehe ich je nach Programmiersprache ein eventuelles Problem.)
- Zusätzlich könnte man für ungeduldige User noch einen kleinen Aktualisierungsbutton einbauen, was allerdings nicht unbedingt notwendig wäre.
Ich weiß das ich mich mit diesem Vorschlag ziemlich weit aus dem Fenster lehne, denke aber daß er umsetzbar sein könnte. Der Grundgedanke ist schlußendlich die Lade- und Sendelast auf Kosten des Sekundentaktes zu reduzieren. Weitergehend könnte man höchstens noch dahin gehen daß der User Daten in seinen Cash geladen bekommt, wovon ich aber annehme das ihr dies auf jeden Fall vermeiden wollt.
Vorschlag zur Verringerung der Serverlast
-
Gast
Hmmm,
ich habe jetzt nicht alles im Detail gelesen, aber ein paar Anmerkungen dazu:
Viele Daten werden jetzt schon auf dem heimischen PC berechnet, es werden nicht die Datenpakete im Sekundentakt ausgetauscht. Deswegen ist es auch so wichtig, dass die Systemzeit am PC stimmt, sonst klappt's mit dem Gießen nicht immer.
Es wird auch nicht jede Pflanzung bzw. Wässerung übermittelt, sondern auch in Paketen. Immer wenn du in deinem Garten die rosa Blümchen siehst sind die im Queue und werden dann en bloque versendet.
Eine weitergehende Abarbeitung auf den heimischen PC ist nicht gewollt, weil sonst bots die Arbeit erleigen würden; zumindest bei einigen.
ich habe jetzt nicht alles im Detail gelesen, aber ein paar Anmerkungen dazu:
Viele Daten werden jetzt schon auf dem heimischen PC berechnet, es werden nicht die Datenpakete im Sekundentakt ausgetauscht. Deswegen ist es auch so wichtig, dass die Systemzeit am PC stimmt, sonst klappt's mit dem Gießen nicht immer.
Es wird auch nicht jede Pflanzung bzw. Wässerung übermittelt, sondern auch in Paketen. Immer wenn du in deinem Garten die rosa Blümchen siehst sind die im Queue und werden dann en bloque versendet.
Eine weitergehende Abarbeitung auf den heimischen PC ist nicht gewollt, weil sonst bots die Arbeit erleigen würden; zumindest bei einigen.
-
Gast
Ich habe wegen der "nicht gleichen Zeit auf den Rechnern" vorgeschlagen die Serverzeit zu benutzen. In anderen Spielen der Firma gibt es um 0.00 Uhr eine Statsberechnung, also nutzen sie bereits einen Code um die Serverzeit zu benutzen und könnten diesen Code eventuell sogar gleich mit benutzen.Kalle Wirsch hat geschrieben: Viele Daten werden jetzt schon auf dem heimischen PC berechnet, es werden nicht die Datenpakete im Sekundentakt ausgetauscht. Deswegen ist es auch so wichtig, dass die Systemzeit am PC stimmt, sonst klappt's mit dem Gießen nicht immer.
Hmm, ... wenn dann das Gießen auch per Serverzeit berechnet werden würde, würde dann ja auch dieses Gießproblem wegfallen (, vorausgesetzt mein Vorschlag wäre umsetzbar).
Mir gehts hier um die Datenpakete die beim Fertigwerden der Pflanzen entstehen, nicht um diejenigen die beim Pflanzen oder Gießen entstehen.Kalle Wirsch hat geschrieben: Es wird auch nicht jede Pflanzung bzw. Wässerung übermittelt, sondern auch in Paketen. Immer wenn du in deinem Garten die rosa Blümchen siehst sind die im Queue und werden dann en bloque versendet.
Ja, das mit den Bots ist mir bewusst, deswegen habe ich den Gedankengang nicht weiterverfolgt den ich zwecks Datenspeicherung im Cash hatte. Hauptsächlich habe ich aber den Gedankengang wegen der Premise der Firma "Reines Browserspiel, keine Speicherung auf dem heimischen Computer" nicht weitergesponnen.Kalle Wirsch hat geschrieben: Eine weitergehende Abarbeitung auf den heimischen PC ist nicht gewollt, weil sonst Bots die Arbeit erleigen würden; zumindest bei einigen.
-
Gast
... Das heißt, wenn ich jetzt Spargel pflanze und meine Uhr dann 8 Stunden vorstelle, ist der Spargel 8 Stunden früher fertig?Kalle Wirsch hat geschrieben:Hmmm,
ich habe jetzt nicht alles im Detail gelesen, aber ein paar Anmerkungen dazu:
Viele Daten werden jetzt schon auf dem heimischen PC berechnet, es werden nicht die Datenpakete im Sekundentakt ausgetauscht. Deswegen ist es auch so wichtig, dass die Systemzeit am PC stimmt, sonst klappt's mit dem Gießen nicht immer.
Es wird auch nicht jede Pflanzung bzw. Wässerung übermittelt, sondern auch in Paketen. Immer wenn du in deinem Garten die rosa Blümchen siehst sind die im Queue und werden dann en bloque versendet.
Eine weitergehende Abarbeitung auf den heimischen PC ist nicht gewollt, weil sonst bots die Arbeit erleigen würden; zumindest bei einigen.
-
Gast
Jein;syltfan hat geschrieben: ... Das heißt, wenn ich jetzt Spargel pflanze und meine Uhr dann 8 Stunden vorstelle, ist der Spargel 8 Stunden früher fertig?
er wird zwar als 'fertig' angezeigt, wenn du ihn aber versuchst zu ernten wird die auf dem Server kontrolliert, ob die Zeit wirklich abgelaufen ist.
=>du kannst nicht ernten
-
Gast
Okay, ich hatte bloß keine Lust das auszuprobieren! Danke an den König der Erdmännchen!Kalle Wirsch hat geschrieben:Jein;syltfan hat geschrieben: ... Das heißt, wenn ich jetzt Spargel pflanze und meine Uhr dann 8 Stunden vorstelle, ist der Spargel 8 Stunden früher fertig?
er wird zwar als 'fertig' angezeigt, wenn du ihn aber versuchst zu ernten wird die auf dem Server kontrolliert, ob die Zeit wirklich abgelaufen ist.
=>du kannst nicht ernten
