Projekt Spieleserver geplant

ThomasX

New Member
Hallo,

ich möchte einen kleinen Spieleserver einrichten (nichtkommerziell), auf dem man zugbasiert Spiele wie Schach oder Backgammon spielen kann. Ich kenne mich etwas mit HTML, PHP und SQL aus und habe ein wenig mit EasyPHP experimentiert. Bevor ich ernsthaft mit dem Projekt anfange, hätte ich aber gern noch Antworten auf einige Fragen:

- Reicht ein VServer für ca. 5 Euro im Monat für den Anfang aus? Was brauche ich, falls der Betrieb auf dem Server später zunimmt und mehr Leistung benötigt wird? Wieviel kann es kosten?

- Was muss man tun? Einfach den Server mieten und die PHP-Skripte hochladen? Gibt es ein Tutorial, in dem erklärt wird, wie man einen solchen Server einrichtet und administriert?

- Ist PHP überhaupt eine gute Wahl dafür? Durch die Interpretation ist es ziemlich uneffizient. Gibt es Alternativen, die eher zu empfehlen sind?

- Welche rechtlichen Fragen muss ich beachten? Ich will keine Probleme bekommen, wenn z.B. mein Server gehackt und missbraucht wird oder ich selbst irgendwas rechtlich notwendiges unterlassen habe.


Ich wäre auch für Hinweise auf Artikel/Tutorials dankbar, die ich dazu lesen sollte.
 

danton

Debian User
Wie viel Leistung du benötigst, hängt zum einen davon ab, wie viele Besucher deine Spieleseite hat und wie effizient du deine PHP-Scripte programmiert hast.
Da du noch keinerlei Kenntnisse in der Serveradministration zu haben scheinst, solltest du aber erst mal mit einem Webspace-Paket anfangen - da kannst du dich komplett aufs Programmieren konzentrieren und mußt dir um die Sicherheit des Servers keine Sorgen machen - für die Sicherheit deiner PHP-Scripte bist du natürlich weiterhin verantwortlich.
Um bevor jetzt kommt: "Ich will den Server auch haben, um die Administration und Einrichtung etc. zu lernen..." - nein, dafür ist ein (v)Server im Rechenzentrum eines Anbieters nicht geeignet. Üben kannst du zuhause auf deinem PC mit einer Virtualisierungslösung deiner Wahl (Virtual Box, VMWare Player oder ggfl. sogar HyperV)
 

Orebor

He who dances with pointers
Hallo,

- Ist PHP überhaupt eine gute Wahl dafür? Durch die Interpretation ist es ziemlich uneffizient. Gibt es Alternativen, die eher zu empfehlen sind?
Effizienteres in Bezug auf die Laufzeit? Absolut.
Effizienter in Bezug auf die Entwicklungszeit? Kommt darauf an.

Du scheinst Dich ja mit PHP befasst zu haben, dann solltest Du auch erst einmal dabei bleiben. Es macht einfach keinen Sinn, wenn man das potentielle mehr an Leistung gar nicht benötigt und dafür ggfls. wesentlich länger entwickelt.

- Welche rechtlichen Fragen muss ich beachten? Ich will keine Probleme bekommen, wenn z.B. mein Server gehackt und missbraucht wird oder ich selbst irgendwas rechtlich notwendiges unterlassen habe.
Vorneweg, der übliche Disclaimer: keine Rechtsberatung, ich bin kein Anwalt und nur ein solcher kann und darf Dir eine verbindliche Auskunft geben. Falls Du diese benötigst, dann wende Dich bitte an einen solchen.

Wie bei allem was man macht: Du haftest für wenigstens grobe Fahrlässigkeit, das kannst Du auch nicht ausschließen. Von daher ist es sinnvoll, wenn Du dich *erst* mit der Administration vertraut machst und danach den Server mietest. Gut üben kann man z.B. in einer VM.

Wobei man auch sagen muss, dass hochwertiger Webspace für PHP Anwendungen erste Wahl bleibt, da hier oft eigene Datenbankserver vorhanden sind und die zugrunde liegenden Server exzellent ausgestattet sind.
 
Last edited by a moderator:

elias5000

Site Reliability Engineer
- Reicht ein VServer für ca. 5 Euro im Monat für den Anfang aus?
Vermutlich reicht auch ein Webspace für dein Vorhaben aus. Dann kannst du dich auf die Programmierung konzentrieren und musst deine Energie nicht noch auf das Betreiben eines Servers aufteilen.

Das mit dem Server guckst du dir vorerst lokal an. Bis du deinen eigenen Server im GBI* betreiben willst solltest du mindestens genug davon verstehen um die Frage nach einem Tutorial selbst als das erkennen zu können, was mindestens die Hälfte der wiederkehrenden Nutzer dieses Forums davon halten...

*) großes, böses Internet
 

frankie

New Member
- Welche rechtlichen Fragen muss ich beachten? Ich will keine Probleme bekommen, wenn z.B. mein Server gehackt und missbraucht wird oder ich selbst irgendwas rechtlich notwendiges unterlassen habe.
Da würde ich dir Raten einen RA zu konsultieren da im Internet keine Rechtliche Beratung stattfinden darf. ;)
 

ThomasX

New Member
Danke.

Dann werde ich wohl erstmal mit Webspace anfangen, wie empfohlen. Was ich später mache, wenn dessen Leistung sich als zu gering oder zu wechselhaft erweist... darüber denke ich eben nach, wenn es soweit ist. :D
 

MadMakz

Member
...
- Ist PHP überhaupt eine gute Wahl dafür? Durch die Interpretation ist es ziemlich uneffizient. Gibt es Alternativen, die eher zu empfehlen sind?
...
Nicht wenn es sich um Echtzeit-Multiplayer ohne P2P handelt. Zwar kann PHP auch Socket aber wenn es in's Threading/asynchrone Aufgaben geht macht das nicht mehr so viel Spaß mit PHP.
Uneffizient ist PHP nicht unbedingt. Es ist eben nicht für derartige Einsätze konzipiert.
3/4 aller populären Script-sprachen sind interpretiert. Das bedeutet aber nicht das sie alle ineffizient sind.

Turn-Basierend ist aber machbar, da man hier das "Polling" in größere Intervalle setzen kann.

Die meisten solcher Gamesites benutzen PHP nicht als Logik-Backend sondern nur zum ausliefern des Semi-Statischen HTML (Benutzer Login etc).
Die eigentliche Spielekommunikation wird dann mit irgend etwas anderem (Java, Python etc.) über Sockets realisiert.
 
Last edited by a moderator:

DeaD_EyE

Blog Benutzer
- Reicht ein VServer für ca. 5 Euro im Monat für den Anfang aus? Was brauche ich, falls der Betrieb auf dem Server später zunimmt und mehr Leistung benötigt wird? Wieviel kann es kosten?
Da lässt sich schwierig eine Aussage treffen, da die Anwendung nicht fertig ist. Sobald man Tests fahren kann und die Last kennt, die z.B. durch 100 Clients entsteht, kann man grob hochrechnen (keine lineare Lastkurve).

- Was muss man tun? Einfach den Server mieten und die PHP-Skripte hochladen? Gibt es ein Tutorial, in dem erklärt wird, wie man einen solchen Server einrichtet und administriert?
Lass das mit dem Server. Programmiere die PHP-Anwendung und teste diese Lokal auf deinem PC. Du wirst dich vor Anleitungen kaum retten können. Bei PHP sehe ich das eher problematisch. Ich kann zwar kein PHP, habe aber mitbekommen, dass sich in der Sprache sehr viel geändert hat und das was man früher gemacht hat, ist jetzt komplett daneben. Deswegen wirst du auch auf Tutorials stoßen, die es falsch vermitteln.

- Ist PHP überhaupt eine gute Wahl dafür? Durch die Interpretation ist es ziemlich uneffizient. Gibt es Alternativen, die eher zu empfehlen sind?
In der Webentwicklung wird man niemals eine Sprache verwenden, die vorher kompiliert werden muss. Ob du nun php, python, js oder sonst irgendeine dynamische Sprache verwendest, spielt von der Performance keine große Rolle. Der größte Teil ist IO (Datenbankabfragen, Requests, usw.). D.h. dein Interpreter wartet meistens eh die ganze Zeit auf Daten.

Du wirst sicherlich Websockets nutzen wollen/müssen. Long polling ist soweit ich weiß nicht mehr Zeitgemäß. Ein Websocket ist nichts anderes als eine persistente HTTP-Verbindung (+xor Verschlüsselung). Welche Sprache du nutzt, hängt von deinen Vorlieben und von dem Use-Case ab. Ich behaupte mal, dass du das in PHP programmieren kannst. Welche Nachteile es gibt, ist schon geschrieben worden. Ich bin eher ein Freund von Python. PHP mag ich nicht. Die aktuelle PHP-Version soll aber einiges verbessert haben.

Eins ist auf jeden Fall sicher. Wenn du bei 0815-Hostern (keinen eigenen Server/Webspace) hosten willst, brauchst du PHP und MySQL. Die wenigsten bieten Python-Support an.



Mein Tipp: Fang einfach mit dem Projekt an. Welchen Server du brauchst, ist zur Zeit unwichtig. Ansonsten verrennst du dich da in etwas.
 

Orebor

He who dances with pointers
Ich verstehe auch nicht, inwiefern kompilieren ein Hindernis sein sollte. Die Programmierung ist gegeben, ob ich die Sprache jetzt interpretiere oder kompiliere ändert ja nichts an den Möglichkeiten der Sprache an sich.

Interpretiert vs kompiliert hat andere Gründe, beeinflusst aber nicht die Mächtigkeit einer Programmiersprache (Mehr als Turing vollständig geht eben nicht). Die Vor- und Nachteile müssen wir hier aber wirklich nicht extra durchkauen, beides hat seine Berechtigung.
 

DeaD_EyE

Blog Benutzer
Dann erklär mir mal Java...
Die Frage ist, wie schnell kannst du die Änderungen in Java vornehmen. Wie hoch ist die Fehlerquote bei Änderungen. Wie viel Zeit würde die gleiche Aufgabe in einer anderen Sprache erfordern. Ich kenne leider keine Webapplikationen, die mit Java programmiert worden sind. Mag sein, dass es da Wichtige gibt. Wichtig ist letztendlich, welche Tools/Libs/Frameworks einem zur Verfügung stehen, um so einfach wie möglich zum Ziel zu kommen, ohne viel Code zu schreiben. Du kannst einen eigenen tollen Date-picker programmieren oder nimmst halt einen ultimativen Date-picker, den jemand anderes Programmiert hat.
 

Orebor

He who dances with pointers
Die Frage ist, wie schnell kannst du die Änderungen in Java vornehmen.
Kompilieren dauert bei Java nicht wirklich lange, da nur in Bytecode übersetzt wird und dann erst zur Laufzeit durch die JVM Optimierungen statt finden (ähnlich wie bei Skriptsprachen).

Wie hoch ist die Fehlerquote bei Änderungen.
Ich kenne keinen technischen Grund, warum man mit Java mehr Programmierfehler haben sollte als mit anderen Sprachen.

Wie viel Zeit würde die gleiche Aufgabe in einer anderen Sprache erfordern.
DAS ist die eigentliche Frage. Elias und mir ist nur Dein "niemals" aufgestoßen, weil es nicht stimmt. Das werden immer edge cases sein für besondere Anforderungen, die 99% der Leute - inklusive mir - im Web nicht haben werden aber es gibt sie.

Ich kenne leider keine Webapplikationen, die mit Java programmiert worden sind. Mag sein, dass es da Wichtige gibt. Wichtig ist letztendlich, welche Tools/Libs/Frameworks einem zur Verfügung stehen, um so einfach wie möglich zum Ziel zu kommen, ohne viel Code zu schreiben. Du kannst einen eigenen tollen Date-picker programmieren oder nimmst halt einen ultimativen Date-picker, den jemand anderes Programmiert hat.
Ja, das sagte ich oben ja auch: nimm das Werkzeug, mit welchem Du dich wirklich auskennst.
 

DeaD_EyE

Blog Benutzer
Ich kenne keinen technischen Grund, warum man mit Java mehr Programmierfehler haben sollte als mit anderen Sprachen.
Der Grund ist biologisch. Wenn ich z.B. Java und Python vergleiche, fällt eins sofort auf: Der Code ist viel Länger. Das bei der gleichen Fehlerrate mehr Fehler macht, sollte klar sein.
 

Orebor

He who dances with pointers
Ist Python immer und überall kürzer? Was ist mit den Standardbibliotheken von Java, hat Python die gleiche Menge an Standardalgorithmen?
Oft hängt das ja von konkreten Beispielen ab, ich habe z.B. schon genug C++ Code gesehen der absichtlich kryptisch und unnötig komplex geschrieben wurde (ohne STL, z.B.) um dann zu zeigen "C++ ist mist, muss ich zu viel schreiben".
Ob das Absicht oder Unkenntnis des Autors war sei einmal dahingestellt.

Alles was über eine Standardbibliothek abgedeckt wird ist wesentlich weniger fehleranfällig und beschränkt sich i.A. auf den Aufruf einer Funktion.

Auch wenn ich praktisch nie mit Java entwickle: die Sprache ist durch und durch gut designed und sehr mächtig. Die Standardbibliotheken sind auch gigantisch, weshalb sie in der Industrie und Lehre eine der wichtigsten Sprachen überhaupt ist.

Letztlich behaupte ich auch, dass es eher an Logikfehlern in den Algorithmen liegt, denn syntaktische Fehler findet der Compiler ohne Probleme (das ist sein Job), nur Logikfehler können nicht automatisiert erkannt werden*.

* Zumindest nicht für beliebige Programme. Für eng eingegrenzte Fälle kann man tatsächlich Tests schreiben. Es gibt aber keinen Algorithmus der für alle Algorithmen beweist, dass diese terminieren (Halteproblem).
 
Last edited by a moderator:
Top