Browsergame programmieren
Übersicht

DonnerBetreff: Browsergame programmieren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tag,
ich möchte ein kleines (!) Browsergame in PHP programmieren. Ist das möglich? Habe da noch ein paar Fragen, und zwar: Wie mache ich es, dass das Game praktisch ständig aktualisiert wird? Also wenn z.B. ein Gebäude fertig ist, wie mach ich es dann, dass der benutzer per Mail benachrichtigt wird? Weil PHP doch nur ausgeführt wird, wenn irgend ein Client danach fragt. Muss da immer ne EXE oder so im Hintergrund laufen? Wie werden gängige Browsergames gemacht? Vielen Dank D. |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dafür gitb es sogenannte cronjobs.. Und natürlich ist es möglich, ein kleines Browsergame in PHP zu programmieren. | ||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
semtex |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Cronjobs sind wohl eher schlecht geeignet(Aktualisiere wenn Haus fertig). Du musst halt einen Soll ist Wert Vergleich machen und dann bei dem jeweiligen gewünschten Zustand aktualisieren.
Ich mache sowas immer mit Anker in Seiten, wenn zb. ein neuer User eine häufig aufgerufene Seite betritt (index), wird eine andere Aktion gestartet. Desweiteren ist reines PHP sowieso nicht gerade die beste Wahl für ein Browser Game, da würde ich eher auf Java, Flash usw, setzen. Kommt aber darauf an, was es mal werden soll.. |
||
Donner |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Smily0412 hat Folgendes geschrieben: Dafür gitb es sogenannte cronjobs..
Ja, was Cronjobs sind weiß ich. Aber ich kann doch nicht jedes mal, wenn jemand ein Haus baut, einen Cronjob erstellen, der dann sobald das haus fertig ist, ein script aufruft... Wie machen das die Browsergames mit mehreren tausend Spielern??? Zitat: Du musst halt einen Soll ist Wert Vergleich machen und dann bei dem jeweiligen gewünschten Zustand aktualisieren.
Ja, aber WER soll aktualisieren? Von Hand ist das ja wohl kaum möglich und ohne einen aufrufenden Clienten (der Benutzer) kann ich ja kein PHP-Script laufen lassen... |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du machst einen cronjob, der z.B. alle 5 minuten startet und eine email verschickt, wenn in den letzten 5 min ein gebäude abgeschlossen wurde ![]() |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wärs wenn du mit Javascript auch arbeitest? und einen Countdown erstellst? | ||
Donner |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kog hat Folgendes geschrieben: Wie wärs wenn du mit Javascript auch arbeitest? und einen Countdown erstellst?
JavaScript läuft Browserbasiert - also, wenn grad niemand das Game besucht, wird auch kein JavaScript ausgeführt ![]() Zitat: Du machst einen cronjob, der z.B. alle 5 minuten startet und eine email verschickt, wenn in den letzten 5 min ein gebäude abgeschlossen wurde Wink
Wäre eine Möglichkeit, aber ist das nicht viel zu aufwändig? Das würde den Server doch total stark beanspruchen, alle 5 Minuten die DB nach neuen Häusern zu durchsuchen... |
||
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Javascript kannst du dafür ganz gut verwenden. Schau dir mal Ajax an, damit kannst du via PHP mit dem Server kommunizieren ohne die Seite neuladen zu müssen. Zudem kannst du auch die Prototype Lib verwenden, das erspart dir viel Mühe.
Ich war auch ziemlich überrascht, wie mächtig Javascript und wofür man das alles verwenden kann. Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Pdd |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn das ganze kostenlos sein soll, sind Cronjobs (5min) die beste Möglichkeit, so habe ich es auch bei meinem Browsergame gemacht. Des weiteren solltest du ein PHP-Template-System wie Smarty verwenden, um Design und Code auseinander zu halten. Wenn du ausserdem noch auf Ajax setzt, dann lege ich dir mal [url=http://www.mootools.net/]mootools[url] ans Herz. Das basiert auf Prototype aber bietet noch ne Menge mehr ![]() |
||
Lieber Apfel als Birne. |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn dein Browsergame so groß ist, dass eine DB-abfrage, welche alle 5 min durchgeführt wird, eine nennenswerte serverlast verursacht, dann kannst du dir von den werbeeinnahmen auch einen besseren server leisten ![]() |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
semtex |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dazu müsstest Du das Game mal genauer beschreiben, was dort und wie passieren soll.
Wenn User Häuser erstellen, können sie auch am schluss einen Request senden der alles aktualisiert. Ansonsten baust Du in Deiner Startseite eine Funktion ein die eine Aktualisierungs Routine durch den Besuch dieser Seite automatisch startet. Das ist als wenn ein fremder User unwissend den Startknopf drückt. Wenn Du das fast alles in Echtzeit machen willst, musst Du einen anderen Weg gehen, dazu müsste man aber mehr vom Spiel wissen. |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einfacher wäre es sicherlich, in BlitzMax oder C++ etc. ein Server-programm zu schreiben, welches auf deinem Server ständig läuft. So ists kein Problem, im Hintergrund Häuzser zu bauen ohne das der Benutzer die Seite aufrufen muss... | ||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
faggie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Junkprogger hat Folgendes geschrieben: Einfacher wäre es sicherlich, in BlitzMax oder C++ etc. ein Server-programm zu schreiben, welches auf deinem Server ständig läuft. So ists kein Problem, im Hintergrund Häuzser zu bauen ohne das der Benutzer die Seite aufrufen muss...
Mich würde da interessieren, wie man eine Verbindung zwischen BlitzMax und PHP herstellt. |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Mich würde da interessieren, wie man eine Verbindung zwischen BlitzMax und PHP herstellt.
wie genau meinst du das? in blitzbasic kannst du mittels tcp und http einfach die php-dokumente mit den daten aufrufen. in blitzplus gehts sogar einfacher ( Readfile("http::blabla.de/script.php?var=wert") ) |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
faggie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Smily0412 hat Folgendes geschrieben: Zitat:
Mich würde da interessieren, wie man eine Verbindung zwischen BlitzMax und PHP herstellt.
wie genau meinst du das? in blitzbasic kannst du mittels tcp und http einfach die php-dokumente mit den daten aufrufen. in blitzplus gehts sogar einfacher ( Readfile("http::blabla.de/script.php?var=wert") ) Ich will aber, dass PHP an BlitzMax Informationen übermittelt. Z.B. gibt der User auf einer PHP-Seite ein, dass ein Gebäude gebaut werden soll. Also ruft PHP den Herrn BlitzMax an und sagt ihm, dass er ein Gebäude bauen soll. So, nun baut Herr BlitzMax ein Gebäude. Also läuft quasi das komplette Browsergame nur im BlitzMax-Programm und PHP selbst dient lediglich dazu, dem User ein Interface zu bieten. Wie also soll PHP Informationen an BlitzMax senden? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Garnicht.
Der User fragt PHP nach Informationen, PHP generiert die, BM lädt sie per TCP herunter und zeigt sie dem User. Wenn du was verschicken willst, nimm Perl oder eine andere gleichartige Scriptsprache. Könnte man übrigens auch für die periodischen Updates nutzen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Jean |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn das Blitz Max Server Programm über einen TCP Port läuft, ist es mit PHP durch die Socket Funktionen möglich, mit dem Progamm Daten auszutauschen und zwar in beide Richtungen. Das einzige Problem an der Sache ist, dass man fast einen eigenen Server braucht um die eigene Server Anwendung zu betreiben.
Ach ja, Browsergames zu basteln scheint im Moment eine vielausgeübte Tatigkeit zu sein. Seit einigen Tagen arbeite auch ich an meinen kleinen PHP Browsergame, das jedoch ganz ohne Blitz Serveranwendung auskommt und nur mit Cronjobs läuft. ![]() ![]() ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group