Mit PHP "Spielrunden" realisieren?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mit PHP "Spielrunden" realisieren?

    Howdy @ all...

    ich bin momentan ein wenig dabei ein Browsergame zu scripten. Ob es etwas ernstes wird sei mal dahingestellt.

    Nur frage ich mich, wie man Runden realisiert? Wie rufe ich eine Phpseite in einem 5 Minuten Zyklus auf? Oder wie könnte man sonst eine Aktualisierung realisieren, die einen gewisses Zeitintervall hat, damit notwendige Berechnungen abgewickelt werden können.
    Zusätzlich benutze ich eine Mysql Datenbank, für die Datenhaltung.

    Eine notdürftige Methode, die ich momentan benutze, geht über einen Browser. Dieser aktualisiert sich alle 5 Minuten mittels metatag-refresh. Nicht schön - eher hässlich.

    Auch andere Ideen schwirren mir durch den Kopf, z.B. die Rundenberechnung wenn ein Spieler die Seite aufruft. Die Zeitdifferenz von der letzten Aktualisierung an wird dann in Runden umgerechnet, und diese werden dann nachgeholt - auch net schön. Da es ja doch recht viel Nachholbedarf geben kann, und dies dann die Serverperformace drücken kann.

    Auf Linuxrechner könnte man sogenannte Cron-Jobs aufstellen. Doch dazu muss man ja an die Cron-Jobs rankommen, und das kann man als normaler Webspace Nutzer ja net. Und ich will auch nur recht ungern in diese Richtung zu viel Wirbel machen, da es momentan ja nur ein zeitvertreib-Projekt von mir ist.

    Hat jemand eine Idee?

    PS: Danke im vorraus!

  • #2
    www.cronjob.de
    mfg

    Kommentar


    • #3
      Eine Antwort... eine Zeile... ein Weblink... eine Lösung.
      Klasse Sache.

      Wenn es noch Lösungen gibt, die unabhängig von Dritten sind. Nur her damit!

      Kommentar


      • #4
        Cronjobs sind für dein vorhaben wie geschaffen
        Es gibt zwar viele alternativen, aber keine ist so effizient wie ein Cronjob!

        Hier nochmal zwei recht gute Anbieter von kostenlosen C-Jobs.
        www.cron-job.org
        www.selfphp.de/cronjobs


        Sers
        Der Boris

        Kommentar


        • #5
          Dann bedanke ich mich mal recht herzlich.

          *Browser abstellt* ... dann kann diese metatag-Krücke entlich weg.

          Man hört sicherlich noch von mir..

          so far, have a nice day.

          *nun Mauskoordinaten auslesen und das einheitlich in Mozilla und IE.. wargh..*

          Kommentar


          • #6
            OffTopic:
            Man hört sicherlich noch von mir..

            .. is das ne drohung?

            Kommentar


            • #7
              hat jemand noch ne idee wie es anders gehen würde? Hatte mir gedacht evtl. mit einem in der DB hinterlassenen Timestamp verrechnen und somit erkennen, dass ein Tag vorrüber ist ?
              Ich programmiere auch zum spaß an nem browsergame und wollte einen "tick" machen, also einmal um 15 Uhr (genau um 15:00:01 Uhr). Also habe ich richtig bedacht, dass bei jedem klick (also per skript auf jeder Seite) gecheckt wird, ob schon nach 15 Uhr ist um dann die anstehenden Berechnungen durchzuführen?

              Kommentar


              • #8
                Original geschrieben von zeron
                hat jemand noch ne idee wie es anders gehen würde? Hatte mir gedacht evtl. mit einem in der DB hinterlassenen Timestamp verrechnen und somit erkennen, dass ein Tag vorrüber ist ?
                Ich programmiere auch zum spaß an nem browsergame und wollte einen "tick" machen, also einmal um 15 Uhr (genau um 15:00:01 Uhr). Also habe ich richtig bedacht, dass bei jedem klick (also per skript auf jeder Seite) gecheckt wird, ob schon nach 15 Uhr ist um dann die anstehenden Berechnungen durchzuführen?
                wie wäre es einfach mal mit Suchen? Irgendwer hat für solch einen Zweck erst vor kurzem eine schöne Lösung gepostet

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  habe gerade die letzen 2 Seiten der Suchergebnisse durchgelesen...da war nur die idee etwas "onClick" zu errechnen und dass auf den richtigen zeitpunkt zurückzurechnen... meinst du diese lösung?

                  Kommentar


                  • #10
                    Original geschrieben von zeron
                    habe gerade die letzen 2 Seiten der Suchergebnisse durchgelesen...da war nur die idee etwas "onClick" zu errechnen und dass auf den richtigen zeitpunkt zurückzurechnen... meinst du diese lösung?
                    hm ... weiß nicht, find das auch gerade nicht ~_~


                    try touch, mit filemtime oder fileatime + date

                    nur muss dafür natürlich die Seite aufgerufen werden, was dann, wenn der Cronjob tatsächlich ausgeführt wird (und das nicht per pcntl_fork oder so geschieht, falls das erwünscht ist), die Geschwindigkeit wieder drückt...

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      jo...das wäre ne ähnliche Lösung, nur halt mit Dateien und keiner DB. denke mit ner DB wird weder die Geschwindigkeit noch die Serverleistung drücken im gegensatz zum verändern von Files ?! Aber das spiel, an dem ich gerade sitze, ist auch nicht sehr nötig ständige Aktualisierungen durchzuführen,da das spiel keine kampf oder handel beinhaltet. Sondern eine Simulation eines Reedereikonzerns (ich weiß klingt komisch aber ist sehr interessant). Und es wir nun mit einem skript gecheckt ob die boote im hafen oder auf dem Meer sind. auf dieser skriptbasis kann ich auch andere events managen.
                      Das "game" ist auch eher nur aus Erfahrungszwecken, bevor ich mich an ein "größeres", "ernstes" Spiel heranwage.

                      Kommentar


                      • #12
                        denke mit ner DB wird weder die Geschwindigkeit noch die Serverleistung drücken im gegensatz zum verändern von Files ?!
                        Hmm... mal ehrlich, wenn man normale Dateien schneller nach Daten durchforsten könnte als DB's, warum benutzt die ganze Welt Datenbanken als konsistenter Aufbewahrungsort?

                        Nebenbei, DB's sind auch "nur" Dateien die verändert werden!
                        Ich bezweilfe das man bei einem Browsergame auf Kurz oder Lang auf eine DB verzichten kann. Also lieber jetzt schon mit anfreunden

                        Kommentar


                        • #13
                          lies bitte meinen Text nochmal ! Falls es jedoch trotzdem verständniss probleme gibt.....ich tendiere zu DB's.
                          Und was ich meine ist, dass es den server mehr belastet, wenn von mir aus 500 User auf ein File auf dem server schreiben, als wenn man DB's benutzt, die dafür ausgelegt sind viele Daten einzutragen und zu ändern.
                          Zuletzt geändert von zeron; 30.05.2006, 13:49.

                          Kommentar


                          • #14
                            ...als wenn man DB's benutzt, die dafür ausgelegt sind viele Daten einzutragen und zu ändern.
                            Denke das gerade dies ein Feature der DB's ist. Deshalb gibt es Transaktions-Regeln die den Zugriff auf die DB bei mehreren Nutzer steuern.

                            Weiterhin bin ich mir sehr sicher, dass das min. Betriebssystem die Datei in den RAM schiebt, sobald der Zugriff auf die DB häufig stattfindet. Denke aber auch, dass die DB's sich selbst darum kümmern.

                            Kommentar


                            • #15
                              dass es den server MEHR belastet, wenn von mir aus 500 User auf ein File auf dem server schreiben, ALS
                              Ich sehe dies auch als Feature!!!
                              Deswegen schreibe ich, dass eine DB mit diesen vielen datenänderungenBESSER klarkommt als ein filesystem, das auf dem server direkt stattfindet.

                              Kommentar

                              Lädt...
                              X