Hallo Leute,
ich steh vor folgender Herausforderung:
Ich entwickel zurzeit ein Strategiespiel. In diesem kann ich meine Einheiten von einem Ort zum anderen schicken. Die Orte sind dabei auf der Karte mit X/Y Koordinaten plaziert.
Wenn ich nun meine Einheiten losschicke wird vorher die Dauer berechnet.
Da mein Spiel eine Tick Rate von 1 Minute hat, wird also die Distanz zwischen den Orten berechnet, anschließend durch die Geschwindigkeit meiner Einheiten pro Minute geteilt und ich bekomme die Dauer bis zum Ziel in Minuten.
Soweit kein Problem.
Jedoch kann es auf dem Weg zu diversen Ereignissen kommen (Feindliche Einheit kreuzt meinen Weg zum Beispiel).
Das heißt, ich muss nach jeder Minute schauen, ob ein Ereignis an der aktuellen Position meiner Einheiten eintritt.
Ich häng nun an dem "jede Minute".
Per Cronjob kann ich das nicht realisieren, da der Prozess des "gehens" ja irgendwann beendet ist, und der Cronjob gelöscht werden müsste.
Ich kam also auf die Idee dass per shell Script zu lösen.
In meiner "Schicke Einheiten los" PHP wird dann ein shell Script gestartet welches 1 Minute wartet, dann "meine Einheiten einen Schritt vorgehen lässt" und prüft ob ein Ereignis eintritt.
Das würde solange ausgeführt werden, bis meine Truppen am Ziel ankommen oder anderswie verhindert sind.
Dann beendet die shell sich automatisch, da die do/while Bedingung erfüllt wurde.
Jedoch denke ich nicht dass es eine saubere Lösung ist, den Server mit x shell Scripten zu füllen welche knapp 59 Sekunden im Leerlauf sind.
Meine Frage ist nun, ob es nicht wesentlich sauberere Wege gibt dieses Problem der "warte 1 Minute und prüf auf Ereignis" Sache zu lösen.
Kennt jemand eine solche Lösung oder hat andere, bessere Vorschläge als meinen Ansatz?
Mit freundlichen Grüßen,
Timmy
ich steh vor folgender Herausforderung:
Ich entwickel zurzeit ein Strategiespiel. In diesem kann ich meine Einheiten von einem Ort zum anderen schicken. Die Orte sind dabei auf der Karte mit X/Y Koordinaten plaziert.
Wenn ich nun meine Einheiten losschicke wird vorher die Dauer berechnet.
Da mein Spiel eine Tick Rate von 1 Minute hat, wird also die Distanz zwischen den Orten berechnet, anschließend durch die Geschwindigkeit meiner Einheiten pro Minute geteilt und ich bekomme die Dauer bis zum Ziel in Minuten.
Soweit kein Problem.
Jedoch kann es auf dem Weg zu diversen Ereignissen kommen (Feindliche Einheit kreuzt meinen Weg zum Beispiel).
Das heißt, ich muss nach jeder Minute schauen, ob ein Ereignis an der aktuellen Position meiner Einheiten eintritt.
Ich häng nun an dem "jede Minute".
Per Cronjob kann ich das nicht realisieren, da der Prozess des "gehens" ja irgendwann beendet ist, und der Cronjob gelöscht werden müsste.
Ich kam also auf die Idee dass per shell Script zu lösen.
In meiner "Schicke Einheiten los" PHP wird dann ein shell Script gestartet welches 1 Minute wartet, dann "meine Einheiten einen Schritt vorgehen lässt" und prüft ob ein Ereignis eintritt.
Das würde solange ausgeführt werden, bis meine Truppen am Ziel ankommen oder anderswie verhindert sind.
Dann beendet die shell sich automatisch, da die do/while Bedingung erfüllt wurde.
Jedoch denke ich nicht dass es eine saubere Lösung ist, den Server mit x shell Scripten zu füllen welche knapp 59 Sekunden im Leerlauf sind.
Meine Frage ist nun, ob es nicht wesentlich sauberere Wege gibt dieses Problem der "warte 1 Minute und prüf auf Ereignis" Sache zu lösen.
Kennt jemand eine solche Lösung oder hat andere, bessere Vorschläge als meinen Ansatz?
Mit freundlichen Grüßen,
Timmy
Kommentar