Moin,
ich habe vor einiger Zeit ein PHP Browsergame angefangen zu schreiben und führe es über die Zeit weiter. Nun möchte ich endlich ein Questsystem implementieren.
Bei Javascript-Spielen habe ich sowas einfacher machen können, da jeder Client meist genug Power hatte.
Nun möchte ich das eben in PHP umsetzen, und meine Idee war folgende (ich bin noch recht ungeübt in OOP):
Eine Quest Klasse, mit id, Titel, Beschreibung und zwei Funktionen; eine Funktion wird aufgerufen und überprüft, ob die Quest freigeschaltet wird (Voraussetzungen erfüllt?),
die zweite überprüft den Fortschritt.
Nun kann das ja passieren, dass bei jedem Aufruf der Seite sich etwas ändert, und deshalb war eben mein Ansatz, bei jedem Reload die zwei Funktionen ausführen zu lassen (natürlich nur, wenn die Quest noch nicht freigeschaltet wurde, bzw. noch nicht abgeschlossen wurde)
Das kann sich aber schnell häufen, bei sagen wir mal 40 Quests und einem neuen Spieler, werden bei jedem Seitenaufruf 40 Objekte in einem Array erstellt.
Ich kann mir nicht vorstellen, dass diese Technik state-of-the-art ist. Also - wie schaffe ich es, ein performantes System aufzubauen?
Freilich habe ich schon gesucht, und ich sehe oft Aussagen, dass man "Hooks" einbaut, das heißt wenn zB etwas gekauft wird, dann wird ein Event an eine Funktion abgefeuert. Doch wie es dann weitergeht, verstehe ich noch nicht.
Kann mir jemand auf die Sprünge helfen?
Liebe Grüße
Markus
ich habe vor einiger Zeit ein PHP Browsergame angefangen zu schreiben und führe es über die Zeit weiter. Nun möchte ich endlich ein Questsystem implementieren.
Bei Javascript-Spielen habe ich sowas einfacher machen können, da jeder Client meist genug Power hatte.
Nun möchte ich das eben in PHP umsetzen, und meine Idee war folgende (ich bin noch recht ungeübt in OOP):
Eine Quest Klasse, mit id, Titel, Beschreibung und zwei Funktionen; eine Funktion wird aufgerufen und überprüft, ob die Quest freigeschaltet wird (Voraussetzungen erfüllt?),
die zweite überprüft den Fortschritt.
Nun kann das ja passieren, dass bei jedem Aufruf der Seite sich etwas ändert, und deshalb war eben mein Ansatz, bei jedem Reload die zwei Funktionen ausführen zu lassen (natürlich nur, wenn die Quest noch nicht freigeschaltet wurde, bzw. noch nicht abgeschlossen wurde)
Das kann sich aber schnell häufen, bei sagen wir mal 40 Quests und einem neuen Spieler, werden bei jedem Seitenaufruf 40 Objekte in einem Array erstellt.
Ich kann mir nicht vorstellen, dass diese Technik state-of-the-art ist. Also - wie schaffe ich es, ein performantes System aufzubauen?
Freilich habe ich schon gesucht, und ich sehe oft Aussagen, dass man "Hooks" einbaut, das heißt wenn zB etwas gekauft wird, dann wird ein Event an eine Funktion abgefeuert. Doch wie es dann weitergeht, verstehe ich noch nicht.
Kann mir jemand auf die Sprünge helfen?
Liebe Grüße
Markus
Kommentar