Browsergame programmieren

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

 

Donner

Betreff: Browsergame programmieren

BeitragSo, Sep 30, 2007 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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
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

BeitragSo, Sep 30, 2007 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wärs wenn du mit Javascript auch arbeitest? und einen Countdown erstellst?
 

Donner

BeitragSo, Sep 30, 2007 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

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-X

Betreff: .....

BeitragSo, Sep 30, 2007 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink
Lieber Apfel als Birne.

Smily

BeitragSo, Sep 30, 2007 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink
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

BeitragSo, Sep 30, 2007 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 22:57
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 22:59
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 23:08
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Sep 30, 2007 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Dez 02, 2007 0:23
Antworten mit Zitat
Benutzer-Profile anzeigen
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. Laughing Laughing Laughing

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group