Progge gerade nen Browsergame, und bräuchte mal hilfe... |
böner
Otto-Normal-Poster Threadstarter
Beiträge: 62 |
Ich programmiere seit eineigen Wochen ein Browsergame. Bin auch schon ziemlich weit gekommen.
Ich stehe jetzt allerdings vor einem Problem, bei dem ich hilfe brauche.
Bisher hab ich das immer so gemacht,das sobald sich jemand einloggt ausgerechnet wird, wieviel Rohstoffe er hat, wieviele Schiffe gebaut wurden, und welche Gebäude fertig sind. Nun gibt es dabei allerdings das Problem das wenn z.B. spieler 1 spieler 2 angreift, das die Schiffe die Spieler 1 im bau hat(und zum teil vielleicht schon fertig sind) nicht mitkämpfen.
Ich bräuchte also eine möglichkeit das die datenbank sich andauernd selber updatet !
Wie kann man das realisieren ?
PS: Oder kennt jemand ne andere möglichkeit ?
Wie wird das eingentlich bei anderen Browsergames gehandhabt ? Weiß das zufällig jemand ?
Bitte helft mir, wenn ich das nicht irgendwie gebacken kriegen, war die ganze arbeit umsonst !
Gruß Böner
|
 Profil
Editieren
Zitieren
|
Philipp Gérard
Foren-Team
Beiträge: 1502 |
cronjobs.
---
Arbeit ist das Feuer der Gestaltung. - Marx
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
bastir
Mausakrobat
Beiträge: 150 |
Schau dir dazu mal webcron.org an.
Dort kannst du kostenlos cronjobs einrichten, falls dein Provider keine Cronjobs anbietet.
Dort habe ich auch einige Scripte.
Wo finde ich denn dein Spiel?
so long
---
Man kann nicht alles wissen, man muß nur wissen wo es steht!
|
 Profil
Website
Editieren
Zitieren
|
KeyLF
Forenheld
Beiträge: 866 |
wieso cronejobs? er kann doch bei jedem login das script ausführen?!
|
 Profil
Editieren
Zitieren
|
böner
Otto-Normal-Poster Threadstarter
Beiträge: 62 |
wie geht den das mir den cronjobs ?
geht das auch ohne das traffic verbraucht wird ?
wenns ne leere html-seite ist, wo weder was hin noch was zurück muss, dürfte das ja net viel sein !
//Wo finde ich denn dein Spiel?
is noch nicht online !
bin ja noch net fertig, auch wenn es schon halb läuft !
hab auch noch gar keinen server !
|
 Profil
Editieren
Zitieren
|
bastir
Mausakrobat
Beiträge: 150 |
Das kann er sicher, aber so weit war böner ja auch schon.
Das Problem bei ihm ist doch, daß in der Zwischenzeit (bis zum nächsten login) schon weitere Einheiten fertig sind, die in die Schlachten mit einbezogen werden könnten.
Dazu braucht er nun mal cronjobs, die bspw. stündlich diesen job erledigen.
Meines Erachtens nach führt an cronjobs kein Weg vorbei.
so long
---
Man kann nicht alles wissen, man muß nur wissen wo es steht!
|
 Profil
Website
Editieren
Zitieren
|
bastir
Mausakrobat
Beiträge: 150 |
böner schrieb am 02.03.2004 20:43
wie geht den das mir den cronjobs ?
|
Ein cronjob ist nichts weiter, als ein serverseitiges Programm, welches zu deinem vorher festgelegten Zeitpunkt ein php-Script "anstößt" etwas zu tun.
Du erstellst z.Bsp eine cron.php in der du von allen usern den Update-Prozess durchlaufen lassen kannst (bspw. per for/while Schleife)
Diese cron.php läßt du dann von einem cronjob stündlich anstoßen, so daß dieses Script stündlich die aktuellen Fortschritte in die Datenbank schreibt.
geht das auch ohne das traffic verbraucht wird ? |
Es wird traffic verbraucht aber nur sehr wenig, da ja eigentlich nur auf dem Server Prozesse ausgeführt werden.
so long
---
Man kann nicht alles wissen, man muß nur wissen wo es steht!
|
 Profil
Website
Editieren
Zitieren
|
böner
Otto-Normal-Poster Threadstarter
Beiträge: 62 |
stündlich ? am besten wäre permanent(natürlich net möglich *gg*) aber einmal pro minute wäre schon gut ! geht das ?
Gruß Böner
|
 Profil
Editieren
Zitieren
|
Philipp Gérard
Foren-Team
Beiträge: 1502 |
Oder mit Timestamps arbeiten...das System müsste also bei Angriffen usw. ausrechnen, wie viele Einheiten des Spielers schon verfügbar sind - etc. Im Prinzip auch ohne Cronjobs machbar, bequemer ist es aber mit einem Cronjob.
---
Arbeit ist das Feuer der Gestaltung. - Marx
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
bastir
Mausakrobat
Beiträge: 150 |
minütlich?
Meines Erachtens nach ist das dann etwas zu viel des Guten.
Solltest du irgendwann mal sehr viele User haben (nehmen wir das einfach mal an)
wirst du damit sehr viel Rechenleitung beanspruchen.
Wo ist denn das Problem, wenn die Dinge halt nur stündlich aktualisiert werden.
Ist doch besser, als wenn der User nach 2 Wochen erst wieder kommt und dann erst seine 256 Einheiten gutgeschrieben bekommt
Belasse es bei stündlich, so kenne ich es auch von anderen Browsergames!
---
Man kann nicht alles wissen, man muß nur wissen wo es steht!
|
 Profil
Website
Editieren
Zitieren
|
böner
Otto-Normal-Poster Threadstarter
Beiträge: 62 |
ich rechne momentan für schätzungen immer mit 1500 Spielern !
jede stunde, müsste mal überlegen, wie ich das hinkrieg !
wie genau geht den das jetzt mit dem cronjob ?
wenn ich jetzt z.B. jede stunde die datei cron.php auf meinem apache-server zuhause ausführen will, was muss ich dafür tuen ?
Gruß Böner
PS: Ihr seid echt schnell mit dem antworten in diesem Forum. Respekt !!!
|
 Profil
Editieren
Zitieren
|
bastir
Mausakrobat
Beiträge: 150 |
Falls du es bei webcron.org machen möchtest, melde dich dort kostenlos an und erstelle einen "neuen Task"
Dort gibst du dann deine URL zu deiner cron.php (bspw. http://deinedomain.tld/cron.php) ein und das das ganze stündlich an jedem Tag ausgeführt werden soll.
Das script führt dann jede Stunde die cron.php aus.
In der Cron.php steht wie gesagt genau das drin, was sonst ausgeführt werden sollte, wenn der User sich einloggt hat, dabei dann jedoch für alle user zusammen.
so long
---
Man kann nicht alles wissen, man muß nur wissen wo es steht!
|
 Profil
Website
Editieren
Zitieren
|
böner
Otto-Normal-Poster Threadstarter
Beiträge: 62 |
ne, ich meine wie ich das jetzt auf meinem server zuhause tuen kann !
|
 Profil
Editieren
Zitieren
|
bastir
Mausakrobat
Beiträge: 150 |
zu hause vielleicht per taskmanager von windows, es sei denn du hast linux, wo du auch cronjobs benutzen kannst, aber dann würdest du wahrscheinlich die Cronjobs kennen.
Zum testen reicht es aber auch aus, wenn du die cron.php von hand ausführst!
so long
---
Man kann nicht alles wissen, man muß nur wissen wo es steht!
|
 Profil
Website
Editieren
Zitieren
|
böner
Otto-Normal-Poster Threadstarter
Beiträge: 62 |
ok, danke ! werd mal sehen. wenn's noch mehr probleme gibt, meld ich mich nochmal
Gruß Böner
|
 Profil
Editieren
Zitieren
|