Perché PHP su C # per PBBG? [chiuso]


10

Sono uno sviluppatore C # e volevo iniziare un progetto di hobby costruendo un gioco persistente basato su browser (PBBG). Lavoro con C #, MSSQL e Angular e ho pensato che avrei usato quelle tecniche anche per il mio progetto di hobby.

Quando ho iniziato a cercare cose da fare, donts e suggerimenti mi sono reso conto che molti progetti usano PHP e in realtà non ho trovato alcun PBBG usando C #, che trovo davvero strano. Sembra che lo stack con cui sto lavorando (C #, MSSQL, Angular) possa adattarsi a un PBBG.

L'unico motivo per cui riesco a pensare che C # non venga utilizzato è il prezzo elevato di Visual Studio e il fatto che non fosse open source.

C'è qualche altro motivo, o sono solo cattivo a trovare progetti che usano C #? O può essere che sono solo un cattivo lavoro e non mi rendo conto che questo stack non è buono per PBBG?


3
Anche le risposte saranno basate sull'opinione. Ad alcune persone non piace C #.
Almo,

6
@Almo E altre persone (come me) detestano PHP. Ma penso di essere stato in grado di scrivere una risposta neutra e utile comunque.
Philipp,

Penso che troverai l'età per essere uno dei fattori che contribuiscono qui. PHP è molto più vecchio e profondamente radicato di C #.
Pharap,

4
"il prezzo pesante di Visual Studio" - 2017 Community Edition: 0. MOLTO pesante.
TomTom,

1
Cosa intendi per "prezzo elevato di Visual Studio"? È stato gratuito per un po '.
user1306322,

Risposte:


16

PHP ha il vantaggio di essere ampiamente supportato da webhoster economici. È possibile noleggiare alcuni spazi web LAMP (Linux, Apache, MySQL, PHP) di hosting condiviso per le arachidi. E quello spazio web può anche ospitare il tuo sito Web e il client di gioco. La configurazione della maggior parte delle applicazioni PHP è altrettanto semplice. Basta copiare i file sul server web e il gioco è fatto. Questo rende molto facile e conveniente far funzionare un server di prova.

AC # gameserver, d'altra parte, può essere più complicato. Devi noleggiare un vero rooterver, che è più costoso e richiede molto più lavoro e know-how per configurare e gestire correttamente. Non hai scritto se C # significa un'applicazione ASP.NET in esecuzione su un server web (una soluzione piuttosto semplice per un PBBG se me lo chiedi) o un'applicazione standalone C # in esecuzione come processo separato (un po 'poco ortodosso, ma potrebbe funzionare abbastanza bene se hai un gioco più orientato all'azione). Se intendi quest'ultimo, devi anche installare o noleggiare un server web per ospitare il tuo sito Web e le parti del gioco sul lato client.

Tale sovraccarico aggiuntivo può essere una barriera per la maggior parte degli sviluppatori di hobby, che può essere una buona ragione per scegliere PHP. Ma quando un hobbista ha successo con il suo gioco e decide di farlo professionalmente, ha già la sua base di codice esistente e sicuramente non inizierà da zero. Quindi manterranno il loro stack di tecnologia LAMP anche se le loro preoccupazioni iniziali per sceglierlo non sono più valide (quando esegui un'operazione seria su uno stack LAMP, prima o poi raggiungerai un punto in cui l'hosting condiviso non lo taglia più e hai bisogno dei tuoi server).

Ma ricorda che se guardi al costo totale del progetto per lo sviluppo di un PBBG, noterai di solito che i costi per l'hosting e l'amministrazione del server durante la fase di sviluppo sono solo una piccola parte del budget di sviluppo.

Quindi la tua decisione su quale tecnologia utilizzare dovrebbe essere guidata da quale tecnologia ti consente di creare il miglior gioco nel minor tempo possibile. Scegliere gli strumenti migliori che il denaro può comprare (il meglio per te e il tuo progetto ) non ti costa denaro, ma ti fa risparmiare denaro.


7
Un rooterver non è essenzialmente necessario per le applicazioni web C #. Vedi ad esempio Microsoft Azure.
Michael Pittino,

11
Con Visual Studio Code e / o Visual Studio Community, il costo di entrata per gli strumenti non è più un ostacolo per C #.
0xFF,

1
@Erik D'altra parte, se usi strumenti di qualità inferiore potresti impiegare più tempo a capire che la tua idea di gioco non funziona, quindi perdi più lavoro umano. Ancora peggio: dopo 100 ore potresti capire che il tuo gioco non può essere realizzato con gli strumenti secondari che hai scelto ma funzionerebbe con strumenti più costosi che dovresti acquistare comunque (ci sei stato).
Philipp,

2
@TylerH Vero, anche se dal momento che il compilatore C # è gratuito (almeno da Roslyn), mi chiedo dove disegnino la linea.
0xFF,

4
In realtà, dalla stessa pagina Web di VisualStudio per l'edizione Community: "Ogni singolo sviluppatore può utilizzare Visual Studio Community per creare le proprie app gratuite o a pagamento".
0xFF,

5

Le altre risposte sono corrette, ma c'è un fattore storico che non è stato menzionato.

Quando ho iniziato a cercare cose da fare, donts e suggerimenti mi sono reso conto che molti progetti usano PHP e in realtà non ho trovato alcun PBBG usando C # che trovo davvero strano.

Fino a un paio di anni fa, esisteva una comunità di sviluppo PBBG che esisteva principalmente su due forum: BBGameZone e MakeWebGames, entrambi prevalentemente occupati da programmatori PHP. I nuovi arrivati ​​che non sapevano come creare un gioco sono stati indirizzati ai fantastici tutorial su BuildingBrowserGames.com che era tutto in PHP. Il termine "PBBG" deriva principalmente dai giochi realizzati da persone collegate a questi due forum, c'è stato uno sforzo per diffondere il termine in modo che il genere avesse un nome riconoscibile che i giocatori avrebbero potuto cercare e, si spera, rallentare il declino del genere, non c'è da meravigliarsi se ricevi PHP solo quando cerchi il termine.

Sembra che lo stack con cui sto lavorando (C #, MSSQL, Angular) possa adattarsi a un PBBG.

L'unico motivo per cui riesco a pensare che C # non venga utilizzato è il prezzo elevato di Visual Studio e il fatto che non fosse open source.

Penso che tu vada al 100% bene per andare avanti usando C #, MSSQL e Angular. Scoprirai che la maggior parte dei motori PHP sono obsoleti PHP4 o PHP5.

La gente di BBGameZone era principalmente contraria all'utilizzo dei motori (tutti scrivevano il proprio motore, incluso me) C'è stato uno sforzo da parte della gente di MakeWebGames per mettere in atto nuovi motori PHP (McCodes è il loro vecchio motore principale e NWE (New Worlds Engine) è considerato come il probabile nuovo che è stato fatto a metà strada)

Ecco un documento di Google con un confronto tra i motori di alcuni anni fa, confrontando McCode / NWE / ezRPG / GL Script: https://docs.google.com/spreadsheets/d/1WM3axFhYaAtjiKd1KRwibx9jEegwjwCJNhQmXP_jzss/pub?sing==ml=it=html

Ci sono stati sforzi passati per rimettere insieme la vecchia comunità, ma finora non molta fortuna: https://www.reddit.com/r/PBBG/comments/6r34vi/announcing_pbbgsite/


Penso che andrai al 100% OK andando avanti usando uno stack C #, MSSQL, Angular, ricorda solo che probabilmente sei la prima persona a scrivere un PBBG con la tua toolchain e dovrai creare tutto da solo senza esempi passati per guarda indietro.

Ricorda solo che il genere sta morendo proprio ora, ma tutto ciò di cui ha bisogno è uno o due giochi popolari per rianimarsi, se pensi di poterlo fare in C #, farò il tifo per te.


1
  • I giochi basati su browser sono aumentati in un momento in cui C # non era molto popolare, ma PHP lo era. Sono stati realizzati così tanti progetti in quelle lingue, sono stati scritti molti tutorial per quella lingua e molti esperti in tali giochi hanno adottato PHP come lingua principale e quindi lo scelgono per impostazione predefinita,
  • PHP è visto come un linguaggio che si ridimensiona facilmente da applicazioni di piccole e medie dimensioni, mentre C # (e Java) sono spesso visti come linguaggi relativamente pesanti adatti per applicazioni di grandi dimensioni; la maggior parte dei PBBG rientrerebbe nella categoria di progetto di dimensioni medio-piccole (almeno inizialmente / il concetto di gioco principale senza accumulo di codice).
  • I server LAMP erano facili da avere, molti sviluppatori di hobby ne avevano semplicemente uno comunque, i server C # erano più costosi; questo vale ancora fino a un certo punto, ma non più fortemente
  • PHP può sembrare che si adatti meglio al lavoro: è progettato per rispondere a una chiamata Web con contenuti / dati basati su HTML, esattamente ciò di cui hai bisogno per il backend di un browser game (a seconda del livello di fantasia); Anche C # può farlo, ma può sentirsi più gonfio (o potente),
  • era e probabilmente è più facile ottenere programmatori PHP economici rispetto ai programmatori C # economici, questo è in linea con PHP essendo facile "entrare", quindi spesso il linguaggio goto per ottenere rapidamente alcune "cose ​​da siti Web" di base (e poi solo estendi quel prototipo invece di riconsiderare la tua tecnologia a lungo termine e sostituirla)
  • i giochi sono spesso colpi veloci, sviluppati, testati pubblicamente, quindi un successo o scartati; ancora una volta, questo si collega all'immagine di PHP per essere relativamente buono per far funzionare rapidamente qualcosa

Riepilogo ponderato: se non conosci una lingua (adatta) (abbastanza bene), suppongo che tu abbia "qualcosa" installato e funzionante più velocemente con PHP. Ma se conosci già un linguaggio adatto come C # e come impostare un server / back-end con esso, questo non si applica (a meno che tu non voglia usare un motore specifico in quella lingua). Questo vantaggio di prototipazione di PHP potrebbe anche essere inesistente quanto più complesso / stato sarà il tuo gioco.


2
"con PHP hai solo bisogno di una lingua (e HTML) per far partire il gioco base" - Lo stesso con C #. L'ascesa di Javascript / Angular è la stessa in entrambi: l'esecuzione dell'app nel browser. Ma asp.net può felicemente fare la generazione html sul backend simile a PHP. Non-differenza.
TomTom,

@ TomTom vero, ho rimosso quel punto
Frank Hopkins
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.