Mengapa PHP lebih dari C # untuk PBBG? [Tutup]


10

Saya seorang pengembang C # dan ingin memulai proyek hobi membangun game berbasis browser persisten (PBBG). Saya bekerja dengan C #, MSSQL dan Angular dan berpikir saya akan menggunakan teknik-teknik itu untuk proyek hobi saya juga.

Ketika saya mulai mencari lakukan dan jangan dan tips saya menyadari bahwa banyak proyek menggunakan PHP dan saya sebenarnya tidak menemukan PBBG menggunakan C #, yang saya temukan sangat aneh. Sepertinya tumpukan saya bekerja dengan (C #, MSSQL, Angular) bisa cocok dengan PBBG.

Satu-satunya alasan saya bisa memikirkan C # tidak digunakan adalah harga yang lumayan dari Visual Studio dan fakta bahwa itu bukan open source.

Apakah ada alasan lain, atau apakah saya buruk dalam menemukan proyek yang menggunakan C #? Atau mungkinkah saya hanya buruk dalam pekerjaan saya dan tidak menyadari bahwa tumpukan ini tidak baik untuk PBBG?


3
Juga jawaban akan didasarkan pada pendapat. Beberapa orang tidak suka C #.
Almo

6
@Almo Dan orang lain (seperti saya) membenci PHP. Tapi saya pikir saya bisa menulis jawaban yang netral dan bermanfaat.
Philipp

Saya pikir Anda akan menemukan usia menjadi salah satu faktor yang berkontribusi di sini. PHP jauh lebih tua dan lebih mendalam daripada C #.
Pharap

4
"harga lumayan Visual Studio" - Edisi Komunitas 2017: 0. SANGAT lumayan.
TomTom

1
Apa yang Anda maksud dengan "harga lumayan dari Visual Studio"? Sudah gratis untuk sementara waktu.
user1306322

Jawaban:


16

PHP memiliki kelebihan yaitu sangat banyak didukung oleh webhosters murah. Anda dapat menyewa beberapa ruang web shared hosting LAMP (Linux, Apache, MySQL, PHP) untuk kacang. Dan ruang web itu juga dapat meng-host situs web Anda dan klien game. Pengaturan sebagian besar aplikasi PHP juga sama mudahnya. Cukup salin file ke server web dan Anda selesai. Ini membuatnya sangat mudah dan nyaman untuk menjalankan testserver.

AC # gameserver, di sisi lain, bisa lebih rumit. Anda perlu menyewa rootserver yang sebenarnya, yang lebih mahal dan membutuhkan jauh lebih banyak pekerjaan dan cara mengatur dan memelihara dengan benar. Anda tidak menulis jika C # berarti aplikasi ASP.NET berjalan di server web (solusi yang cukup mudah untuk PBBG jika Anda bertanya kepada saya) atau aplikasi C # yang berdiri sendiri berjalan sebagai proses terpisah (agak tidak lazim, tetapi mungkin berfungsi cukup baik jika Anda memiliki game yang lebih berorientasi aksi). Jika yang Anda maksud adalah yang terakhir, Anda juga perlu menginstal atau menyewa server web untuk hosting situs web Anda dan bagian sisi permainan Anda.

Overhead tambahan itu bisa menjadi penghalang bagi kebanyakan pengembang hobi, yang bisa menjadi alasan yang baik untuk memilih PHP. Tetapi ketika seorang hobiis sukses dengan permainan mereka dan memutuskan untuk melakukan ini secara profesional, mereka sudah memiliki basis kode yang ada dan tentu saja tidak akan mulai dari awal. Jadi mereka akan menyimpan teknologi LAMP mereka meskipun kekhawatiran awal mereka untuk memilihnya tidak berlaku lagi (ketika Anda menjalankan operasi serius pada tumpukan LAMP Anda cepat atau lambat akan mencapai titik di mana shared hosting tidak memotongnya lagi dan Anda membutuhkan server Anda sendiri).

Tetapi ingat bahwa jika Anda melihat total biaya proyek untuk mengembangkan suatu PBBG, maka Anda biasanya akan melihat bahwa biaya untuk hosting dan administrasi server selama fase pengembangan hanyalah sebagian kecil dari anggaran pembangunan.

Jadi keputusan Anda tentang teknologi mana yang harus digunakan harus didorong oleh teknologi mana yang memungkinkan Anda untuk membuat game terbaik dalam waktu paling sedikit. Memilih alat terbaik yang dapat dibeli dengan uang (terbaik untuk Anda dan proyek Anda ) tidak dikenakan biaya, itu menghemat uang Anda.


7
Rootserver pada dasarnya tidak diperlukan untuk aplikasi web C #. Lihat Microsoft Azure misalnya.
Michael Pittino

11
Dengan Visual Studio Code dan / atau Visual Studio Community, biaya masuk untuk alat tentu bukan penghalang lagi untuk C #.
0xFF

1
@Erik Di sisi lain, jika Anda menggunakan alat sub-par Anda mungkin perlu waktu lebih lama untuk menyadari bahwa ide permainan Anda tidak berfungsi, sehingga Anda kehilangan lebih banyak tenaga manusia. Lebih buruk lagi: Anda mungkin menyadari setelah 100 jam bahwa permainan Anda tidak dapat dibuat dengan alat sub-par yang Anda pilih tetapi akan bekerja dengan alat yang lebih mahal yang kemudian harus Anda beli (ada di sana).
Philipp

2
@ TylerH Benar, meskipun karena kompiler C # itu sendiri gratis (setidaknya sejak Roslyn) saya bertanya-tanya di mana mereka menggambar garis.
0xFF

4
Dan sebenarnya, dari halaman web VisualStudio sendiri untuk edisi Komunitas: "Setiap pengembang individu dapat menggunakan Visual Studio Community untuk membuat aplikasi gratis atau berbayar mereka sendiri".
0xFF

5

Jawaban lainnya benar, tetapi ada faktor historis yang belum disebutkan.

Ketika saya mulai mencari lakukan dan jangan dan tips saya menyadari bahwa banyak proyek menggunakan PHP dan saya sebenarnya tidak menemukan PBBG menggunakan C # yang saya temukan sangat aneh.

Sampai beberapa tahun yang lalu, ada komunitas pengembangan PBBG yang sebagian besar ada di dua forum: BBGameZone dan MakeWebGames, keduanya sebagian besar diisi dengan programmer PHP. Pendatang baru yang tidak tahu cara membuat game diarahkan ke tutorial mengagumkan di BuildingBrowserGames.com yang semuanya dalam PHP. Istilah "PBBG" sebagian besar berasal dari permainan yang dibuat oleh orang-orang yang terhubung ke dua forum ini, ada upaya untuk mempopulerkan istilah tersebut sehingga genre akan memiliki nama yang dapat dikenali yang dapat dicari oleh para pemain dan mudah-mudahan memperlambat penurunan genre, tidak heran jika Anda hanya mendapatkan PHP ketika Anda mencari istilah.

Sepertinya tumpukan Im bekerja dengan (C #, MSSQL, Angular) bisa cocok dengan PBBG.

Satu-satunya alasan saya bisa memikirkan C # tidak digunakan adalah harga yang lumayan dari Visual Studio dan fakta bahwa itu bukan open source.

Saya pikir Anda 100% baik untuk terus menggunakan C #, MSSQL dan Angular. Anda akan menemukan bahwa sebagian besar mesin PHP sudah usang PHP4 atau PHP5.

Orang-orang BBGameZone sebagian besar menentang menggunakan mesin (semua orang menulis mesin mereka sendiri, termasuk saya) Ada upaya oleh orang-orang MakeWebGames untuk mendapatkan mesin PHP baru di tempat (McCodes menjadi mesin tua utama mereka dan NWE (Mesin Dunia Baru) sedang dianggap sebagai kemungkinan yang baru yang setengah jalan dilakukan)

Berikut ini adalah dokumen Google dengan perbandingan mesin dari beberapa tahun yang lalu, membandingkan Script McCode / NWE / ezRPG / GL: https://docs.google.com/spreadsheets/d/1WM3axFhYaAtjiKd1KRwibx9jEegwjwCJNhQmXP_jzss/pout=&p==

Ada upaya masa lalu untuk menyatukan komunitas lama, tetapi sejauh ini tidak banyak keberuntungan: https://www.reddit.com/r/PBBG/comments/6r34vi/announcing_pbbgsite/


Saya pikir Anda akan 100% OK menggunakan C #, MSSQL, Angular stack, ingatlah bahwa Anda mungkin adalah orang pertama yang menulis PBBG dengan toolchain Anda dan Anda harus membuat semuanya sendiri tanpa ada contoh sebelumnya untuk lihat kembali.

Ingat saja bahwa genre ini sedang sekarat saat ini, tetapi yang dibutuhkan hanyalah satu atau dua permainan populer untuk menghidupkan kembali dirinya sendiri, jika Anda pikir Anda dapat melakukannya di C # saya akan mendukung Anda.


1
  • Game berbasis browser meningkat pada saat C # tidak terlalu populer, tetapi PHP dulu. Begitu banyak proyek yang dilakukan dalam bahasa itu, banyak tutorial ditulis untuk bahasa itu dan banyak ahli dalam permainan tersebut telah mengadopsi PHP sebagai bahasa utama mereka dan dengan demikian memilihnya secara default,
  • PHP dipandang sebagai bahasa yang mudah menskala dari aplikasi berukuran kecil hingga menengah, sementara C # (dan Java) sering dipandang sebagai bahasa yang relatif berat yang cocok untuk aplikasi bisnis besar; sebagian besar PBBG akan jatuh ke dalam kategori proyek kecil hingga menengah (paling tidak pada awalnya / konsep game inti tanpa akumulasi kode-sampah).
  • Server LAMP mudah untuk dimiliki, banyak pengembang hobi yang memilikinya, server C # lebih mahal; ini masih memegang beberapa derajat tetapi tidak terlalu kuat lagi
  • PHP mungkin merasa lebih cocok dengan pekerjaan itu: PHP dirancang untuk menanggapi panggilan web dengan konten / data berbasis HTML, persis apa yang Anda butuhkan untuk backend dari game browser (tergantung pada tingkat fantasi); C # dapat melakukannya juga, tetapi mungkin merasa lebih kembung (atau kuat),
  • itu dan mungkin lebih mudah untuk mendapatkan programmer PHP murah daripada programmer C # murah, ini sejalan dengan PHP yang mudah "untuk masuk" sehingga sering bahasa goto untuk dengan cepat mendapatkan beberapa "website thingy" dasar dan berjalan (dan kemudian hanya memperpanjang prototipe itu alih-alih mempertimbangkan kembali teknologi Anda untuk jangka panjang dan menggantinya)
  • permainan sering kali merupakan tembakan cepat, dikembangkan, diuji secara publik, kemudian berhasil atau dibuang; sekali lagi, ini terkait dengan gambar PHP agar relatif bagus untuk menjalankan sesuatu dengan cepat

Ringkasan yang Ditentang: Jika Anda tidak tahu bahasa (yang cocok) (cukup baik), saya berasumsi Anda mendapatkan "sesuatu" dan berjalan lebih cepat dengan PHP. Tetapi jika Anda sudah tahu bahasa yang cocok seperti C # dan cara mengatur server / backend dengannya, ini tidak akan berlaku (kecuali jika Anda ingin menggunakan mesin tertentu dalam bahasa itu). Keuntungan pembuatan prototipe dari PHP ini mungkin juga tidak ada, lebih kompleks / statefull dari permainan Anda.


2
"dengan PHP Anda hanya perlu satu bahasa (dan HTML) untuk membuat permainan dasar berjalan" - Sama dengan C #. Munculnya Javascript / Angular sama di kedua - menjalankan aplikasi di browser. Tapi asp.net dengan senang hati dapat membuat generasi html di backend mirip dengan PHP. Tidak ada perbedaan.
TomTom

@ TomTom benar, saya menghapus titik itu
Frank Hopkins
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.