Warum PHP über C # für PBBG? [geschlossen]

10

Ich bin ein C # -Entwickler und wollte ein Hobbyprojekt starten, um ein dauerhaftes browserbasiertes Spiel (PBBG) zu erstellen. Ich arbeite mit C #, MSSQL und Angular und dachte, ich würde diese Techniken auch für mein Hobbyprojekt verwenden.

Als ich anfing, nach Do and Donts und Tipps zu suchen, stellte ich fest, dass viele Projekte PHP verwenden und ich mit C # tatsächlich keine PBBG gefunden habe, was ich sehr seltsam finde. Es scheint, als könnte der Stack, mit dem ich arbeite (C #, MSSQL, Angular), zu einer PBBG passen.

Der einzige Grund, warum ich mir vorstellen kann, dass C # nicht verwendet wird, ist der hohe Preis von Visual Studio und die Tatsache, dass es kein Open Source war.

Gibt es einen anderen Grund oder bin ich nur schlecht darin, Projekte zu finden, die C # verwenden? Oder kann es sein, dass ich nur schlecht in meiner Arbeit bin und nicht weiß, dass dieser Stack nicht gut für PBBG ist?

Kurus
quelle
3
Auch die Antworten werden meinungsbasiert sein. Einige Leute mögen C # einfach nicht.
Almo
6
@Almo Und andere Leute (wie ich) verabscheuen PHP. Aber ich glaube, ich konnte trotzdem eine neutrale und hilfreiche Antwort schreiben.
Philipp
Ich denke, Sie werden feststellen, dass das Alter hier einer der Faktoren ist, die dazu beitragen. PHP ist viel älter und tiefer verwurzelt als C #.
Pharap
4
"Der hohe Preis von Visual Studio" - 2017 Community Edition: 0. SEHR teuer.
TomTom
1
Was meinst du mit "hohen Preis von Visual Studio"? Es ist schon eine Weile kostenlos.
user1306322

Antworten:

16

PHP hat den Vorteil, dass es von billigen Webhostern sehr häufig unterstützt wird. Sie können einen gemeinsam genutzten LAMP-Webspace (Linux, Apache, MySQL, PHP) für Erdnüsse mieten. Dieser Webspace kann auch Ihre Website und den Spieleclient hosten. Die Einrichtung der meisten PHP-Anwendungen ist ebenso einfach. Kopieren Sie einfach die Dateien auf den Webserver und Sie sind fertig. Dies macht es sehr einfach und bequem, einen Testserver zum Laufen zu bringen.

AC # gameserver hingegen kann komplizierter sein. Sie müssen einen tatsächlichen Rootserver mieten, der teurer ist und viel mehr Arbeit und Know-how erfordert, um ordnungsgemäß einzurichten und zu warten. Sie haben nicht geschrieben, ob C # eine ASP.NET-Anwendung bedeutet, die auf einem Webserver ausgeführt wird (eine ziemlich einfache Lösung für eine PBBG, wenn Sie mich fragen) oder eine eigenständige C # -Anwendung, die als separater Prozess ausgeführt wird (etwas unorthodox, funktioniert aber möglicherweise ganz gut, wenn Sie ein aktionsorientierteres Spiel haben). Wenn Sie letzteres meinen, müssen Sie auch einen Webserver installieren oder mieten, um Ihre Website und die clientseitigen Teile Ihres Spiels zu hosten.

Dieser zusätzliche Aufwand kann für die meisten Hobbyentwickler ein Hindernis sein, was ein guter Grund sein kann, sich für PHP zu entscheiden. Aber wenn ein Hobbyist mit seinem Spiel erfolgreich ist und sich dazu entscheidet, dies professionell zu tun, hat er bereits seine vorhandene Codebasis und wird sicherlich nicht bei Null anfangen. Sie behalten also ihren LAMP-Technologie-Stack bei, obwohl ihre anfänglichen Bedenken hinsichtlich der Auswahl nicht mehr gültig sind (wenn Sie eine ernsthafte Operation auf einem LAMP-Stack ausführen, werden Sie früher oder später einen Punkt erreichen, an dem Shared Hosting ihn nicht mehr schneidet und Sie benötigen Ihre eigenen Server).

Denken Sie jedoch daran, dass Sie bei Betrachtung der Gesamtprojektkosten für die Entwicklung einer PBBG in der Regel feststellen werden, dass die Kosten für das Hosting und die Verwaltung von Servern während der Entwicklungsphase nur einen winzigen Bruchteil des Entwicklungsbudgets ausmachen.

Ihre Entscheidung, welche Technologie Sie verwenden möchten, sollte also von welcher Technologie abhängen. So können Sie in kürzester Zeit das beste Spiel erstellen. Die Auswahl der besten Werkzeuge, die man für Geld kaufen kann (am besten für Sie und Ihr Projekt ), kostet Sie kein Geld, sondern spart Geld.

Philipp
quelle
7
Ein Rootserver ist für C # -Webanwendungen nicht unbedingt erforderlich. Siehe beispielsweise Microsoft Azure.
Michael Pittino
11
Mit Visual Studio Code und / oder Visual Studio Community sind die Einstiegskosten für die Tools für C # sicherlich kein Hindernis mehr.
0xFF
1
@Erik Wenn Sie dagegen unterdurchschnittliche Tools verwenden, kann es länger dauern, bis Sie feststellen, dass Ihre Spielidee nicht funktioniert, sodass Sie mehr menschliche Arbeit verlieren. Noch schlimmer: Möglicherweise stellen Sie nach 100 Stunden fest, dass Ihr Spiel nicht mit den von Ihnen ausgewählten unterdurchschnittlichen Tools erstellt werden kann, sondern mit teureren Tools, die Sie dann ohnehin kaufen müssten (dort gewesen wären).
Philipp
2
@ TylerH Stimmt, obwohl der C # -Compiler selbst kostenlos ist (zumindest seit Roslyn), frage ich mich, wo sie die Grenze ziehen.
0xFF
4
Und tatsächlich von VisualStudios eigener Webseite für die Community Edition: "Jeder einzelne Entwickler kann mit Visual Studio Community seine eigenen kostenlosen oder kostenpflichtigen Apps erstellen."
0xFF
5

Die anderen Antworten sind richtig, aber es gibt einen historischen Faktor, der nicht erwähnt wurde.

Als ich anfing, nach Do and Donts und Tipps zu suchen, stellte ich fest, dass viele Projekte PHP verwenden und ich tatsächlich keine PBBG mit C # gefunden habe, was ich wirklich seltsam finde.

Bis vor ein paar Jahren gab es eine PBBG-Entwicklergemeinschaft, die hauptsächlich in zwei Foren existierte: BBGameZone und MakeWebGames, beide überwiegend mit PHP-Programmierern besetzt. Neulinge, die nicht wussten, wie man ein Spiel macht, wurden auf die fantastischen Tutorials auf BuildingBrowserGames.com verwiesen, die alle in PHP waren. Der Begriff "PBBG" stammt hauptsächlich aus Spielen von Leuten, die mit diesen beiden Foren verbunden sind. Es wurde versucht, den Begriff so bekannt zu machen, dass das Genre einen erkennbaren Namen hat, nach dem die Spieler suchen und hoffentlich den Niedergang des Genres verlangsamen können. Es ist kein Wunder, wenn Sie nur PHP erhalten, wenn Sie nach dem Begriff suchen.

Es scheint, als könnte der Stapel, mit dem ich arbeite (C #, MSSQL, Angular), zu einer PBBG passen.

Der einzige Grund, warum ich mir vorstellen kann, dass C # nicht verwendet wird, ist der hohe Preis von Visual Studio und die Tatsache, dass es kein Open Source war.

Ich denke, Sie sind zu 100% in Ordnung, wenn Sie C #, MSSQL und Angular verwenden. Sie werden feststellen, dass die meisten PHP-Engines veraltetes PHP4 oder PHP5 sind.

Die Leute von BBGameZone waren größtenteils gegen die Verwendung von Engines (jeder schrieb seine eigene Engine, einschließlich mir). Die MakeWebGames-Leute bemühten sich, neue PHP-Engines zu installieren (McCodes war ihre wichtigste alte Engine und NWE (New Worlds Engine) wurde in Betracht gezogen als die wahrscheinliche neue, die auf halbem Weg gemacht wurde)

Hier ist ein Google-Dokument mit einem Engine-Vergleich von vor einigen Jahren, in dem McCode / NWE / ezRPG / GL-Skript verglichen wird: https://docs.google.com/spreadsheets/d/1WM3axFhYaAtjiKd1KRwibx9jEegwjwCJNhQmXP_jzss/pub?single=trout&

Es gab in der Vergangenheit Bemühungen, die alte Community wieder zusammenzubauen, aber bisher nicht viel Glück: https://www.reddit.com/r/PBBG/comments/6r34vi/announcing_pbbgsite/


Ich denke, Sie werden in Zukunft 100% OK sein, wenn Sie einen C # -, MSSQL- oder Angular-Stack verwenden. Denken Sie jedoch daran, dass Sie wahrscheinlich die erste Person sind, die eine PBBG mit Ihrer Toolchain schreibt, und dass Sie alles selbst erstellen müssen, ohne Beispiele aus der Vergangenheit blicken zurück auf.

Denken Sie daran, dass das Genre gerade im Sterben liegt, aber alles, was es braucht, sind ein oder zwei beliebte Spiele, um sich wiederzubeleben. Wenn Sie glauben, dass Sie dies in C # tun können, werde ich für Sie Wurzeln schlagen.

IKM
quelle
1
  • Browser-basierte Spiele stiegen zu einer Zeit, als C # nicht sehr beliebt war, PHP jedoch. So viele Projekte werden in diesen Sprachen durchgeführt, viele Tutorials wurden für diese Sprache geschrieben und viele Experten in solchen Spielen haben PHP als Hauptsprache übernommen und wählen es daher standardmäßig aus.
  • PHP wird als eine Sprache angesehen, die sich leicht von kleinen bis mittelgroßen Anwendungen skalieren lässt, während C # (und Java) häufig als vergleichsweise schwere Sprachen angesehen werden, die für große Geschäftsanwendungen geeignet sind. Die meisten PBBG würden in die Kategorie der kleinen bis mittelgroßen Projekte fallen (zumindest anfangs / das Kernspielkonzept ohne angesammelten Code-Müll).
  • LAMP-Server waren einfach zu haben, viele Hobby-Entwickler hatten sowieso nur einen, C # -Server waren teurer; Dies gilt bis zu einem gewissen Grad, aber nicht mehr so ​​stark
  • PHP scheint sich besser für den Job zu eignen: Es wurde entwickelt, um auf einen Webanruf mit HTML-basierten Inhalten / Daten zu reagieren, genau das, was Sie für das Backend eines Browsergames benötigen (abhängig von der Fantasie). C # kann das auch, fühlt sich aber möglicherweise aufgeblähter (oder mächtiger).
  • Es war und ist wahrscheinlich einfacher, billige PHP-Programmierer als billige C # -Programmierer zu finden. Dies entspricht der Tatsache, dass PHP einfach "zu erlernen" ist. Daher ist es oft die Goto-Sprache, um schnell ein grundlegendes "Website-Ding" zum Laufen zu bringen (und dann einfach diesen Prototyp erweitern, anstatt Ihre Technologie langfristig zu überdenken und zu ersetzen)
  • Spiele sind oft schnelle Schüsse, entwickelt, öffentlich getestet, dann entweder ein Erfolg oder verworfen; Auch dies hängt mit dem Image von PHP zusammen, vergleichsweise gut zu sein, um etwas schnell zum Laufen zu bringen

Opinionated Summary: Wenn Sie keine (geeignete) Sprache kennen (gut genug), würde ich davon ausgehen, dass Sie mit PHP "etwas" schneller zum Laufen bringen. Wenn Sie jedoch bereits eine geeignete Sprache wie C # kennen und wissen, wie Sie einen Server / ein Backend damit einrichten, gilt dies nicht (es sei denn, Sie möchten eine bestimmte Engine in dieser Sprache verwenden). Dieser Prototyping-Vorteil von PHP ist möglicherweise auch nicht vorhanden, je komplexer / aktueller Ihr Spiel sein wird.

Frank Hopkins
quelle
2
"Mit PHP benötigen Sie nur eine Sprache (und HTML), um das Grundspiel zum Laufen zu bringen" - Gleiches gilt für C #. Der Aufstieg von Javascript / Angular ist in beiden Fällen gleich - die App wird im Browser ausgeführt. Asp.net kann jedoch problemlos eine HTML-Generierung im Backend durchführen, ähnlich wie bei PHP. Kein Unterschied.
TomTom
@ TomTom wahr, ich habe diesen Punkt entfernt
Frank Hopkins