Dlaczego PHP ponad C # dla PBBG? [Zamknięte]

10

Jestem programistą C # i chciałem rozpocząć projekt hobby budujący trwałą grę opartą na przeglądarce (PBBG). Pracuję z C #, MSSQL i Angular i pomyślałem, że wykorzystam te techniki również w moim projekcie hobby.

Kiedy zacząłem szukać do i donts i wskazówek, zdałem sobie sprawę, że wiele projektów używa PHP i nie znalazłem żadnego PBBG używającego C #, co wydaje mi się naprawdę dziwne. Wygląda na to, że stos, z którym pracuję (C #, MSSQL, Angular) może pasować do PBBG.

Jedynym powodem, dla którego mogę wymyślić, że C # nie jest używany, jest wysoka cena Visual Studio i fakt, że nie był to open source.

Czy jest jakiś inny powód, czy po prostu źle znajduję projekty, które używają C #? A może jest tak, że jestem po prostu zły w swojej pracy i nie zdaję sobie sprawy, że ten stos nie jest dobry dla PBBG?

Kurus
źródło
3
Odpowiedzi będą również oparte na opiniach. Niektórzy ludzie po prostu nie lubią C #.
Almo
6
@Almo I inni ludzie (jak ja) nie znoszą PHP. Myślę jednak, że udało mi się napisać neutralną i pomocną odpowiedź.
Philipp
Myślę, że wiek będzie jednym z czynników. PHP jest znacznie starszy i głębiej zakorzeniony niż C #.
Pharap
4
„ogromna cena Visual Studio” - wydanie wspólnotowe 2017: 0. BARDZO mocny.
TomTom
1
Co rozumiesz przez „wysoką cenę Visual Studio”? Od jakiegoś czasu jest za darmo.
user1306322

Odpowiedzi:

16

Zaletą PHP jest to, że jest bardzo szeroko wspierany przez tanie hosty internetowe. Możesz wynająć część LAMP (Linux, Apache, MySQL, PHP) dla hostingu współdzielonego dla orzeszków ziemnych. Przestrzeń ta może również hostować twoją stronę internetową i klienta gry. Konfiguracja większości aplikacji PHP jest równie łatwa. Wystarczy skopiować pliki na serwer WWW i gotowe. Dzięki temu uruchomienie serwera testowego jest bardzo łatwe i wygodne.

Z drugiej strony AC # gameserver może być bardziej skomplikowany. Musisz wynająć rzeczywisty serwer rootowania, który jest droższy i wymaga znacznie więcej pracy i wiedzy, aby poprawnie skonfigurować i utrzymywać. Nie napisałeś, czy C # oznacza aplikację ASP.NET działającą na serwerze internetowym (dość proste rozwiązanie dla PBBG, jeśli mnie pytasz) lub samodzielną aplikację C # działającą jako oddzielny proces (trochę niekonwencjonalny, ale może działać całkiem dobrze, jeśli masz bardziej zorientowaną na akcję grę). Jeśli masz na myśli to drugie, musisz także zainstalować lub wypożyczyć serwer WWW do hostowania swojej witryny i części gry po stronie klienta.

To dodatkowe obciążenie może stanowić barierę dla większości programistów hobbystycznych, co może być dobrym powodem do wyboru PHP. Ale kiedy hobbysta odnosi sukcesy w swojej grze i postanawia to zrobić profesjonalnie, ma już swoją bazę kodów i na pewno nie zacznie od zera. Zachowają więc swój stos technologii LAMP, nawet jeśli początkowe obawy związane z wybraniem go nie są już ważne (kiedy przeprowadzasz poważną operację na stosie LAMP, wcześniej czy później osiągniesz punkt, w którym hosting dzielony już go nie ogranicza i potrzebujesz własnych serwerów).

Pamiętaj jednak, że jeśli spojrzysz na całkowity koszt projektu opracowania PBBG, zazwyczaj zauważysz, że koszty hostingu serwerów i administracji na etapie programowania stanowią zaledwie niewielką część budżetu na rozwój.

Więc twoja decyzja, która technologia powinna zostać wykorzystana, powinna zależeć od tego, która technologia pozwoli ci stworzyć najlepszą grę w jak najkrótszym czasie. Wybór najlepszych narzędzi, które można kupić za pieniądze (najlepsze dla Ciebie i Twojego projektu ), nie kosztuje Cię, oszczędza pieniądze.

Philipp
źródło
7
Serwer root nie jest zasadniczo konieczny dla aplikacji internetowych C #. Zobacz na przykład Microsoft Azure.
Michael Pittino
11
W przypadku Visual Studio Code i / lub Visual Studio Community koszt wejścia na narzędzia z pewnością nie jest już barierą dla C #.
0xFF
1
@Erik Z drugiej strony, jeśli użyjesz mniejszych narzędzi, może upłynąć więcej czasu, zanim zdasz sobie sprawę, że Twój pomysł na grę nie działa, więc stracisz więcej ludzkiej pracy. Co gorsza: po 100 godzinach możesz zdać sobie sprawę, że nie można stworzyć gry przy użyciu wybranych przez ciebie narzędzi niższej jakości, ale działałoby to z droższymi narzędziami, które i tak musiałbyś kupić (tam).
Philipp
2
@TylerH Prawda, ale skoro sam kompilator C # jest darmowy (przynajmniej od Roslyn) zastanawiam się, gdzie wyznaczają linię.
0xFF
4
I właściwie z własnej strony VisualStudio dla wydania Community: „Każdy programista może używać Visual Studio Community do tworzenia własnych darmowych lub płatnych aplikacji”.
0xFF
5

Pozostałe odpowiedzi są poprawne, ale nie wspomniano o czynniku historycznym.

Kiedy zacząłem szukać do i donts i wskazówek, zdałem sobie sprawę, że wiele projektów używa PHP i nie znalazłem żadnego PBBG używającego C #, co wydaje mi się naprawdę dziwne.

Jeszcze kilka lat temu istniała społeczność programistów PBBG, która głównie istniała na dwóch forach: BBGameZone i MakeWebGames, oba wypełnione głównie programistami PHP. Nowi gracze, którzy nie wiedzieli, jak stworzyć grę, zostali skierowani do niesamowitych samouczków na BuildingBrowserGames.com, które były w PHP. Termin „PBBG” pochodzi głównie z gier stworzonych przez ludzi powiązanych z tymi dwoma forami. Starano się spopularyzować ten termin, aby gatunek miał rozpoznawalną nazwę, której gracze mogliby szukać, i miejmy nadzieję, że spowolni jego upadek, nic dziwnego, że dostajesz PHP tylko podczas wyszukiwania tego terminu.

Wygląda na to, że stos, z którym pracuję (C #, MSSQL, Angular) może pasować do PBBG.

Jedynym powodem, dla którego mogę wymyślić, że C # nie jest używany, jest wysoka cena Visual Studio i fakt, że nie był to open source.

Myślę, że jesteś w 100% w porządku, używając C #, MSSQL i Angular. Przekonasz się, że większość silników PHP jest przestarzała. PHP4 lub PHP5.

Ludzie BBGameZone byli głównie przeciwko używaniu silników (wszyscy pisali własny silnik, w tym ja). Ludzie MakeWebGames starali się wprowadzić nowe silniki PHP (McCodes był ich głównym starym silnikiem, a NWE (silnik New Worlds) był uważany za jako prawdopodobne, że zostało zrobione w połowie)

Oto dokument Google z porównaniem silnika sprzed kilku lat, porównujący skrypt McCode / NWE / ezRPG / GL: https://docs.google.com/spreadsheets/d/1WM3axFhYaAtjiKd1KRwibx9jEegwjwCJNhQmXP_jzss/pub&s=ml&s=html=s=html?single=s=html?shtml

W przeszłości podejmowano starania, aby ponownie połączyć starą społeczność, ale jak dotąd niewiele szczęścia: https://www.reddit.com/r/PBBG/comments/6r34vi/announcing_pbbgsite/


Myślę, że będziesz w 100% OK, używając C #, MSSQL, Angular, po prostu pamiętaj, że prawdopodobnie jesteś pierwszą osobą, która pisze PBBG za pomocą swojego zestawu narzędzi i będziesz musiał stworzyć wszystko sam, bez żadnych przykładów z przeszłości spojrzeć wstecz na.

Pamiętaj tylko, że gatunek ten umiera teraz, ale wszystko, czego potrzebuje, to jedna lub dwie popularne gry, aby się ożywić, jeśli uważasz, że możesz to zrobić w C #, będę dla ciebie rootować.

IKM
źródło
1
  • Gry oparte na przeglądarce wzrosły w czasie, gdy C # nie był zbyt popularny, ale PHP był. Tak wiele projektów jest wykonywanych w tych językach, napisano wiele samouczków dla tego języka, a wielu ekspertów w takich grach przyjęło PHP jako główny język i dlatego wybiera go domyślnie,
  • PHP jest postrzegane jako język, który łatwo skaluje się z małych i średnich aplikacji, podczas gdy C # (i Java) jest często postrzegany jako stosunkowo ciężkie języki odpowiednie dla dużych aplikacji biznesowych; większość PBBG należałoby do kategorii małych i średnich projektów (przynajmniej początkowo / podstawowa koncepcja gry bez nagromadzonego kodu).
  • Serwery LAMP były łatwe, wielu twórców hobbystów po prostu i tak miało jeden, serwery C # były droższe; nadal jest to do pewnego stopnia, ale już nie tak silne
  • PHP może wydawać się, że lepiej pasuje do pracy: jest zaprojektowany tak, aby odpowiadać na połączenie internetowe z zawartością / danymi opartymi na HTML, dokładnie tym, czego potrzebujesz do zaplecza gry przeglądarkowej (w zależności od poziomu wymyślności); C # też może to zrobić, ale może czuć się bardziej rozdęty (lub potężny),
  • było i prawdopodobnie łatwiej jest zdobyć taniego programistę PHP niż taniego programistę C #, to jest zgodne z tym, że PHP jest łatwe do „dostania się”, a zatem często język goto pozwala szybko uruchomić podstawowe „strony internetowe” (a potem po prostu rozbuduj ten prototyp zamiast ponownie zastanowić się nad technologią na dłuższą metę i wymienić ją)
  • gry to często szybkie ujęcia, opracowane, przetestowane publicznie, a następnie albo sukces, albo odrzucone; znowu wiąże się to z wizerunkiem PHP, który jest stosunkowo dobry, aby szybko uruchomić coś

Podsumowanie opinii: jeśli nie znasz żadnego (odpowiedniego) języka (wystarczająco dobrze), zakładam, że „coś” działa szybciej z PHP. Ale jeśli znasz już odpowiedni język, taki jak C # i jak skonfigurować serwer / backend z nim, nie będzie to miało zastosowania (chyba że chcesz użyć określonego silnika w tym języku). Ta zaleta prototypowania PHP może również nie istnieć, im bardziej złożona / stanowa będzie Twoja gra.

Frank Hopkins
źródło
2
„z PHP potrzebujesz tylko jednego języka (i HTML), aby uruchomić podstawową grę” - to samo z C #. Wzrost Javascript / Angular jest taki sam w obu - uruchamianie aplikacji w przeglądarce. Ale asp.net może z radością generować HTML na backendie podobnym do PHP. Brak różnicy.
TomTom
@TomTom prawda, usunąłem ten punkt
Frank Hopkins