Guten Tag,
ich erkläre mal die allgemeine Situation, ich entwickle momentan ein Browsergame und dafür benötige ich ein Backend System.
Meine Idee ist es, das mein Frontend eigentlich nur dafür zuständig ist die Daten anzuzeigen und Befehle in einige spezielle Tabellen zu übergeben. Ein Java Programm im Hintergrund, nimmt diese befehle entgegen und verarbeitet sie.
Ich entwickle eine Wirtschaftssimulation in der die Benutzer/Spieler den Inhalt festlegen. Also die Produkte können von Spielern erstellt werden. Meine Idee war zuerst es einfach per PHP zu machen also Produzieren beim neu landen der Seite und so weiter. Jedoch denke ich dass es mein System sehr viel mehr beanspruchen würde, da PHP die Daten für jedes Objekt jedes mal wieder aus der DB holen muss.
Ich könnte mit Java alle Produkte cachen und würde dann in Zeitintervallen einfach Produzieren und das Lager updaten.
Meine Idee war nun auf die MySQL Datenbank mittels Hibernate zugreifen, um einfach mit Objekten in meinem Java Quellcode zu arbeiten.
90% der Datenbank besteht aus INT Werten damit halte die die Datenmenge gering.
Ich habe also eine Tabelle Products dort gibt es eine ID, owner, type, amount, quality anhand des types kann man den Namen aus der Tabelle product_types erfahren. Was aber für den Backend Prozess unwichtig ist.
Ich plane dies im Folgenden sinne umzusetzen.
Mein Server lädt wenn er, das erste mal startet die Produkte, Benutzer und Lager Daten.
Wenn ein neues Produkt erstellt wird, bekommt er einen Befehl ein neues Produkt zu erstellen und fügt das zu seiner gecachten Liste hinzu.
Alle 5 Minuten wird nun ein "Wirtschaftstick" ausgelöst per Event und der Server updatet die Lagerdaten und speichert sie anschließend in die Datenbank.
Soweit würde ich sagen dass kann man auch einfach per PHP machen jedoch nun kommt dass was mein Spiel anders macht.
Produzieren sorgt dafür, dass Maschinen Schaden bekommen, Produkte in den Lagern verrotten, Eisenerz natürlich langsamer als Brot. Bei der Produktion spielen viele Faktoren eine Rolle.
Qualität der Maschine entscheidet maximal Qualität des Produktes. Einstellung der Arbeiter entscheidet über die Produktions Geschwindigkeit und Qualität. Arbeiter die gut bezahlt werden, erstellen gute Produkte. Arbeiter die gehetzt werden produzieren schneller aber schlechter und es gibt mehr Fehler. Gleichzeitig spielen die Komponenten für jedes Produkt eine Rolle. Wenn eine Komponente Schaden hat oder schlechte Qualität erhöht es die Chance auf Fehler.
Ich denke ihr könnt etwa nachvollziehen, wie komplex mein Spiel wird und was eben das Backend leisten muss.
Glaubt ihr mein Ansatz ist richtig?
- Alle Daten (Benutzer Produkte Lagerdaten und so weiter) Cachen. Mithilfe von Hibernate.
- Wirtschaftsticks Produzieren waren und führen andere Tätigkeiten aus.
- Änderungen in Form von Befehlen über die MySQL Datenbank.
Beispiel: Maschinen ID, Aktions ID (z.B. 4 = ändere Produktion), Neue Produkt ID
Es währen also nur 3 INT werte die eine Maschine veranlassen würden, beim nächsten Tick etwas anderes zu produzieren.
- Backend speichert die Daten zurück in die Datenbank.
Mein Spielprinzip sieht nicht vor, dass meine DB mit Leichen übersät ist. Irgendwann verrottet alles und wenn das Geld alle ist verschwinden die Gebäude und so weiter.
Mit freundlichem Gruß
MaikK :applaus:
ich erkläre mal die allgemeine Situation, ich entwickle momentan ein Browsergame und dafür benötige ich ein Backend System.
Meine Idee ist es, das mein Frontend eigentlich nur dafür zuständig ist die Daten anzuzeigen und Befehle in einige spezielle Tabellen zu übergeben. Ein Java Programm im Hintergrund, nimmt diese befehle entgegen und verarbeitet sie.
Ich entwickle eine Wirtschaftssimulation in der die Benutzer/Spieler den Inhalt festlegen. Also die Produkte können von Spielern erstellt werden. Meine Idee war zuerst es einfach per PHP zu machen also Produzieren beim neu landen der Seite und so weiter. Jedoch denke ich dass es mein System sehr viel mehr beanspruchen würde, da PHP die Daten für jedes Objekt jedes mal wieder aus der DB holen muss.
Ich könnte mit Java alle Produkte cachen und würde dann in Zeitintervallen einfach Produzieren und das Lager updaten.
Meine Idee war nun auf die MySQL Datenbank mittels Hibernate zugreifen, um einfach mit Objekten in meinem Java Quellcode zu arbeiten.
90% der Datenbank besteht aus INT Werten damit halte die die Datenmenge gering.
Ich habe also eine Tabelle Products dort gibt es eine ID, owner, type, amount, quality anhand des types kann man den Namen aus der Tabelle product_types erfahren. Was aber für den Backend Prozess unwichtig ist.
Ich plane dies im Folgenden sinne umzusetzen.
Mein Server lädt wenn er, das erste mal startet die Produkte, Benutzer und Lager Daten.
Wenn ein neues Produkt erstellt wird, bekommt er einen Befehl ein neues Produkt zu erstellen und fügt das zu seiner gecachten Liste hinzu.
Alle 5 Minuten wird nun ein "Wirtschaftstick" ausgelöst per Event und der Server updatet die Lagerdaten und speichert sie anschließend in die Datenbank.
Soweit würde ich sagen dass kann man auch einfach per PHP machen jedoch nun kommt dass was mein Spiel anders macht.
Produzieren sorgt dafür, dass Maschinen Schaden bekommen, Produkte in den Lagern verrotten, Eisenerz natürlich langsamer als Brot. Bei der Produktion spielen viele Faktoren eine Rolle.
Qualität der Maschine entscheidet maximal Qualität des Produktes. Einstellung der Arbeiter entscheidet über die Produktions Geschwindigkeit und Qualität. Arbeiter die gut bezahlt werden, erstellen gute Produkte. Arbeiter die gehetzt werden produzieren schneller aber schlechter und es gibt mehr Fehler. Gleichzeitig spielen die Komponenten für jedes Produkt eine Rolle. Wenn eine Komponente Schaden hat oder schlechte Qualität erhöht es die Chance auf Fehler.
Ich denke ihr könnt etwa nachvollziehen, wie komplex mein Spiel wird und was eben das Backend leisten muss.
Glaubt ihr mein Ansatz ist richtig?
- Alle Daten (Benutzer Produkte Lagerdaten und so weiter) Cachen. Mithilfe von Hibernate.
- Wirtschaftsticks Produzieren waren und führen andere Tätigkeiten aus.
- Änderungen in Form von Befehlen über die MySQL Datenbank.
Beispiel: Maschinen ID, Aktions ID (z.B. 4 = ändere Produktion), Neue Produkt ID
Es währen also nur 3 INT werte die eine Maschine veranlassen würden, beim nächsten Tick etwas anderes zu produzieren.
- Backend speichert die Daten zurück in die Datenbank.
Mein Spielprinzip sieht nicht vor, dass meine DB mit Leichen übersät ist. Irgendwann verrottet alles und wenn das Geld alle ist verschwinden die Gebäude und so weiter.
Mit freundlichem Gruß
MaikK :applaus: