Hi,
ich habe langsam aber sicher mal nachgedacht, ein BG zu schreiben. Habe auch schon in groben Linien ein Konzept. Wie ich es teilweise umsetzen soll habe ich auch schon gegrübelt. Aber mir liegen da noch 2 Fragen auf der Zunge und ich fände es toll, wenn man mir die beantworten könnte.
1. Wie bekomme ich es hin, dass das Spiel im Hintergrund weiter läuft,
auch wenn niemand online ist. Die PHP Skripte werden doch nur ausgeführt, wenn man die Seite betritt. Und wenn jemand offline ist, dann kann das Skript ja nicht ausgeführt werden und somit bleibt für ihn ja auch das Spiel stehen, oder?
2. Die Frage gleich weiterführend auf die erste: Wie geht es dann, dass jemand auch wenn er offline ist Ress bekommt?
Wär toll, wenn man mir die beiden Fragen beantworten könnte.
MfG
Engelsblut
Langsamer Beginn
gepostet vor 18 Jahre, 9 Monate von Engelsblut
gepostet vor 18 Jahre, 9 Monate von Kampfhoernchen
zu 1.
Cron-Jobs.
guckst du hier: http://de.wikipedia.org/wiki/Cronjob
zu 2.
Wir berechnen die Rohstoffproduktion genau dann nach, wenn sie benötigt wird. Natürlich kann auch im Hintergrund ständig ein Prozess mitlaufen, der die Rohstoffe aller Spieler jede Minute hochzählt.
Es gibt auch den Ansatz, die Rohstoffe nur bei einem "Event" in der Datenbank zu aktualisieren, und sie ansonsten immer durch php / Javascript hochrechnen zu lassen. Wie sinnvoll das ist, weiß ich nicht, habe ich nie ausprobiert.
Cron-Jobs.
guckst du hier: http://de.wikipedia.org/wiki/Cronjob
zu 2.
Wir berechnen die Rohstoffproduktion genau dann nach, wenn sie benötigt wird. Natürlich kann auch im Hintergrund ständig ein Prozess mitlaufen, der die Rohstoffe aller Spieler jede Minute hochzählt.
Es gibt auch den Ansatz, die Rohstoffe nur bei einem "Event" in der Datenbank zu aktualisieren, und sie ansonsten immer durch php / Javascript hochrechnen zu lassen. Wie sinnvoll das ist, weiß ich nicht, habe ich nie ausprobiert.
gepostet vor 18 Jahre, 9 Monate von Kallisti
oder einen eigenen Daemon schreiben, der im Hintergrund wacht und eben all solche Dinge uebernimmt.
gepostet vor 18 Jahre, 9 Monate von Engelsblut
Wodrin schreibe ich den? C?
*edit*
Ahh! Linux! Wunderbar! ^^
*edit*
Ahh! Linux! Wunderbar! ^^
gepostet vor 18 Jahre, 9 Monate von Krisch
Entschuldigung, aber kannst du schon programmieren?
gepostet vor 18 Jahre, 9 Monate von Engelsblut
PHP, HTML, CSS. Alles einigermassen. Das was ich mir vorgenommen habe (was kleines) geht damit!
Linux habe ich nicht geproggt, aber genutzt. Oder nutze es noch! Erfahrung habe ich da mit Gentoo, Ubuntu (Kubuntu), Mandrake und Debian!
Linux habe ich nicht geproggt, aber genutzt. Oder nutze es noch! Erfahrung habe ich da mit Gentoo, Ubuntu (Kubuntu), Mandrake und Debian!
gepostet vor 18 Jahre, 9 Monate von Feagor
Original von Engelsblut
Wodrin schreibe ich den? C?
Geht an sich in jeder Sprache, in der du n ständig laufendes Programm schreiben kannst. Für Perl mal eine kleine Anleitung, ist ziemlich gut verständlich und läßt sich auf andere Sprachen übertragen:
www.webreference.com/perl/tutorial/9/
Ich hab beispielsweise nen kleinen Daemon in Perl, der in bestimten Abständen ein PHP-Script aufruft, das dann die Berechnungen übernimmt.
Wenn die Sprache, die du verwenden willst, Prozesse nicht in den Hintergrund schicken kann oder du ein bestehendes Programm nicht umschreiben willst, schau dir mal das Programm start-stop-daemon an, das kann solche Aufgaben übernehmen. :wink:
gepostet vor 18 Jahre, 9 Monate von Engelsblut
Aha! Dafür muss ich Linux erstmal wieder installieren
Habe es aufgrund einer LAN erstmal runter geschmissen. Aber wenn ich es wieder druf habe, kann man sich das mal angucken.
Habe es aufgrund einer LAN erstmal runter geschmissen. Aber wenn ich es wieder druf habe, kann man sich das mal angucken.
gepostet vor 18 Jahre, 9 Monate von Mudder
Nur zur Info.. man kann BGs auch in PHP schreiben und das sogar auf Windows-Rechnern.
gepostet vor 18 Jahre, 9 Monate von TheUndeadable
Ich glaub, dass es sogar C-Compiler für Windows gibt...
gepostet vor 18 Jahre, 9 Monate von Engelsblut
Ach was? Das weiss ich!
Aber Cron Jobs lassen sich hervorragen über Linux managen. Und ich hatte nicht vor Ein BG in C & co zu schreiben. Hatte allenernstes vor es in PHP zu schreiben!
Engelsblut
Aber Cron Jobs lassen sich hervorragen über Linux managen. Und ich hatte nicht vor Ein BG in C & co zu schreiben. Hatte allenernstes vor es in PHP zu schreiben!
Engelsblut
gepostet vor 18 Jahre, 9 Monate von Amun Ra
Original von TheUndeadable
Ich glaub, dass es sogar C-Compiler für Windows gibt...
Ist jetzt nicht dein Ernst oder
@Eb du meintest ja du willst was kleines machen...
Also spar die Zeit irgendwelche Daemons zu schreiben oder zu testen
und nutze den Ansatz die Rohstoffe "on demand" zu berechnen.
aktuelle Zeit - letztes Update = die Zeit für die die Rohstoffe nachberechnet werden sollen
gepostet vor 18 Jahre, 9 Monate von Kampfhoernchen
Original von Engelsblut
Ach was? Das weiss ich!
Aber Cron Jobs lassen sich hervorragen über Linux managen. Und ich hatte nicht vor Ein BG in C & co zu schreiben. Hatte allenernstes vor es in PHP zu schreiben!
Engelsblut
Also Crons gehen auch unter Windows. Nur mit nem kleinen Trick. Am Produktivserver würde ich dann schon auf LAMP setzen, aber zum Entwickeln tuts auch eine WAMPE (Windows Apache MySQL PHP Experience). Mit Betonung auf dem E
gepostet vor 18 Jahre, 9 Monate von Engelsblut
Ja, da aber bald wieder Linux bei mir auf den Rechner soll, und LAMP auch auf Linux spitze läuft, kann ich es auch da machen. Ausserdem habe ich mit Linux dann auch mehr Erfahrung, weil ich da weiss, was für pakete ich für was brauche!
Engelsblut
Engelsblut
gepostet vor 18 Jahre, 9 Monate von MrMaxx
Jetzt setzt dem jungen Mann keine Flausen in den Kopf...also programmieren geht NUR unter Linux, weil Windows halt nicht Linux ist.
Ausserdem fehlen einem da die linksdrehenden Bits und genausowenig gibts da eine Kernelpanic.
Also lasss dir nichts einreden...OS2 ist das beste, was es gibt...ich mein ReactOS....verdammt....
Nur vollständigkeitshalber.....wenn du einen ServletContainer, wie Tomcat benutzt um deine Webanwendung mit Java zu schreiben brauchst du auch keine CronJobs
Mr.Maxx
Ausserdem fehlen einem da die linksdrehenden Bits und genausowenig gibts da eine Kernelpanic.
Also lasss dir nichts einreden...OS2 ist das beste, was es gibt...ich mein ReactOS....verdammt....
Nur vollständigkeitshalber.....wenn du einen ServletContainer, wie Tomcat benutzt um deine Webanwendung mit Java zu schreiben brauchst du auch keine CronJobs
Mr.Maxx
gepostet vor 18 Jahre, 9 Monate von woodworker
Original von MrMaxx
...
Ausserdem fehlen einem da die linksdrehenden Bits und genausowenig gibts da eine Kernelpanic.
...
ausserdem fehlt das sticky bit unter windows wie wollen die verhindern das die daten von der festplatte fliegen bei den hohen geschwindigkeiten ohne das stiky bit
gepostet vor 18 Jahre, 9 Monate von dan kirpan
2. Post:
so hab ich das gelöst: in der db steht der timestamp der letzten Rohstoffüberweisung... dann einfach ausrechnen, wie viele Sekunden seitdem vergangen sind, was er pro Zeitspanne produziert und dann mit einem Dreisatz runterrechnen...
3600 sekunden = 6541 Metall
52 sekunden = 94,48111 Metall, die gutgeschrieben werden, wenn die Stundenproduktion 6541 Metall ist und seit dem letzten DB-Update 52 Sekunden vergangen sind...
Original von Kampfhoernchen
...Datenbank zu aktualisieren, und sie ansonsten immer durch php / Javascript hochrechnen zu lassen. Wie sinnvoll das ist, weiß ich nicht, habe ich nie ausprobiert.
so hab ich das gelöst: in der db steht der timestamp der letzten Rohstoffüberweisung... dann einfach ausrechnen, wie viele Sekunden seitdem vergangen sind, was er pro Zeitspanne produziert und dann mit einem Dreisatz runterrechnen...
3600 sekunden = 6541 Metall
52 sekunden = 94,48111 Metall, die gutgeschrieben werden, wenn die Stundenproduktion 6541 Metall ist und seit dem letzten DB-Update 52 Sekunden vergangen sind...
gepostet vor 18 Jahre, 9 Monate von Blabbo
kleiner Tipp für den Anfang:
www.cronjob.de
www.cronjob.de