Apakah SharpDX sudah cukup dewasa untuk mengadopsi atau haruskah saya mulai menggunakan SlimDX sekarang?

10

Saya akan menghentikan proyek game saya di XNA karena dari apa yang saya dapat kumpulkan, perkembangannya akan segera berakhir (dan sudah ada di belakang teknologi saat ini). Karena itu, saya perlu mengadopsi kerangka kerja atau API baru.

Saya baru saja menghabiskan 2 hari melihat C ++ dan memutuskan itu benar-benar bukan untuk saya - namun saya menemukan akses mentah ke DirectX yang menarik. SharpDX terdengar seperti tempat yang baik untuk memulai, tetapi tidak memiliki dokumentasi dan tidak ada komentar kode. Saya merasa belum siap untuk digunakan.

Saya tertarik pada pendapat orang-orang yang telah menggunakan salah satu atau kedua kerangka kerja ini, untuk membantu saya memutuskan mana yang harus saya pelajari? Terima kasih atas sarannya.

Gavin Williams
sumber
1
Pertanyaan yang sangat percakapan :). SharpDX mungkin setua SlimDX karena dihasilkan langsung dari header - dengan demikian, ia mendapat 100% DirectX segera dibungkus. Kedua perpustakaan pada dasarnya sama; jadi Anda bisa menggunakan sampel SlimDX untuk SharpDX.
Jonathan Dickinson
1
Ada kemungkinan bahwa sikap diam Anda untuk mengambil C / C ++ adalah masalah yang sebenarnya dalam hal kegembiraan. Selama Anda tinggal di level yang dikelola, Anda tidak akan pernah mendapatkan daging asli, IMO. Ini dari seseorang yang sudah lama bersumpah dengan bahasa yang dikelola, meskipun secara formal dilatih dalam C ++. Hanya sebuah pengamatan. Jangan hindari C ++ terlalu keras. Ini tentu akan membatasi pilihan Anda dalam industri ini jika Anda melakukannya, sementara kebalikannya jelas tidak benar, karena faktanya itu memberi Anda titik masuk yang solid ke industri lain (medis, keuangan, pertahanan). Pembayaran rata-rata jauh lebih baik di sana, FYI.
Insinyur
Saya benar-benar tertarik pada DX, dan meskipun saya mungkin akhirnya memindahkan proyek saya ke Slim atau Sharp, saya pasti mendengar apa yang Anda katakan. Dan mungkin akan bermanfaat bagi saya untuk terus belajar C ++ sehingga saya dapat mengatasi ketidaknyamanan itu. Saya ingin berpikir bahwa 12 bulan dari sekarang jika saya berada di posisi di mana saya perlu menggunakan C ++ / Direct X maka saya bisa memilih untuk melakukan itu, jika itu alat yang tepat untuk pekerjaan itu.
Gavin Williams

Jawaban:

16

Saya penulis SharpDX, jadi saran saya akan menjadi bias, tapi saya setidaknya ingin menanggapi beberapa masalah Anda.

Tentang dokumentasi SharpDX, kondisi saat ini sangat terbatas, karena saya telah bekerja sejauh ini untuk membawa seluruh API DirectX dapat diakses dari .NET dan OS Win8 baru. Saat saya ditutup untuk menyelesaikan di sisi ini, saya sedang bekerja untuk menyediakan situs web lengkap dan beberapa artikel untuk menjelaskan konsep-konsep kunci SharpDX, dan bagaimana Anda bisa mendapatkan yang terbaik dari itu. Juga, perlu diingat bahwa proyek ini terutama untuk membawa DirectX ke .NET, jadi ini masih merupakan API tingkat rendah. Jadi itu mengharuskan Anda untuk menggali sedikit ke dalam perilaku C ++ API untuk memahami cara kerjanya. Untungnya, hampir setiap metode tunggal di SharpDX melakukan pemetaan ke metode tunggal di DirectX API, jadi Sangat mudah untuk memeriksa cara menggunakan metode dengan memeriksa DirectX API. Sistem dokumentasi yang akan tersedia dengan SharpDX 2.

Apakah SharpDX siap digunakan untuk mengembangkan game? Singkatnya, Ya.

Pertama-tama, saya telah disewa oleh perusahaan Jepang untuk berpartisipasi dalam pengembangan mesin 3D baru di C #, dan kami menggunakan SharpDX untuk rendering backend pada Windows.

Kedua, saya telah menerima banyak surat pribadi dari pengembang dari perusahaan yang menggunakan SharpDX untuk mengembangkan aplikasi multimedia (mulai dari game, editor level, penerbitan foto online ... dll.). Beberapa pelanggan ini cukup besar (Sayangnya, saya tidak bisa mengutip mereka).

Terakhir, beberapa proyek open source publik menggunakan (atau akan menggunakan) SharpDX untuk rendering backend utama mereka. Sebagai contoh, Delta Engine sudah menggunakan SharpDX untuk rendering Direct3D11 (yang akan tersedia juga untuk Win8). Proyek ANX upcomming (pengganti XNA open-source) juga menggunakan SharpDX untuk rendering, gamepad, dan manajemen audio.

Tapi SharpDX hanyalah langkah di jalan untuk membangun mesin gim, dan kemudian gim. Karena API tingkat rendah, Anda tidak dapat mengharapkan untuk memiliki fitur tingkat tinggi yang sama dengan yang Anda gunakan dengan kerangka kerja seperti XNA. Tetapi dengan kerangka kerja minimal, Anda bisa melakukan banyak hal.

Juga, Anda dapat mempertimbangkan untuk menggunakan produk mapan seperti Unity untuk mengembangkan game portabel di C #.

xoofx
sumber
1
+1 untuk ANX. Sangat menyenangkan karena saya sangat suka kesederhanaan XNA (saya cepat menyerah dengan #DX karena jumlah kode boostrap yang diperlukan).
Jonathan Dickinson
Wow, terima kasih telah menambahkan Alexandre, saya baru saja membaca beberapa posting Anda malam ini pada keberangkatan Anda dari tim slimDX dan apa yang ada dalam pikiran Anda untuk SharpDX. Sangat menyenangkan melihat kerja yang terfokus seperti itu, dan sangat menyenangkan memiliki kerangka kerja terkelola lainnya, mesin grafis terkelola hanya semakin besar, dan saya belum berpikir kita telah melihat kemungkinan sepenuhnya. Saya hanya berharap bahwa masalah kinerja dengan kode Terkelola apakah mereka berasal dari waktu panggilan atau perilaku pengumpul sampah dapat diselesaikan atau diminimalkan menjadi tidak penting. Pekerjaan Anda tentu menambah solusi itu.
Gavin Williams
Benar-benar ada banyak pilihan. Saya sudah mengunduh Unity. Saya belum pernah melihat mesin-game atau yang seperti itu sebelumnya, jadi menarik untuk melihat apa yang bisa dilakukannya, dan bagaimana melakukannya. Saya memiliki dasar-dasar proyek saya sudah ditulis dalam xna dan itu di suatu tempat di sekitar 5.000-10.000 baris kode jadi saya ingin menggunakan kode itu jika saya bisa. Tapi ini masih jauh dari selesai, jadi saya kira jika saya menghabiskan satu atau dua minggu melihat kerangka kerja dan mesin yang berbeda itu bukan investasi yang buruk.
Gavin Williams
Belum pernah mendengar tentang ANX sebelum posting ini. Sangat tertarik kemana ini pergi. Omong
David Gouveia