Hallo,
ich arbeite derzeit an einem auf AS3 basiertem Strategiespiel.
Im Backend läuft ein selbst geschriebener Server in Java der mit einer MySQL Datenbank kommuniziert.
Für die Kommunikation zwischen Spiel und Server verwende ich ein eigenes binäres Protokoll.
Soweit läuft alles auch reibungslos, doch wie regel ich das mit den Berechnungen für Ressourcen und Gebäude im Backend ?
Bisher funktioniert das ganze so:
In der Datenbank gibt es eine Spalte "lastUpdate", diese repräsentiert das letzte Auslesen der Ressourcen.
Beim einloggen berechnet mein Server die Stunden, die zwischen jetzt und dem "lastUpdate" liegen.
In einer zweiten Tabelle, für die Gebäudetypen, sind die Spalten "product" und "productHour" enthalten, die jeweils die zu produzierende Ressource und ihre Anzahl pro Stunde wiedergeben.
Mein Server durchläuft nun in einer Schleife alle Gebäudetypen, liest aus einer dritten Tabelle die Anzahl der Gebäude, des jeweiligen Gebäudetyp's und multipliziert diese mit "productHour" und das Produkt daraus wird mit der Anzahl der Stunden die zwischen dem einloggen und "lastUpdate" liegen multipliziert.
Nachdem die Ressourcen aktualisiert wurden, wird der Verbrauch berechnet.
Derzeit verbrauchen nur Bürger Nahrung, dazu subtrahiere ich die vorhandene Nahrung mit der Anzahl meiner Bürger, multipliziert mit den Differenzstunden.
Ein Gedanke der mir gekommen war, war die Berechnung auf den SQL-Server abzuwälzen. Auf dem SQL-Server ein Event starten dass alle 60 Minuten die Resourcen aktualisiert.
Ich würde nun gerne wissen wie andere Browsergames dieses Problem gelöst haben, da gibt es bestimmt elegantere Wege.
Mit freundlichen Grüßen
Yuen