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.