Pourquoi PHP sur C # pour PBBG? [fermé]

10

Je suis un développeur C # et je voulais démarrer un projet de loisir pour construire un jeu basé sur un navigateur persistant (PBBG). Je travaille avec C #, MSSQL et Angular et pensais que j'utiliserais également ces techniques pour mon projet de loisir.

Quand j'ai commencé à chercher des choses à faire et à ne pas faire et des conseils, j'ai réalisé que beaucoup de projets utilisent PHP et je n'ai en fait trouvé aucun PBBG utilisant C #, ce que je trouve vraiment étrange. Il semble que la pile avec laquelle je travaille (C #, MSSQL, Angular) pourrait convenir à un PBBG.

La seule raison pour laquelle je peux penser que C # n'est pas utilisé est le prix élevé de Visual Studio et le fait qu'il n'était pas open source.

Y a-t-il une autre raison, ou suis-je simplement mal à trouver des projets qui utilisent C #? Ou peut-être que je suis juste mauvais dans mon travail et que je ne réalise pas que cette pile n'est pas bonne pour PBBG?

Kurus
la source
3
Les réponses seront également basées sur l'opinion. Certaines personnes n'aiment tout simplement pas C #.
Almo
6
@Almo Et d'autres personnes (comme moi) détestent PHP. Mais je pense que j'ai quand même pu écrire une réponse neutre et utile.
Philipp
Je pense que vous constaterez que l'âge est l'un des facteurs contributifs ici. PHP est beaucoup plus ancien et plus profondément ancré que C #.
Pharap
4
"le prix élevé de Visual Studio" - Édition communautaire 2017: 0. TRÈS lourd.
TomTom
1
Qu'entendez-vous par «prix élevé de Visual Studio»? C'est gratuit depuis un moment.
user1306322

Réponses:

16

PHP a l'avantage d'être largement supporté par des hébergeurs bon marché. Vous pouvez louer un espace Web d'hébergement partagé LAMP (Linux, Apache, MySQL, PHP) pour les arachides. Et cet espace Web peut également héberger votre site Web et le client de jeu. La configuration de la plupart des applications PHP est tout aussi simple. Copiez simplement les fichiers sur le serveur Web et vous avez terminé. Cela rend très facile et pratique le fonctionnement d'un serveur de test.

Le serveur de jeux AC #, en revanche, peut être plus compliqué. Vous devez louer un véritable serveur racine, ce qui est plus cher et nécessite beaucoup plus de travail et de savoir-faire pour configurer et entretenir correctement. Vous n'avez pas écrit si C # signifie une application ASP.NET fonctionnant sur un serveur Web (une solution assez simple pour un PBBG si vous me demandez) ou une application autonome C # fonctionnant comme un processus distinct (un peu peu orthodoxe, mais qui pourrait fonctionner assez bien si vous avez un jeu plus orienté vers l'action). Si vous parlez de ce dernier, vous devez également installer ou louer un serveur Web pour héberger votre site Web et les parties côté client de votre jeu.

Ce surcoût supplémentaire peut être un obstacle pour la plupart des développeurs amateurs, ce qui peut être une bonne raison de choisir PHP. Mais quand un amateur réussit avec son jeu et décide de le faire professionnellement, il a déjà sa base de code existante et ne recommencera certainement pas à zéro. Ainsi, ils conserveront leur pile de technologie LAMP même si leurs préoccupations initiales pour le choisir ne sont plus valides (lorsque vous exécutez une opération sérieuse sur une pile LAMP, vous atteindrez tôt ou tard un point où l'hébergement partagé ne le coupera plus et vous avez besoin de vos propres serveurs).

Mais rappelez-vous que si vous regardez le coût total du projet de développement d'un PBBG, vous remarquerez généralement que les coûts d'hébergement et d'administration du serveur pendant la phase de développement ne représentent qu'une infime fraction du budget de développement.

Ainsi, votre décision quant à la technologie à utiliser doit être déterminée par la technologie qui vous permet de créer le meilleur jeu en un minimum de temps. Choisir les meilleurs outils que l'argent peut acheter (le mieux pour vous et votre projet ) ne vous coûte pas d'argent, il vous fait économiser de l'argent.

Philipp
la source
7
Un serveur racine n'est pas essentiellement nécessaire pour les applications Web C #. Voir Microsoft Azure par exemple.
Michael Pittino
11
Avec Visual Studio Code et / ou Visual Studio Community, le coût d'entrée pour les outils n'est certainement plus un obstacle pour C #.
0xFF
1
@Erik D'autre part, si vous utilisez des outils inférieurs à la normale, vous pourriez prendre plus de temps pour réaliser que votre idée de jeu ne fonctionne pas, vous perdez donc plus de travail humain. Pire encore: vous pourriez réaliser après 100 heures que votre jeu ne peut pas être fait avec les outils inférieurs à ceux que vous avez choisis mais fonctionnerait avec des outils plus chers que vous devriez alors acheter de toute façon (déjà là).
Philipp
2
@TylerH True, cependant, puisque le compilateur C # lui-même est gratuit (au moins depuis Roslyn), je me demande où ils tracent la ligne.
0xFF
4
Et en fait, à partir de la page Web de VisualStudio pour l'édition Community: "Tout développeur individuel peut utiliser Visual Studio Community pour créer ses propres applications gratuites ou payantes".
0xFF
5

Les autres réponses sont correctes, mais il y a un facteur historique qui n'a pas été mentionné.

Quand j'ai commencé à chercher des choses à faire et à ne pas faire et des astuces, j'ai réalisé que beaucoup de projets utilisent PHP et je n'ai en fait trouvé aucun PBBG utilisant C # que je trouve vraiment étrange.

Jusqu'à il y a quelques années, il y avait une communauté de développement PBBG qui existait principalement sur deux forums: BBGameZone et MakeWebGames, tous deux principalement remplis de programmeurs PHP. Les nouveaux utilisateurs qui ne savaient pas comment créer un jeu ont été pointés vers les super tutoriels de BuildingBrowserGames.com qui étaient tous en PHP. Le terme "PBBG" provient principalement de jeux créés par des gens connectés à ces deux forums, il y a eu un effort pour populariser le terme afin que le genre ait un nom reconnaissable que les joueurs puissent rechercher et, espérons-le, ralentir le déclin du genre, il n'est pas étonnant que vous n'obteniez PHP que lorsque vous recherchez le terme.

Il semble que la pile avec laquelle je travaille (C #, MSSQL, Angular) pourrait convenir à un PBBG.

La seule raison pour laquelle je peux penser que C # n'est pas utilisé est le prix élevé de Visual Studio et le fait qu'il n'était pas open source.

Je pense que vous êtes à 100% d'accord pour utiliser C #, MSSQL et Angular. Vous constaterez que la plupart des moteurs PHP sont obsolètes PHP4 ou PHP5.

Les gens de BBGameZone étaient principalement contre l'utilisation de moteurs (tout le monde écrivait leur propre moteur, y compris moi). comme le nouveau probable qui a été fait à mi-chemin)

Voici un document Google avec une comparaison de moteur d'il y a quelques années, comparant le script McCode / NWE / ezRPG / GL: https://docs.google.com/spreadsheets/d/1WM3axFhYaAtjiKd1KRwibx9jEegwjwCJNhQmXP_jzss/pub?single=true&g==

Il y a eu des efforts passés pour reconstituer l'ancienne communauté, mais pas beaucoup de chance jusqu'à présent: https://www.reddit.com/r/PBBG/comments/6r34vi/announcing_pbbgsite/


Je pense que vous serez 100% OK à l'avenir en utilisant un C #, MSSQL, une pile angulaire, rappelez-vous simplement que vous êtes probablement la première personne à écrire un PBBG avec votre chaîne d'outils et que vous devrez tout créer vous-même sans aucun exemple regarder en arrière sur.

N'oubliez pas que le genre est en train de mourir, mais tout ce dont il a besoin, c'est d'un ou deux jeux populaires pour se relancer, si vous pensez que vous pouvez le faire en C #, je serai enraciné pour vous.

IKM
la source
1
  • Les jeux basés sur navigateur ont augmenté à un moment où C # n'était pas très populaire, mais PHP l'était. Tant de projets sont réalisés dans ces langues, de nombreux tutoriels ont été écrits pour cette langue et de nombreux experts de ces jeux ont adopté PHP comme langue principale et l'ont donc choisi par défaut,
  • PHP est considéré comme un langage qui évolue facilement des applications de petite à moyenne taille, tandis que C # (et Java) est souvent considéré comme des langages relativement lourds adaptés aux grandes applications commerciales; la plupart des PBBG tomberaient dans la catégorie des projets de petite à moyenne taille (au moins initialement / le concept de jeu de base sans corbeille de code accumulée).
  • Les serveurs LAMP étaient faciles à avoir, de nombreux développeurs amateurs en avaient simplement un de toute façon, les serveurs C # étaient plus chers; cela tient toujours dans une certaine mesure, mais plus fortement
  • PHP peut sembler être mieux adapté au travail: il est conçu pour répondre à un appel Web avec du contenu / des données HTML, exactement ce dont vous avez besoin pour le backend d'un jeu par navigateur (selon le niveau de fantaisie); C # peut le faire aussi, mais peut se sentir plus gonflé (ou puissant),
  • il était et est probablement plus facile d'obtenir des programmeurs PHP bon marché que des programmeurs C # bon marché, cela correspond au fait que PHP soit facile "à entrer", donc souvent le langage goto pour obtenir rapidement des "trucs de site Web" de base (et puis juste étendre ce prototype au lieu de reconsidérer votre technologie à long terme et de la remplacer)
  • les jeux sont souvent des plans rapides, développés, testés publiquement, puis réussis ou rejetés; encore une fois, cela rejoint l'image de PHP pour être relativement bonne pour faire fonctionner quelque chose rapidement

Résumé d'opinion: Si vous ne connaissez aucun langage (approprié) (assez bien), je suppose que vous obtenez "quelque chose" et que vous exécutez plus rapidement avec PHP. Mais si vous connaissez déjà un langage approprié comme C # et comment configurer un serveur / backend avec lui, cela ne s'appliquera pas (sauf si vous souhaitez utiliser un moteur particulier dans ce langage). Cet avantage de prototypage de PHP peut également être inexistant, plus votre jeu sera complexe / étatique.

Frank Hopkins
la source
2
"avec PHP, vous n'avez besoin que d'un seul langage (et HTML) pour lancer le jeu de base" - Idem avec C #. La montée en puissance de Javascript / Angular est la même dans les deux - en exécutant l'application dans le navigateur. Mais asp.net peut heureusement faire de la génération html sur le backend similaire à PHP. Pas de différence.
TomTom
@TomTom true, j'ai supprimé ce point
Frank Hopkins