Apakah C # memiliki masa depan dalam pengembangan game?

18

Baru-baru ini saya mengetahui bahwa MMO Minecraft ditenagai oleh Jawa dari sebuah wawancara baru-baru ini di CVG.co.uk tentang kemungkinan kolaborasi antara dua rekan yang sebelumnya dan yang sekarang bersaing. Dalam wawancara dia dengan blak-blakan mengatakan bahwa pendiri Minecraft adalah Java coder dan dia adalah C atau C ++ coder sehingga mereka tidak kompatibel satu sama lain. Jadi berkolaborasi pada proyek-proyek masa depan akan sulit.

Ini membuat saya berpikir, Jika Jawa bisa melakukan itu? Apa yang akan terjadi di masa depan untuk MS # bahasa dan platform .Net yang sangat populer sejauh menyangkut pengembangan game atau game?

kekacauan
sumber
3
Ini semua tentang pertunjukan yang Anda butuhkan, Minecraft ok dalam bahasa yang dikelola, tetapi untuk gim grafis kelas atas, C atau C ++ atau bahasa asli lainnya lebih disukai
19
Minecraft sebenarnya bukan MMO.
DeadMG
3
@ Guillaume86: Kode Jittered saat ini dapat mengungguli kode asli, dan Jits semakin baik setiap saat. Juga, bahasa yang dikelola menghasilkan program yang jauh lebih kuat. Jadi pada akhirnya C ++ kehilangan keunggulan kinerjanya, dan secara signifikan lebih sulit untuk menulis program yang kuat (yang berarti waktu pengembangan lebih lama dan lebih banyak biaya)
Martin
4
JIT dapat mengalahkan kode asli yang ditulis dengan buruk, tidak dioptimalkan secara ketat dan disetel loop internal. Memang bahkan dengan C # Anda memiliki opsi untuk menulis segmen-segmen sensitif dalam C / C ++ jika Anda benar-benar menginginkannya.
coderanger

Jawaban:

22

Anda harus memeriksa XNA . Platform untuk membuat game untuk Windows, Xbox 360 dan Windows Mobile 7. Semua dalam C # dan .NET.


sumber
11

Saya telah bekerja dalam pengembangan game profesional selama lebih dari 5 tahun. Sebagian besar waktu ini, saya menggunakan C # hampir secara eksklusif.

C # dan .NET stack secara umum sangat bagus untuk teknologi sisi server. Saya telah bekerja pada tidak kurang dari 4 game MMO dengan server yang ditulis dalam C #. Juga, dengan Unity3D mendapatkan popularitas, banyak browser dan game seluler membutuhkan C #. Jangan lupa kerangka XNA: ini bukan mesin pilihan untuk judul konsol AAA, tetapi ada banyak game hebat yang dibuat dengannya, dan masih banyak lagi yang sedang dibuat.

Secara keseluruhan, C # pasti memiliki masa depan dalam pengembangan game.

Lupakan
sumber
itu pertanyaan lama, tapi satu hal yang menggangguku. "server-side tech" - apa sebenarnya yang Anda maksud dengan itu? WindowsService berjalan pada beberapa Windows Server menggunakan .NET Framework? Saya selalu berpikir bahwa server dibuat di c ++ dan berjalan di unix os. Saya hanya ingin tahu
Marshall
Ya, persis seperti itu. Ada banyak server yang berjalan pada Windows di luar sana - termasuk yang menjalankan situs ini, AFAIK.
Nevermind
terima kasih sudah kembali padaku. Hanya untuk memperjelas - "berjalan di Windows" sebagai Layanan Windows tanpa kepala atau program seperti WinForms (dengan konfigurasi bawaan atau semacamnya)?
Marshall
Layanan tanpa kepala biasanya merupakan ide yang lebih baik, tetapi tidak ada yang menghentikan Anda dari hanya menjalankan aplikasi konsol. Atau bahkan GUI, kecuali tidak ada seorang pun di server yang menggunakan GUI tersebut.
Nevermind
10

Seperti yang telah disebutkan, Mono membawa C # ke berbagai platform. Di area yang sama, Anda akan menemukan Tao , perpustakaan multi platform untuk Mono dan .NET yang memungkinkan akses ke Cg, DevIL, FreeGLUT, GLFW, GLU, ODE, OpenAl, OpenGL, PhysicsFS, SDL, dan WGL. Ini jelas tidak sekuat ketika datang ke fitur sebagai XNA (yang menyediakan komponen mesin mendasar langsung ke pengembang); tapi, itu sangat kuat.

Jadi, lintas platform di luar OS yang dikontrol Microsoft dan perangkat keras sudah pasti dimungkinkan. Hanya saja, belum banyak game indie populer yang memanfaatkan kemampuan ini.

Seperti yang juga telah disebutkan, XNA yang dipasangkan dengan C # memungkinkan pengembang independen untuk mempublikasikan ke 360, PC, dan Windows Phone 7.

Secara keseluruhan, C # hidup dan baik dalam pengembangan game sebagai bahasa mesin / game.

Sebagai bahasa alat, ini digunakan di mana-mana. Saya telah membangun alat untuk EA, THQ, dan sekarang Arkadium semuanya menggunakan C #.

Grapsas AA
sumber
5

C # tidak hanya memiliki masa depan dalam pengembangan game, C # memiliki masa kini - Lihat Magicka , game yang baru saja dirilis (dan laris manis) yang dikembangkan menggunakan XNA. Lihat juga entri Dream.Build.Play yang menang . C # adalah cara yang layak untuk membuat game (walaupun saat ini saya tidak percaya itu adalah pilihan yang tepat untuk semua game).

Seiring berjalannya waktu kita akan melihatnya menjadi lebih populer di industri game komputer, namun saya tidak mengharapkan perubahan tiba-tiba ke C # pada titik mana pun.

CiscoIPPhone
sumber
4

Java selalu menjadi bahasa yang sangat serbaguna dan selalu ada kemampuan bagi orang untuk membuat kode game di dalamnya, dari game berbasis web sederhana (Java applet / GWT dengan plugin kanvas) hingga binatang 3D penuh (checkout) JMonkey ). Jadi saya tidak akan mengatakan fakta bahwa Java dapat melakukan hal semacam itu adalah pembunuh C #, karena kebanyakan orang tahu bahwa Java sudah dapat melakukannya.

C # akan tetap populer meskipun karena hubungannya dengan Windows, Windows mobile dan Xbox jauh lebih baik daripada Java (yang, sebenarnya, semua pengembang game benar-benar peduli tentang penargetan sehingga keuntungan lintas platform yang dimiliki sebagian besar Java telah hilang.) juga mendapat XNA yang benar-benar lepas landas dalam hal pengembangan game.

Jadi ya, Java adalah platform yang sangat baik untuk pengembangan game jika ada yang ingin turun rute itu, tapi tentu saja tidak ada pembunuh C # atau .NET.


sumber
4

Lihat Unity 3D; Script C # (dan JavaScript, dan Boo) dalam mesin 3D performa tinggi.

Tambahkan XNA ke dalam campuran dan Anda sedang melihat beberapa platform hebat untuk menggunakan C # untuk pengembangan game.

Chrish
sumber
Unity juga memiliki pemutar web sehingga Anda bisa bermain di browser. Plugin tidak memiliki penetrasi pasar yang besar seperti flash atau java, tetapi itu mungkin.
Michael Coleman
yay untuk persatuan !!
Daniel Pendergast
1

Ya, C # memiliki masa depan, dengan kerangka kerja XNA. Kebanyakan lebih memilih C ++ karena kecepatan, tetapi C # tidak yang lambat lagi ...

GoofyHTS
sumber
2
Sama sekali tidak lambat. Ini jarang lebih buruk daripada sekitar 70% dari kecepatan C ++, dan terkadang bahkan bisa lebih cepat!
Noldorin
4
Operasi terikat CPU di C # cukup cepat, ia melakukan beberapa pemeriksaan tambahan yang sangat meningkatkan keamanan kode dengan mengorbankan beberapa hit kinerja kecil tetapi di mana jauh lebih buruk daripada C ++ dalam konsumsi memori dan manajemen. Ini adalah hal yang jauh lebih mudah dan lebih sedikit kebocoran di C # tetapi kinerja hit dari GC bisa menjadi anjing yang mutlak.
justin.m.chase
Waspadalah saat menargetkan Xbox360. Runtime XNA di sana tidak memiliki kemampuan untuk beberapa optimasi utama dan mencegah Anda dari menggeser bagian-bagian sensitif kinerja ke kode yang tidak dikelola.
drxzcl
1

Juga - MonoDroid mungkin menjadi opsi untuk C #.

Marc Gravell
sumber
1

Apa yang dia lakukan dengan Java dalam contoh ini adalah membuat applet sehingga Anda bisa masuk ke situs dan bermain dengan plugin yang sangat umum, benar-benar transparan yang digunakan sistem operasi. Saya membayangkan pemikirannya adalah bahwa Java cukup transparan ketika digunakan dengan cara ini dan itu akan membuatnya mudah untuk pengembangan / pengujian berulang yang cepat yang dia dapatkan dari penggemar. Saya tidak percaya Anda bisa melakukan ini dengan XNA karena biasanya tester harus memiliki semuanya diinstal serta permainan dan beberapa pengetahuan umum tentang cara mengkompilasi dan menjalankan ini.

Jadi saya akan mengatakan bahwa tidak ada perubahan paradigma dari ini, hanya cocok dengan apa yang dia butuhkan pada saat itu dan jelas bekerja dengan baik.

Douglas Rae
sumber
1

Tentu, banyak bahasa pemrograman memiliki masa depan dalam pengembangan game. Ini adalah dilema palsu yang sering digunakan dalam pers komputasi bahwa hanya ada satu alat tipe X dan semua orang ingin ini terjadi.

Tidak ada yang bisa lebih jauh dari kebenaran.

C # dan Java telah digunakan dalam game untuk waktu yang lama. C dan C ++ telah lebih lama, dan masih. Lua digunakan sebagai bahasa scripting untuk beberapa game yang sangat populer, dengan mesin ditulis dalam C / C ++.

Jadi jelas, tidak ada bahasa pemrograman yang mengeluarkan bahasa pemrograman lain keluar dari air sebagai The Game Programming Language. Faktanya, kami melihat kecenderungan untuk memimpin gim-gim yang terdiri dari bahasa pemrograman terkompilasi berkinerja tinggi untuk mengembangkan mesin di Indonesia, dan kemudian bahasa pemrograman dinamis tingkat tinggi untuk scripting bagaimana UI dan hal-hal berperilaku.

Kuncinya saat ini adalah kinerja. Jika ada bahasa / pustaka pemrograman yang digunakan menyebabkan jeda yang tidak dapat diprediksi / tidak terkendali dalam aplikasi kemudian dalam permainan aksi, itu akan jatuh datar di wajahnya. Dalam game petualangan berbasis teks, itu mungkin baik-baik saja.

JohnnySoftware
sumber