Benötige mal einen Denkanstoss

caramba12321

blödefragensteller
Hallo Community.
Ich programmiere zur Zeit ein Onlinegame und habe mal eine Frage.
Das Game soll in Ticks ablaufen und ein Tick soll 15 Minuten, also 900 Sekunden lang sein. Nun soll jedes mal wenn ein User eine Aktion ausführt überprüft werden, ob ein Tick zuende ist. Nun habe ich mir überlegt, dass ich dazu eine Tabelle anlege die Zeit reinspeichere und das dann abgleiche.
Nun habe ich aber ein Problem, jeder User lebt nun sozusagen in seiner eigenen Zeit, also jeder hat eigene Ticks und das wollte ich ja nicht.

Was ich brauch ist ein Denkanstoß, wie ich es realisieren könnte das alle immer die gemeinsamen Ticks haben, also das am anfang überprüft wird ob und wenn wieviele Ticks vergangen sind.
Freue mich auf konstruktive Anworten.

Gruss
Caramba
 
Was mir da als erstes einfällt ist Unix-Timestamp modulo 900.

Timestamp des letzten "globalen Tick":
PHP:
date('Y-m-d H:i:s', mktime() - (mktime() % 900));
Timestamp des nächsten "globalen Tick":
PHP:
date('Y-m-d H:i:s', mktime() - (mktime() % 900) + 900);
 
Also das sieht schonmal vernüftig aus.

Vielleicht ja auch einfach so

Tabelle mit folgenen Feldern:

id
last_date


Bei id wird die User id gespeichert und bei last_date immer das letzte datum wenn der user eine Aktion ausgeführt hat.
Dazu dann ein Objekt wo ausgewertet wird wieviel Ticks von der letzten Aktion bis jetzt vergangen sind.
Allerdings würde dann natürlich jeder User wieder in seiner eigenen Tickepoche leben :(
Was sagt ihr dazu?
 
Zuletzt bearbeitet:
Zurück