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
Richtig, die meisten Browsergames werden ich PHP geschrieben. Ich möchte aber ein Socket basiertes Game schreiben. Der Client ist nur ein Browser, das ist aber uninteressant.PHP ist nicht annähernd so schnell wie es C++ sein kann. Das liegt allein schon daran, dass PHP eine interpretersprache ist, C++ wird kompiliert. In den C++ compilern steckt viel wissen und arbeit, weshalb sie heutzutage extrem gut optimieren können. PHP interpretiert standardmäßig immer wieder neu und hat deshalb auch garkeine zeit sich dabei jedesmal gedanken zu machen, was irgendwelche optimierungen angeht.
Allerdings weiß ich nicht, ob C++ als backend eines browsergames so das wahre ist. Ich behaupte mal 90% aller browsergames verwenden dafür PHP, die performance sollte normalerweise ausreichend sein, wenn du halbwegs vernünftig codest.
Da du nach Vor-/Nachteilen gegenüber PHP fragst, nehme ich mal an, dass du bisher noch nicht mit C++ programmiert hast. Daher meine Frage: Hast du bereits mal in einer anderen Sprache als PHP programmiert? Wenn nicht, wird der umstieg auf C++... aufwändig. Meiner Meinung nach ist der aber auch nicht nötig. PHP bringt sozusagen schon alle werkzeuge mit, was du für so ein browsergame-backend benötigst. Bei C++ stehst du da mit leeren Händen da, oder musst dir zumindest erstmal eine bibliothek suchen, die dir diese werkzeuge bereitstellt (z.B. zugriff auf eine datenbank).
Gibt es denn bereits einen wirklichen Performance-engpass, oder willst du einfach nur so zu C++ wechseln, weils halt schneller wäre?
Was das übertragen der Spielerpositionen angeht: dann schickst du halt nur die positionen der spieler, die in der nähe sind... wo ist da dein problem?
Ja ich bin mal davon ausgegangen, dass dein Spiel natürlich keine mehrere tausend Spieler hat, sonst ist das natürlich nicht umbedingt die günstigste Variante.
Also zum einen würd ich ma vorschlagen du schaust dir kleinere Online-Spiele an. WoW als Vorbild bzw. Orientierung zu nehmen ist meist nicht besonders gut. (im Hobby-Entwickler-Bereich)
Aber ich denke mal nicht, dass es bei WoW eine Liste / ein Array gibt AlleSpielerAufDemServer[] die dann auch noch alle Informationen zu jedem einzelnen Spieler bereithält.
Du kannst deine Spielwelt ja in Bereich (Instanzen) einteilen. Aber ich denke wirklich nur den sichtbaren Ausschnitt zu betrachten ist die gängige Methode.
Gruß
SaRu_
Community-Fossil
Wird denn ein spürbarer Unterschied zwischen C++ und PHP als Backend bei 100 Spielern zu merken sein?
Werbeanzeige