Pustaka C # apa yang dapat digunakan untuk mendukung pengembangan game? [Tutup]


58

Karena game didasarkan pada banyak subsistem yang berbeda, hal-hal seperti grafik (DirectX, OpenGL, ...), suara (OpenAL, Ogg Vorbis, ...) atau fisika (tabrakan, ...), perpustakaan apa yang Anda ketahui yang berguna untuk pengembangan game dalam C # dan manfaat apa yang mereka tawarkan?

Jawaban:


63

Grafik / Suara

  • Pembungkus tingkat tinggi XNA pada DirectX9. Memungkinkan Anda untuk bangun dan berlari dengan cepat. Mendukung PC, Xbox360 dan windows phone 7. Mendukung audio Xact dan juga SoundEffect API-nya sendiri.
  • SlimDX Wrapper level lebih rendah pada DX9 / 10/11. Jika ada di DX SDK, ini dibungkus di sini.
  • OpenTK Wrapper pada OpenGL / AL.
  • SDL.net Port of thr SDL populer.

Mesin

  • Arsitektur engine engine berbasis komponen WaveEngine , C # api, mesin fisika 2d dan 3d, efek visual yang indah, dukungan lintas platform Android, Linux, Mac, iOS & Windows, sistem tata letak canggih, dan banyak lagi.
  • NeoAxis Mesin 3D dengan dukungan untuk mesin fisika NVIDIA PhysX, binding C #, mendukung WPF & Formulir Windows, banyak pilihan alat seperti peta, objek, model, material, editor medan, di browser game menggunakan Chromium, Pathfinding dengan Navigasi Mesh dan banyak lagi.
  • TorqueX Mesin 2D / 3D untuk XNA. Dukungan editor yang baik, permainan garasi baru-baru ini diinvestasikan kembali di mesin setelah masa kelalaian.
  • truevision 3d C ++ game engine dengan c # bindings
  • Aksioma A menulis ulang Ogre di c #. Mendukung banyak API rendering yang didukung.
  • Unity adalah mesin grafis / game C ++ yang mendukung skrip gameplay dalam C #
  • AngelXNA Sebuah port dari kerangka protoypeing sudut open source EALA

Fisika

  • Farseer Mesin fisika 2D yang populer, mendukung .net (desktop), compact (xbox) dan micro (silverlight).
  • Mengendarai mesin fisika 3D yang relatif baru, Jauh lebih baik daripada penyelesaiannya.
  • Box2Dx Port langsung dari box2D
  • Box2D.XNA Port lain dari Box2D untuk XNA; lebih baru dari Box2Dx
  • JigLib
  • BulletX A c # port Bullet, tampaknya ditinggalkan.

1
Gambaran luar biasa, itulah jawaban yang saya cari!
Michael Klement

2
Karena XNA adalah komunitas besar, saya ingin menambahkan Henge3D ke fisika, Sunburn ke Grafik, dan sgMotion dan XNAnimation ke Grafik (atau Animasi).
Chris Ridenour

TorqueX tidak lagi didukung oleh game garasi.
Markus

3
Pada tahun-tahun sejak jawaban ini pertama kali diposting, Microsoft telah berhenti mendukung XNA. Pustaka itu mungkin bukan ide yang baik untuk digunakan lagi, gunakan MonoGame sebagai gantinya.
jhocking

10

Jelas ada XNA dari microsoft itu sendiri: http://creators.xna.com/en-US/ Game yang dibuat dengan XNA berfungsi di Windows dan (via Creators club) di Xbox360. Saya pikir ini sempurna untuk membuat kaki seseorang basah dalam pengembangan game yang cepat. Saya belum membasahi XNA dengan benar, jadi saya belum bisa menilai. Tapi, melihat dari sela-sela sepertinya hal terbaik sejak diiris roti. Tentu, Anda tidak dapat melakukan semuanya dengan itu. Tetapi Anda dapat membuat prototipe cepat dan game yang berfungsi dengan kualitas indie dan lainnya.

Pustaka lain adalah SlimDX - http://slimdx.org/ yang mungkin dikatakan lebih dekat dengan metal / kenyataan jika Anda tidak ingin bekerja dengan XNA. Jadi, bagus untuk melakukan prototyping cepat - terutama jika pengembangan gim utama Anda adalah C atau C ++. Juga bagus untuk melakukan alat.


3
SlimDX juga memiliki manfaat menjadi kompatibel dengan dukungan interop Direct3D WPF, yang (tergantung pada jenis permainan yang Anda kembangkan) bisa sangat berguna. Tidak ada dukungan resmi untuk interop WPF / XNA, dan sementara saya percaya beberapa orang telah berhasil membuat keduanya bekerja sama, prosesnya adalah hack-y dan rapuh.
Mike Strobel

Saya harus menambahkan bahwa ada adalah upaya untuk mendapatkan XNA bekerja cross-platform dengan Mono (lihat MonoXNA), yang mungkin faktor ke keputusan yang kerangka untuk digunakan.
Mike Strobel

@Mikw Strobel: +1, tetapi ingat bahwa nilai jual besar untuk XNA adalah kemampuan untuk menyebarkan / menjual ke 360 ​​dan semua hal WPF / XNA yang saya lihat tidak akan berjalan pada 360.
Steven Evers

4

Ada juga port C Library SDL ke .NET, SDL.NET . Saya pribadi akan menggunakan XNA di C # karena itu hanya perpustakaan yang disatukan dengan baik, sangat dapat disesuaikan dan juga ramah pemula.


XNA ramah pemula, tetapi juga dalam kondisi fluks (terutama) saat ini. 4.0 akan memiliki sejumlah perubahan yang melanggar dan itu menjengkelkan untuk mengikuti ketika Anda mendapatkan kaki Anda basah.
Steven Evers

4

Penafian: Rekomendasi berikut ini mungkin atau mungkin tidak bias karena keterlibatan pribadi saya dalam pengembangan mesin ini.

Duality adalah mesin game 2D yang dapat dikembangkan yang dilengkapi dengan sistem editor WYSIWYG. Ikhtisar cepat:

  • Ini berbasis plugin . Anda tidak menulis aplikasi baru, tetapi sebuah plugin yang berisi semua kode Anda.
  • Fitur plug-in runtime reload dari editor. Mengizinkan pengulangan cepat.
  • Open Source , ditulis seluruhnya dalam C #, berdasarkan OpenTK / OpenGL / OpenAL
  • Relatif baru (2 - 3 tahun) dan masih dalam pengembangan - tetapi sudah dapat digunakan .
  • Menangani Rendering, Audio, Input Pengguna, Fisika, Serialisasi, Manajemen Sumber Daya dan Objek
  • Banyak kelas pembantu dan Komponen default untuk membantu Anda memulai.

Jika Anda ingin mencobanya, Anda bisa langsung mengunduh rilis biner terbaru atau kompilasi sendiri menggunakan kode sumber dari GitHub . Untuk mendapatkan informasi lebih lanjut, kunjungan ke situs web info dan forum komunitas mungkin terbayar. Ikuti saja tautan dari situs web info yang saya sertakan di atas.

Tangkapan layar lingkungan pengeditan.


Biasanya terbaik untuk mengungkapkan bahwa Anda terlibat dalam pengembangan perangkat lunak apa pun yang Anda rekomendasikan.
Josh

@ JoshPetrie Anda mungkin benar. Saya tidak yakin apakah itu penting atau tidak dalam konteks khusus ini - lagi pula, saya telah menambahkan penafian sekarang. :)
Adam


3

Di sisi alat perpustakaan bermanfaat yang luar biasa adalah " Managed Extensibility Framework ", yang sekarang sebenarnya bagian dari .Net 4.0. Hal ini memungkinkan Anda untuk membuat plug-in atau penemuan otomatis instance kelas dengan mudah, yang sangat berguna untuk alat Anda.


2

Yang terbesar (dan paling terbukti) hingga hari ini adalah kerangka kerja XNA. Anda bahkan dapat memanfaatkan XNA untuk membangun set alat Anda. Keuntungannya adalah Anda memiliki kerangka kerja yang mencakup perpustakaan yang Anda butuhkan (fisika, suara, grafik) yang dibungkus dalam satu paket dan nilai tambah besarnya adalah jika Anda melakukan sesuatu dengan sangat baik, Anda dapat mencoba dan memompanya ke XBLA.


2

XNA adalah perpustakaan yang cukup besar untuk PC / Xbox360, menangani grafik, suara, input, dll.


2

The Tao Kerangka (digunakan dalam buku ini bahwa saya telah menemukan cukup berguna: C # Game Programming Untuk Penciptaan Permainan Serius ), yang membungkus OpenGL dan banyak fitur pemrograman game lain yang berguna (dapat diakses melalui C #) adalah layak lihat. Namun, telah digantikan oleh Open Toolkit Library (OpenTK), yang disebutkan dalam jawaban lain. Saya merasa aneh bahwa buku ini menggunakan Kerangka Tao bukan OpenTK, mengingat Tao telah tidak aktif selama sekitar 2 tahun (dan buku ini baru). Namun, kerangka kerja yang bermanfaat yang patut untuk dilihat.


1

Tidak persis seperti yang Anda tanyakan tetapi Unity adalah mesin game yang mendukung scripting di c #


0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) adalah pustaka / mesin berorientasi prototipe yang bagus yang dibangun di atas XNA, jika Anda mencari sesuatu yang lebih tinggi.


0

Saya menemukan SFML.Net menjadi pilihan yang bagus, dan itulah yang saya gunakan secara pribadi. Berhati-hatilah, jangan menggunakan binari yang disediakan di situs, tetapi dapatkan yang terbaru dari SVN. Versi situs sudah sangat usang.


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.