Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.06.2014, 11:40

Browsergame - Fragen zu Server, Lasttests und Co.

Hallo zusammen,

und zwar wende ich mich hier mal eben an die Profis unter euch, da ich selbst ja auch nur ein Hobbyentwickler bin und vor allem in Sachen "Server & Co." noch keine richtige Peilung habe.

Und zwar bin ich seit März 2014 nun dabei ein eigenes Browsergame zu entwickeln (HTML, JavaScript, CSS sowie PHP & MySQL), welches, wie man an den Programmiersprachen schon erkennt, ein Browsergame im klassischen Stil wird ohne großartigen Firlefanz wie 3D Grafik und Co. :P
Bisher macht es auch echt gute Fortschritte und ich peile so gegen Ende dieses Jahres bereits die Alpha-Phase an, in der dann erstmal ein geschlossener Benutzerkreis das Spiel das erste Mal in die Mangel nehmen kann. :)

Da ich gerne voraus plane, stelle ich mir allerdings jetzt schon folgende Fragen:
1.) Was für ein Server sollte her? vServer? Dedicated Server? Evtl. verschiedene Server für DB & Frontend? Wie stark sollte der Server sein?
2.) Selbst wenn die Alpha-Phase gut über die Runden laufen sollte, hat in dieser Zeit ja nur ein bestimmter Benutzerkreis getestet. Man kann daraufhin nicht einschätzen - wie wird sich das Spiel bei x Tausend Usern verhalten? Gibt es da irgenwelche Methoden und Techniken für einen Lasttest? Ich denke, dass dieser sogar noch VOR der eigtl. Serverauswahl stattfinden sollte, damit man weiß WAS für einen starken Server man benötigt, oder?
3.) Was sollte man im Serverbereich sonst noch so beachten?
4.) Gibt es spezielle Serveranbieter, die ihr empfehlen könnt? Privat bin ich z.B. Kunde bei 1&1 - sind die Server sowie Support dort ausreichend? Ich habe z.b. gelesen, dass Strato oder HostEurope in diesem Bereich besser sein sollen?!

Ich freue mich auf eure Hilfe. :)


Viele Grüße,
Kelturio

Tobiking

1x Rätselkönig

  • Private Nachricht senden

2

12.06.2014, 13:13

Es gibt Tools wie z.B. Apachebench, mit denen man einfach mal eine gewisse Anzahl an Requests erzeugen kann und dazu Statistiken bekommt. Da kannst du dir mal anschauen wie sich dein Browsergame mit wachsender gleichzeitiger Spielerzahl verhält und auch mal profilen wo der Flaschenhals sitzt.

Ansonsten würde ich nicht davon ausgehen, dass dir die Spieler am ersten Tag den Server einrennen. Fang vielleicht mit einem kleinen Webspace oder VServer an und wenn du siehst das es nicht mehr reichen wird, kannst du immer noch was größeres nehmen, DB auf einen separaten Server umziehen etc.

3

12.06.2014, 14:16

ApacheBench ist schon mal ein guter Ansatz, um die Performance zu testen, vielen Dank für den Tipp. :)

Tim Bureck

Frischling

Beiträge: 26

Wohnort: Krefeld

Beruf: Softwareentwickler

  • Private Nachricht senden

4

12.06.2014, 15:16

Ich stimme Tobi da absolut zu. Solange du kein Riesenbudget in Marketing investierst, wird ein kleiner Server anfangs genug sein. Da reicht dann sicherlich auch ein mittlerer vServer von HostEurope (, die ich uebrigens sehr empfehlen kann). Auch verschiedene Server fuer einzelne Teile des Games braucht man erstmal nicht, allerdings macht man nichts falsch, wenn man das Game so programmiert, dass es das auch kann, wenn es denn spaeter doch mal gebraucht wird.

Fuer einen Belastungstest eignet sich meiner Meinung auch eine Open Beta vor dem Release sehr gut. Damit suggeriert man den Spielern, dass das Spiel noch nicht stabil laeuft und kann ein paar Sachen testen. Ganz nebenbei kann man seine Userbase ein bisschen aufbauen und einen kleinen Lasttest unter realen Bedingungen durchfuehren. Mit ein bisschen Monitoring sieht man dann ganz gut, an welchen Stellen man noch ein bisschen schrauben muss.

5

12.06.2014, 15:55

@Tim Bureck:

Stimmt, da hast du Recht. Eine Open Beta stellt ja sozusagen ebenfalls eine Testphase dar. :)
Wobei es sich in Open Betas ja oftmals so handhabt, dass die Spieler ihren Spielstand mit Start der eigentlichen Version des Spiels einfach weiterspielen können ohne einen Reset zu fahren.
Bei einigen Spieleanbietern find ich es auch irgendwie übertrieben mit den Open Betas, wenn man mal sieht wie lange sich manche Spiele in einer Open Beta befinden, ohne das mal nen richtiger Release abzusehen ist. :P

Du selbst nutzt anscheinend auch HostEurope, wie ich heraus lese? Was für einen Server hast du dort genau und wie viel Last / Zugriffe etc. muss dieser so bewältigen? Bist du mit dem Support dort auch vollkommen zufrieden?

Tim Bureck

Frischling

Beiträge: 26

Wohnort: Krefeld

Beruf: Softwareentwickler

  • Private Nachricht senden

6

12.06.2014, 16:58

Das mit den Open Beta's empfinde ich auch manchmal so, aber nur weil so eine Betaphase von einigen seltsam genutzt wird, heisst das ja nicht, dass man das auch so machen muss. ;)

Ich habe bei HostEurope einen vServer (den es allerdings so nicht mehr gibt), allerdings laeuft da kein Browsergame drauf und von Last kann man bei den paar Dingen darauf auch nicht sprechen. ;) Der Support ist allerdings klasse, man wird per E-Mail ueber Wartungsarbeiten informiert, die einen treffen koennten. Bei Ausfaellen wird man stets ueber den derzeitigen Status der Arbeit informiert (sowohl per E-Mail als auch im Kundenbereich). Bevor du nun Angst bekommst, es gab bisher nur einen groesseren Ausfall in den letzten 3 Jahren.

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

7

12.06.2014, 18:39

Mir fallen hier zweit unterschiedliche Ansaetze ein:

a) Du faengst mit nem kleinen Prototypen an und machst dir nicht viel Gedanken um Skalierbarkeit. Der Vorteil hier ist, dass du sehr schnell vorzeigbare Ergebnisse hast, und schon frueh mit einigen Spielern spielen kannst. V-Server kann man in einem gewissen Rahmen noch gut skalieren (man bucht einfach etwas mehr CPU/Ram dazu und hat sofort etwas mehr Performnance).
Der offensichtliche Nachteil ist, dass du ab einer Gewissen Userzahl ein Problem hast. Du musst auf einen neuen Server portieren oder deine gesamte Serverseite neu schreiben um Skalierung zu unterstuetzen.

b) Du programmierst von Anfang an mit unterstuetzung fuer Skalierbarkeit. D.h. du baust deine Anwendung so, dass sie auf mehrere V-Server verteilt werden koennen, die Datenbanken verteilt werden koennen, etc. Das ist alles andere als einfach und macht die Entwicklung um ein vielfaches komplexer.
Alternativ koenntest du jedoch auch auf Cloud Dienste setzen (Google App Engine, https://www.heroku.com/, Microsoft Azure, etc). Der Nachteil an den Diensten ist, dass du nicht mehr PHP/MySQL nutzen kannst, sondern auf die API des Cloud Dienstes angewiesen bist, welche dir jedoch quasi automatisch Skalierbarkeit bringen. Dieser Ansatz ist mehr Aufwand in der Entwicklung (lernen neuer APIs/Sprachen oder komplexe Entwicklung in PHP) aber du kannst ohne viel Aufwand auf beliebige Nutzerzahlen skalieren.

Welchen Ansatz du hier benutzen moechtest kommt denke ich auf deinen Fokus an. Wenn du dein Browsergame moeglichst flott ans laufen kriegen willst um Feedback von Spielern zu bekommen und zu sehen ob es erfolgreich sein kann, dann wuerde ich mit a) anfangen und spaeter auf b) umschwenken.

Wenn du Spass an Serverseitiger Entwicklung hast und dir der zusaetzliche Entwicklungsaufwand nichts ausmacht, dann ist b) ne gute option... man lernt verdammt viel darueber wie man Webseiten ordentlich skaliert.

Werbeanzeige