SharpDX henüz benimseyecek kadar olgun mu yoksa şu anda SlimDX kullanmaya mı başlamalıyım?


10

Oyun projemi XNA'da durdurmak üzereyim çünkü toplayabildiğim şeyden gelişmesi sona eriyor (ve zaten mevcut teknolojinin arkasında). Bu nedenle, yeni bir çerçeve veya API benimsem gerekiyor.

Sadece C ++ bakarak 2 gün geçirdim ve gerçekten benim için değil karar - ancak DirectX çekici ham erişim bulmak. SharpDX, başlamak için iyi bir yer gibi görünüyor, ancak dokümantasyonu ve kod yorumu yok. Kullanıma hazır olmadığını hissediyorum.

Hangisini öğrenmem gerektiğine karar vermeme yardımcı olmak için bu çerçevelerden birini veya her ikisini birden kullanan kişilerin görüşleri ile ilgileniyorum. Herhangi bir tavsiye için teşekkürler.


1
Çok konuşma sorusu :). SharpDX muhtemelen SlimDX kadar olgun çünkü doğrudan başlıklardan üretiliyor - bu nedenle DirectX'in% 100'üne hemen sarıldı. Her iki kütüphane de esasen aynıdır; böylece SharpDX için SlimDX örneklerini kullanabilirsiniz.
Jonathan Dickinson

1
C / C ++ 'yı alma konusundaki suskunluğunuzun heyecan açısından asıl sorun olması mümkündür. Yönetilen seviyede kaldığınız sürece, asla gerçek ete geçemezsiniz, IMO. Bu, resmi olarak C ++ 'da eğitilmiş olmasına rağmen, yönetilen diller tarafından uzun süre küfür edilen birinden. Sadece bir gözlem. C ++ 'dan fazla zorlanmayın. Bunu yaparsanız kesinlikle bu sektördeki seçeneklerinizi sınırlayacaktır, bunun tersi kesinlikle doğru değildir, aslında diğer endüstrilere (tıbbi, finansal, savunma) sağlam bir giriş noktası sağlar. Ortalama maaş daha iyi, FYI.
Mühendis

DX ile gerçekten ilgileniyorum ve projemi Slim veya Sharp'a taşıyor olsam da kesinlikle söylediklerini duyuyorum. Ve bu rahatsızlığı aşabilmem için muhtemelen C ++ öğrenmeye devam etmem iyi olurdu. C ++ / Direct X'i kullanmam gereken bir konumda olsaydım 12 ay sonra iş için doğru araçsa bunu yapmayı seçebilirim.
Gavin Williams

Yanıtlar:


16

SharpDX'in yazarıyım, bu yüzden tavsiyem önyargılı olacak, ancak en azından bazı endişeleriniz hakkında cevap vermek istiyorum.

SharpDX belgeleri hakkında, şimdiye kadar çok DirectX API'yi .NET ve yeni Win8 OS'den erişilebilir hale getirmek için çalıştığım için mevcut durum çok sınırlıdır. Bu tarafta bitirmek için kapandığım için, SharpDX'in temel kavramlarını ve nasıl en iyi şekilde yararlanabileceğinizi açıklamak için tam bir web sitesi ve bazı makaleler sağlamaya çalışıyorum. Ayrıca, bu projenin esas olarak DirectX'i .NET'e getirmek olduğunu unutmayın, bu yüzden hala düşük seviyeli bir API'dir. Bu yüzden nasıl çalıştığını anlamak için C ++ API davranışına biraz kazmak gerektirir. Neyse ki, SharpDX'teki hemen hemen her yöntem DirectX API'sinde tek bir yöntemle eşleşir, bu nedenle DirectX API'sini kontrol ederek bir yöntemin nasıl kullanılacağını kontrol etmek kolaydır. SharpDX 2 ile kullanılabilecek dokümantasyon sistemi.

SharpDX oyun geliştirmek için kullanılmaya hazır mı? Kısacası, Evet.

Her şeyden önce, bir Japon şirketi tarafından C # 'da yeni bir 3D motorun geliştirilmesine katılmak için işe alındım ve SharpDX'i Windows'ta oluşturma arka ucu için kullanıyoruz.

İkinci olarak, multimedya uygulaması geliştirmek için SharpDX kullanan şirketlerden geliştiricilerden çok sayıda özel posta aldım (oyunlar, seviye editörü, çevrimiçi fotoğraf yayıncılığı vb.). Bu müşterilerin bazıları oldukça büyük (Maalesef onları anlatamıyorum).

Son olarak, bazı halka açık kaynak kodlu projeler ana arka uç oluşturma işlemleri için SharpDX kullanıyor (veya kullanacak). Örneğin, Delta Engine , Direct3D11 oluşturma işlemi için zaten SharpDX kullanıyor (Win8 için de mevcut olacak). Upcomming ANX projesi (açık kaynaklı bir XNA halefi) render, gamepad ve ses yönetimi için SharpDX kullanıyor.

Ancak SharpDX, bir oyun motoru ve sonra bir oyun inşa etmek için yolda sadece bir adım. API düşük düzey olduğundan, XNA gibi bir çerçeveyle alışkın olduğunuz aynı tür yüksek düzey özelliklere sahip olmayı bekleyemezsiniz. Ancak minimal bir çerçeveyle birçok şey yapabilirsiniz.

Ayrıca, C # 'da taşınabilir oyunlar geliştirmek için Unity gibi iyi kurulmuş bir ürün kullanmayı düşünebilirsiniz.


1
ANX için +1. Gerçekten heyecan verici XNA basitliğini seviyorum (gerekli boostrap miktarı nedeniyle hızlı bir şekilde #DX vazgeçti).
Jonathan Dickinson

Vay canına, Alexandre'ı eklediğiniz için teşekkürler, bu gece slimDX ekibinden ayrıldığınızda ve SharpDX için aklınızdakilerden bazılarını okuyordum. Böyle odaklanmış bir işi görmek harika ve yönetilen başka bir çerçeveye sahip olmak harika, Yönetilen grafik motorları daha da büyüyor ve henüz tüm olasılığı gördüğümüzü düşünmüyorum. Umarım yönetilen kodla ilgili performans sorunlarının çağrı zamanlarından mı yoksa çöp toplayıcı davranışından mı kaynaklandığının önemsiz olması için çözülebilir veya en aza indirilebilir. İşiniz kesinlikle bu çözüme katkıda bulunuyor.
Gavin Williams

Gerçekten çok fazla seçenek var. Unity'yi indirdim. Daha önce hiç bir oyun motoruna ya da buna benzer bir şeye bakmadım, bu yüzden ne yapabileceğini ve nasıl yaptığını görmek ilginç olmalı. Zaten xna yazılmış projemin temelleri var ve 5000-10.000 satır kod civarında bir yerde bu yüzden eğer yapabilseydim bu kodu kullanmak istiyorum. Ama hala tamamlanmaktan çok uzak, bu yüzden sanırım farklı çerçevelere ve motorlara bakarak bir iki hafta geçirirsem kötü bir yatırım değil.
Gavin Williams

Bu yazıdan önce ANX'i hiç duymamıştım. Bunun nereye gittiğiyle çok ilgileniyorum. Ve bu arada, yayınınızdaki bağlantıyı şu şekilde güncellemek isteyebilirsiniz: anxframework.codeplex.com
David Gouveia
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.