Oyun geliştirmeyi desteklemek için hangi C # kütüphaneleri kullanılabilir? [kapalı]


58

Oyunlar grafikler (DirectX, OpenGL, ...), ses (OpenAL, Ogg Vorbis, ...) veya fizik (çarpışmalar, ...) gibi birçok alt sisteme dayandığından, hangi kütüphanelerin yararlı olduğunu biliyorsunuz C # oyun geliştirme ve ne gibi avantajlar sunuyorlar?

Yanıtlar:


63

Grafikler / Ses

  • XNA DirectX9'da yüksek seviye sarıcı. Hızlı bir şekilde kalkmanıza ve koşmanıza izin verir. PC, Xbox360 ve Windows Phone 7'yi destekler. Xact sesi kendi SoundEffect API'sı kadar destekler.
  • SlimDX DX9 / 10 / 11'deki alt seviye sarmalayıcı. Eğer DX SDK'sındaysa, buraya sarılır.
  • OpenGL / AL'da OpenTK Wrapper.
  • SDL.net Popüler SDL kütüphanesi.

Motorlar

  • WaveEngine Bileşen tabanlı oyun motoru mimarisi, C # api, 2d ve 3d fizik motoru, güzel görsel efektler, çapraz platform desteği Android, Linux, Mac, iOS ve Windows, gelişmiş düzen sistemi ve çok daha fazlası.
  • NeoAxis NVIDIA PhysX fizik motoru desteği olan bir 3B motor, C # ciltleri, WPF ve Windows Formlarını, harita, nesne, model, malzeme, arazi editörleri gibi zengin araç yelpazesini, Chromium, Navigation Mesh ile Pathfinding kullanan oyun tarayıcılarında destekler.
  • TorqueX XNA için 2D / 3D motor. İyi editör desteği, garaj oyunları bir süredir ihmal edildikten sonra motora yeniden girdi.
  • truevision 3d C ++ oyun motoru ile c # bağlama
  • Aksiyom c # ile Ogre'nin yeniden yazılması. Çok sayıda yedeklenmiş oluşturma API'sini destekler.
  • Birlik C # içinde oyun komut dosyası destekleyen bir C ++ grafik / oyun motorudur
  • AngelXNA EALA'nın açık kaynaklı açı prototipleme çerçevesinin limanı

Fizik

  • Farseer Popüler bir 2D fizik motoru, .net (masaüstü), kompakt (xbox) ve mikro (silverlight) destekler.
  • Göreceli olarak yeni bir 3D fizik motoru olan Jitter , tamamlanmasından çok daha iyi.
  • Box2Dx Box2D'nin doğrudan bağlantı noktası
  • Box2D.XNA XNA için bir başka Box2D portu; Box2Dx’den daha yeni
  • JigLib
  • BulletX Bullet'in bir c # limanı, terk edilmiş görünüyor.

1
Harika bir bakış, tam olarak aradığım cevap buydu!
Michael Klement,

2
XNA çok büyük bir topluluk olduğu için Henge3D'yi fiziğe, Grafiklere Sunburn'ü ve Grafiklere (veya Animasyona) sgMotion ve XNAnimation'ı eklemek istiyorum.
Chris Ridenour,

TorqueX artık garaj oyunlarında desteklenmiyor.
Markus,

3
Bu cevabın ilk gönderildiği yıllardan beri, Microsoft, XNA'yı desteklemeyi bıraktı. Bu kütüphane muhtemelen artık kullanmak için iyi bir fikir değildir, bunun yerine MonoGame kullanın.
Saat

10

Açıkçası microsoft'un kendisinden XNA var: http://creators.xna.com/en-US/ Windows'ta XNA ile yapılan oyunlar ve Xbox360'ta (Creators club aracılığıyla) yapılan oyunlar. Bunun hızlı oyun gelişiminde ayaklarının ıslanması için mükemmel olduğunu düşünüyorum. Ayaklarımı XNA'da henüz doğru şekilde ıslatmadım, bu yüzden henüz yargılayamam. Ancak, aralarından bakıldığında dilimlenmiş ekmek beri en iyi şey gibi görünüyor. Tabii, onunla her şeyi yapamazsın. Ancak hızlı prototipler ve indie kalitesinde ve ötesinde çalışma oyunları yapabilirsiniz.

Diğer kütüphane SlimDX'dir - http://slimdx.org/ , XNA ile çalışmak istemiyorsanız bazılarının metale / realiteye daha yakın olduğunu söyleyebilir. Bu nedenle, hızlı prototipleme yapmak için harika - özellikle birincil oyun gelişiminiz C veya C ++ ise. Ayrıca, araçlar yapmak için harika.


3
SlimDX, WPF'in Direct3D birlikte çalışma desteği ile uyumlu olma avantajına sahiptir (geliştirdiğiniz oyun türüne bağlı olarak) çok yararlı olabilir. WPF / XNA interop için resmi bir destek yoktur ve bazı insanların ikisini birlikte çalışmayı başardıklarına inanırken, süreç hack-y ve kırılgandı.
Mike Strobel

Orada eklemek gerekir ise çerçeve kullanılacak kararı rol oynayabilecek Mono (MonoXNA bakınız), çapraz platformu çalışma XNA almak için bir çaba.
Mike Strobel

@Mikw Strobel: +1, fakat XNA için büyük bir satış noktasının 360'a dağıtma / satma yeteneği olduğunu ve gördüğüm tüm WPF / XNA malzemelerinin 360'da yayınlanmayacağını unutmayın.
Steven Evers

4

Ayrıca C Library SDL'den .NET'e, SDL.NET'den bir port var . Kişisel olarak XNA'yı C # ile kullanırdım, çünkü sadece iyi bir şekilde bir araya getirilmiş bir kütüphane, çok özelleştirilebilir ve aynı zamanda başlangıç ​​dostu.


XNA acemi dostu ancak aynı zamanda (özellikle de) akı halinde. 4.0, çok sayıda kırılma değişikliğine sahip olacak ve ayaklarınızı ıslatırken buna ayak uydurmak can sıkıcı bir durum.
Steven Evers,

4

Feragatname: Bu öneri, bu motorun geliştirilmesindeki kişisel katılımım nedeniyle önyargılı olabilir veya olmayabilir.

Duality , WYSIWYG editör sistemi ile gelen genişletilebilir bir 2D oyun motorudur. Hızlı genel bakış:

  • Bu eklenti tabanlı . Yeni bir uygulama yazmaz, tüm kodunuzu içeren bir eklenti yazarsınız.
  • Eklentileri özelliği çalışma zamanı editörden yeniden yükleyin . Hızlı yinelemeye izin verir.
  • OpenTK / OpenGL / OpenAL temel alınarak tamamen C # ile yazılmış Açık Kaynak.
  • Nispeten yeni (2 - 3 yıl) ve hala geliştirilme aşamasında - ama zaten kullanışlıdır .
  • İşleme, Ses, Kullanıcı Girişi, Fizik, Serileştirme, Kaynak ve Nesne Yönetimi
  • Başlamak için birçok yardımcı sınıf ve varsayılan Bileşenler.

Gitmek istemeniz durumunda, en son ikili sürümü doğrudan indirebilir veya GitHub'ın kaynak kodunu kullanarak kendiniz derleyebilirsiniz . Daha fazla bilgi edinmek için, bilgi web sitesini ve topluluk forumlarını ziyaret etmek işe yarayabilir. Sadece yukarıda eklediğim bilgi web sitesindeki bağlantıları takip edin.

Düzenleme ortamının ekran görüntüsü.


Tavsiye ettiğiniz herhangi bir yazılımın geliştirilmesine dahil olduğunuzu açıklamak genellikle en iyi yoldur.
Josh

@JoshPetrie Haklı olabilirsin. Bu özel bağlamda önemli olup olmadığından emin değildim - neyse, şimdi bir feragatname ekledim. :)
Adam



2

Günümüzün en büyüğü (ve en kanıtlanmışı), XNA çerçevesidir. Araç setlerinizi oluşturmak için XNA'dan bile yararlanabilirsiniz. Bunun yararı, bir pakete sarılmış ihtiyacınız olan kütüphaneleri (fizik, ses, grafik) içeren bir çerçeveye sahip olmanız ve devasa artı, gerçekten iyi bir şey yaparsanız, XBLA'ya deneyip pompalayabilmenizdir.


2

XNA , grafiklerinizi, sesinizi, girişinizi vb. İşleyen PC / Xbox360 için oldukça büyük bir kütüphanedir.


2

Tao Çerçeve (ben çok yararlı buldum bu kitapta kullandı: Ciddi Oyun Oluşturma İçin C # Oyun Programlama ), OpenGL ve (C # erişilebilir) diğer birçok yararlı oyun programlama özellikleri sarar bir göz atmaya değer. Ancak, başka bir cevabında belirtilen Open Toolkit Library (OpenTK) tarafından üstlenilmiştir. Tao'nun yaklaşık 2 yıldır etkisiz kaldığını (ve kitabın yepyeni olduğunu) düşünerek, kitabın OpenTK yerine Tao Çerçevesini kullandığını garip buluyorum. Yine de, kontrol etmeye değer yararlı bir çerçeve.


1

Tam olarak sorduğun şey değil ama Unity , c # komut dosyasını destekleyen bir oyun motorudur


0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/), daha yüksek seviyeli bir şey arıyorsanız, XNA üzerine inşa edilmiş güzel bir prototip odaklı kütüphane / motordur.


0

SFML.Net'i harika bir seçenek olarak buluyorum ve şahsen kullandığım şey. Ancak, sitede verilen ikili dosyaları kullanmayın, bunun yerine SVN'den en son haberleri alın. Site sürümü çok eski.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.