Por que PHP sobre C # para PBBG? [fechadas]


10

Sou desenvolvedor de C # e queria iniciar um projeto de hobby construindo um jogo baseado em navegador persistente (PBBG). Eu trabalho com C #, MSSQL e Angular e pensei em usar essas técnicas também no meu projeto de hobby.

Quando eu comecei a procurar por tarefas, donts e dicas, percebi que muitos projetos usam PHP e, na verdade, não encontrei nenhum PBBG usando C #, o que acho realmente estranho. Parece que a pilha com a qual estou trabalhando (C #, MSSQL, Angular) pode se adequar a um PBBG.

A única razão pela qual penso que o C # não está sendo usado é o alto preço do Visual Studio e o fato de ele não ser de código aberto.

Existe algum outro motivo, ou eu sou ruim em encontrar projetos que usam C #? Ou será que sou apenas ruim no meu trabalho e não percebo que essa pilha não é boa para PBBG?


3
As respostas também serão baseadas em opiniões. Algumas pessoas simplesmente não gostam de c #.
Almo

6
@Almo E outras pessoas (como eu) detestam o PHP. Mas acho que consegui escrever uma resposta neutra e útil.
Philipp

Acho que você encontrará a idade como um dos fatores que contribuem aqui. O PHP é muito mais antigo e mais profundamente arraigado que o C #.
Pharap

4
"o preço elevado do Visual Studio" - 2017 Community Edition: 0. MUITO pesado.
TomTom

1
O que você quer dizer com "preço elevado do Visual Studio"? Está livre há um tempo.
User1306322

Respostas:


16

O PHP tem a vantagem de ser amplamente suportado por webhosters baratos. Você pode alugar algum espaço na web LAMP (Linux, Apache, MySQL, PHP) de hospedagem compartilhada para amendoins. E esse espaço na web também pode hospedar seu site e o cliente do jogo. A configuração da maioria dos aplicativos PHP é igualmente fácil. Basta copiar os arquivos para o servidor da Web e pronto. Isso torna muito fácil e conveniente obter um servidor de testes em execução.

O servidor de jogos AC #, por outro lado, pode ser mais complicado. Você precisa alugar um servidor de raiz real, que é mais caro e requer muito mais trabalho e conhecimento para configurar e manter adequadamente. Você não escreveu se C # significa um aplicativo ASP.NET em execução em um servidor da Web (uma solução bastante direta para um PBBG, se você me perguntar) ou em um aplicativo autônomo em C # em execução como um processo separado (um pouco heterodoxo, mas pode funcionar muito bem se você tiver um jogo mais orientado para a ação). Se você quer dizer o último, você também precisa instalar ou alugar um servidor da web para hospedar seu site e as partes do jogo do lado do cliente.

Essa sobrecarga adicional pode ser uma barreira para a maioria dos desenvolvedores de hobby, o que pode ser um bom motivo para escolher o PHP. Mas quando um hobby é bem-sucedido em seu jogo e decide fazer isso profissionalmente, ele já tem sua base de código existente e certamente não começará do zero. Portanto, eles manterão sua pilha de tecnologia LAMP, mesmo que suas preocupações iniciais em escolher não sejam mais válidas (quando você estiver executando uma operação séria em uma pilha LAMP, atingirá, mais cedo ou mais tarde, um ponto em que a hospedagem compartilhada não será mais necessária e você precisa de seus próprios servidores).

Mas lembre-se de que, se você observar o custo total do projeto de desenvolvimento de um PBBG, geralmente notará que os custos de hospedagem e administração de servidores durante a fase de desenvolvimento são apenas uma pequena fração do orçamento de desenvolvimento.

Portanto, sua decisão sobre qual tecnologia usar deve ser orientada por qual tecnologia permite que você crie o melhor jogo em menos tempo. Escolher as melhores ferramentas que o dinheiro pode comprar (melhor para você e seu projeto ) não custa dinheiro, economiza dinheiro.


7
Um servidor de raiz não é essencialmente necessário para aplicativos da web C #. Veja Microsoft Azure, por exemplo.
Michael Pittino 28/05

11
Com o Visual Studio Code e / ou Visual Studio Community, o custo de entrada para as ferramentas certamente não é mais uma barreira para o C #.
0xFF

1
@Erik Por outro lado, se você usar ferramentas secundárias, poderá levar mais tempo para perceber que sua ideia de jogo não funciona, assim você perde mais trabalho humano. Pior ainda: você pode perceber, depois de 100 horas, que seu jogo não pode ser feito com as ferramentas secundárias que você escolheu, mas que funcionaria com ferramentas mais caras que você teria que comprar de qualquer maneira (já esteve lá).
Philipp

2
@ TylerH True, embora como o próprio compilador C # seja gratuito (pelo menos desde Roslyn), eu me pergunto onde eles traçam a linha.
0xFF

4
E, na verdade, na própria página do VisualStudio para a edição da Comunidade: "Qualquer desenvolvedor individual pode usar a Comunidade do Visual Studio para criar seus próprios aplicativos gratuitos ou pagos".
0xFF

5

As outras respostas estão corretas, mas há um fator histórico que não foi mencionado.

Quando eu comecei a procurar por coisas, donts e dicas, percebi que muitos projetos usam PHP e, na verdade, não encontrei nenhum PBBG usando C #, o que acho realmente estranho.

Até alguns anos atrás, havia uma comunidade de desenvolvimento PBBG que existia principalmente em dois fóruns: BBGameZone e MakeWebGames, ambos predominantemente preenchidos com programadores PHP. Os novatos que não sabiam como criar um jogo foram apontados para os incríveis tutoriais do BuildingBrowserGames.com, todos em PHP. O termo "PBBG" vem principalmente de jogos criados por pessoas conectadas a esses dois fóruns. Houve um esforço para popularizar o termo para que o gênero tivesse um nome reconhecível que os jogadores pudessem procurar e, esperançosamente, diminuísse o declínio do gênero, não é de admirar se você só está obtendo PHP ao pesquisar o termo.

Parece que a pilha com a qual estou trabalhando (C #, MSSQL, Angular) pode se adequar a um PBBG.

A única razão pela qual penso que o C # não está sendo usado é o alto preço do Visual Studio e o fato de ele não ser de código aberto.

Eu acho que você está 100% bem em continuar usando C #, MSSQL e Angular. Você verá que a maioria dos mecanismos PHP está desatualizada em PHP4 ou PHP5.

O pessoal da BBGameZone era contra o uso de mecanismos (todo mundo estava escrevendo seu próprio mecanismo, inclusive eu). Houve um esforço do pessoal da MakeWebGames para instalar novos mecanismos PHP (os McCodes eram o principal mecanismo antigo e o NWE (New Worlds Engine). como o provável novo a meio caminho)

Aqui está um documento do Google com uma comparação de mecanismo de alguns anos atrás, comparando o script McCode / NWE / ezRPG / GL: https://docs.google.com/spreadsheets/d/1WM3axFhYaAtjiKd1KRwibx9jEegwjwCJNhQmXP_jzss/pub?single=true&ght=0

Houve esforços anteriores para reunir a antiga comunidade, mas até agora não houve muita sorte: https://www.reddit.com/r/PBBG/comments/6r34vi/announcing_pbbgsite/


Eu acho que você estará 100% OK no futuro usando uma pilha C #, MSSQL, Angular, lembre-se de que você provavelmente é a primeira pessoa a escrever um PBBG com sua cadeia de ferramentas e terá que criar tudo sozinho, sem exemplos anteriores para olhar para trás.

Lembre-se de que o gênero está morrendo agora, mas tudo o que precisa é de um ou dois jogos populares para se reviver, se você acha que pode fazer isso em C #, estarei torcendo por você.


1
  • Os jogos baseados em navegador aumentaram em um momento em que o C # não era muito popular, mas o PHP era. Muitos projetos são feitos nessas linguagens, muitos tutoriais foram escritos para essa linguagem e muitos especialistas nesses jogos adotaram o PHP como idioma principal e, portanto, o escolhem por padrão,
  • O PHP é visto como uma linguagem que escala facilmente de aplicativos de pequeno a médio porte, enquanto o C # (e Java) é frequentemente visto como linguagens comparativamente pesadas, adequadas para grandes aplicativos de negócios; a maioria dos PBBG se enquadra na categoria de projeto de pequeno a médio porte (no mínimo inicialmente / no conceito de jogo principal sem lixo de código acumulado).
  • Os servidores LAMP eram fáceis de ter, muitos desenvolvedores de hobby simplesmente tinham um de qualquer maneira, os servidores C # eram mais caros; isso ainda vale até certo ponto, mas não tão fortemente
  • Pode parecer que o PHP se encaixa melhor no trabalho: ele foi projetado para responder a uma chamada da Web com conteúdo / dados baseados em HTML, exatamente o que você precisa para o back-end de um jogo de navegador (dependendo do nível de fantasia); O C # também pode fazer isso, mas pode parecer mais inchado (ou poderoso),
  • era e provavelmente é mais fácil conseguir programadores PHP baratos do que programadores C # baratos, isso se alinha com o fato de o PHP ser fácil de "entrar", portanto, muitas vezes a linguagem goto pode rapidamente colocar em funcionamento algum "site da web" básico (e depois apenas estender esse protótipo em vez de reconsiderar sua tecnologia a longo prazo e substituí-la)
  • os jogos costumam ser rápidos, desenvolvidos, testados publicamente e, em seguida, um sucesso ou descartados; mais uma vez, isso se relaciona com a imagem do PHP para ser comparativamente bom para executar algo rapidamente

Resumo opinativo: Se você não conhece nenhuma linguagem (adequada) (bem o suficiente), eu suponho que você tenha "algo" instalado e funcionando mais rapidamente com o PHP. Mas se você já conhece um idioma adequado como C # e como configurar um servidor / back-end com ele, isso não se aplica (a menos que você queira usar um mecanismo específico nesse idioma). Essa vantagem de prototipar o PHP também pode ser inexistente quanto mais complexo / statefull o seu jogo for.


2
"com PHP, você precisa apenas de um idioma (e HTML) para iniciar o jogo básico" - O mesmo com C #. O aumento do Javascript / Angular é o mesmo em ambos - executando o aplicativo no navegador. Mas o asp.net pode fazer a geração html no back-end, semelhante ao PHP. Não diferença.
TomTom

@ TomTom verdadeiro, eu removi esse ponto #
Frank Hopkins
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.