Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Womit ein Online-Spiel erstellen? (https://www.delphipraxis.net/100402-womit-ein-online-spiel-erstellen.html)

Matt83 27. Sep 2007 19:48


Womit ein Online-Spiel erstellen?
 
Hallo,

ich plane derzeit mit einem Bekannten ein Online-Browser Spiel zu entwickeln. Da ich Websites bisher nur mit PHP oder IntraWeb gemacht hab, bin ich da auch nicht so erfahren, was die heutigen Programmiersprachen und Umgebungen fürs Web so angeht.

Anfangs dachte ich noch an PHP, aber da es wahrscheinlich viele Hintergrundereignisse geben wird (Objekt kommtnach 3 Stunden an, der User hat sich aber schon ausgeloggt) wären da wohl einige Cronjobs oder so nötig. Also muss wohl etwas anderes her. IntraWeb wär eine Idee, aber irgendwie denk ich es gibt besseres.
Letztens hab ich irgendwo einen Thread über ASP.net gelesen, und werde mich darüber mal genauer informieren.

Daher hier meine Frage, was ihr mir empfehlen würdet, und vor allen Dingen - Warum? Evtl auch eine Mischung aus mehreren Systemen (Aber ich schätze, das würde erst ab einer gewissen Größe Sinn machen!)?

Zum Spiel nur so viel: Ich plane ab Mitte Oktober damit anzufangen und eine (zugegebenermaßen "billige" Version gegen Weihnachten "online" gehen zu lassen. Voraussichtlich mit 5-10 Spielern. Ab Juli nächsten Jahres würde ich dann - angenommen, es wurden bis dahin genügend Ideen implementiert - den allgemeinen Zutritt erlauben, und wäre nächstes Jahr zu Weihnachten mit 5000 Spielern - davon wohl maximal 250 gleichzeitig online - sehr zufrieden.

Falls Fragen sind, immer her damit. Ich freu mich aber besonders auf Antworten.

Grüße
Matt

PS: Zum Spiel-Inhalt will und kann ich noch nicht viel verraten ;)

Flare 27. Sep 2007 19:55

Re: Womit ein Online-Spiel erstellen?
 
Ich arbeite in allen Fällen mit PHP und MySQL (und in dem Zusammenhang natürlich mit HTML, CSS und JavaScript).

Deine im Hintergrund laufenden Prozesse kannst du über Pseudo-Cronjobs laufen lassen. Also jedes mal wenn die Seite aufgerufen wird wird geschaut, ob ein Prozess überfällig war und wird dann ausgeführt. Ich glaube das ist auch eine gängige Alternative zu Cronjobs.

Ich arbeite ja auch selber derzeit an einem Online-Spiel und wenn du in einem Jahr wirklich 5000 user hast, würde ich dich dafür beneiden :thumb:


Flare

borncrush 27. Sep 2007 20:01

Re: Womit ein Online-Spiel erstellen?
 
Hallo,

also ich hab zwar noch nie Spiele programmiert und in PHP kenne ich mich erst recht nicht aus, aber das folgende Problem wäre wohl mit jeder Sprache machbar:

Zitat:

Anfangs dachte ich noch an PHP, aber da es wahrscheinlich viele Hintergrundereignisse geben wird (Objekt kommtnach 3 Stunden an, der User hat sich aber schon ausgeloggt) wären da wohl einige Cronjobs oder so nötig.
Also speicher doch einfach ab, wann das Objekt ausgelöst wurde und ab welchen Zeitraum ein Event eintreten müsste, etwa könnte dies so aussehen (Tabellenstruktur):

Code:
id   objektname   startzeit           eventdauer
4     SonneScheint 2007-12-12 13:14:23  180
6     MusikSpielt  2007-12-12 13:14:23  420
-Die Felder "id" und "objektname" sind ja klar.
-Startzeit ist der Moment der Auslösung
-Eventdauer ist die Dauer des "Events" in Minuten

Dein PHP-,Delphi-,etc-Programm merkt also momentan ist es 17:23:21, dass heißt die "SonneScheint nicht mehr", aber die "MusikSpielt noch".

Dies ist nur ein Beispiel, dies muss noch bei weitem ausgebaut werden.

Gruß

Matt83 27. Sep 2007 20:29

Re: Womit ein Online-Spiel erstellen?
 
Ok, an die Pseudo-Cronjobs hab ich auch gedacht, allerdings ist mir das nicht wirklich recht. Da gibt es bestimmt einiges an Fehlervermeidung - gerade bei zeitabhängigen Aktivitäten - zu beachten. In dem Fall würd ich dann lieber ein externes Programm laufen haben, was alle Events zugeschcikt bekommt, und dann bei jeder Ereigniszeit halt etwas macht.
Die Methode würde ich davon noch am ehesten Favorisieren, zumal der Cronjob dann nie leerläuft, bzw ein User nicht auf einmal auf x-tausend Ereignisse warten muss, für die er nichts kann. Gut man könnte auch die Ereignisse beschränken pro PHP Aufruf, aber das würde sogar einen Überlauf provozieren, wenn genügent zusammenkommen, aber kaum Aufrufe sind.
Und eine Mischung im richtigen Gleichgewicht finden, ist bestimmt auch nciht so einfach.

Und zu guter letzt: Eine neue Sprache lernen wär doch auch mal wieder was ;)

Zitat:

Ich arbeite ja auch selber derzeit an einem Online-Spiel und wenn du in einem Jahr wirklich 5000 user hast, würde ich dich dafür beneiden
Ich sagte doch ein Jahr und 3 Monate ;) Aber ich glaub kaum, dass ich das schaffen werde. Und wenn doch bin ich sogar mehr als "nur" sehr zufrieden ;)

Florian H 27. Sep 2007 20:39

Re: Womit ein Online-Spiel erstellen?
 
Die PHP-MySQL-Kombination wäre auch meiner Ansicht nach das Naheliegendste.

Was spricht denn gegen einen Cronjob? Gibs doch für 0,50Eur/Monat bei jedem vernünftigen Hoster [jedenfalls zahle ich so viel und der wird zuverlässig und pünktlich alle 5 Minuten ausgeführt :) ]

Edit: und nicht ganz so zuverlässig aber dafür kostenlos gibts die ja bei cronjob.de [oder auf anderen free-CJ-Seiten].

Matt83 27. Sep 2007 20:51

Re: Womit ein Online-Spiel erstellen?
 
Hi, ja wenn es um alle 5 Minuten geht, dann mag das vielleicht ok sein. Ich habe auch im allgemeinen nichts dagegen. Aber wie gesagt geht es um ein Spiel. Und wenn (ich bin jetzt mal bei diestaemme) mein Dorf angegriffen wurde, und zwischen diesem Angriff und dem nächsten (Pseudo-)Cronjob schickt der Gegner alle seine Einheiten weg, ist das schon nicht mehr schön, wenn man niemanden zum zerstören hat. Gut man könnte die Zeit zurückdrehen, aber dann ist der Gegner wieder benachtteiligt, weil er doch denkt, seine Einheiten sind auf einem Feldzug und nicht im Grabe.

MySQL werd ich wohl als Datenbank nehmen, aber bei PHP bin ich mir wie gesagt aus solchen Gründen zumindest unsicher. Nur einen eigenen http-server werd ich bestimmt nicht bauen :P

Der Server und die Preise spielen erstmal noch keine Rolle, da ich erstmal nur Dynamic DNS zu mir nach Hause benutzen werde, solange wir weniger als 10 Spieler sind.

tr909 30. Sep 2007 13:12

Re: Womit ein Online-Spiel erstellen?
 
Also ich denke mal für das was du willst brauchst solltest du eine Server-Software entwickeln. Die läuft dann ständig und kümmert sich um alle Ereignisse und generiert den Output für die Clients. (Entweder Client-Software oder Browser). Kannst ja mal hier gucken : http://www.worldforge.org/ (ein Open Source MMORPG)

Gruß
tr909


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz