SharpDX è abbastanza maturo da adottare ancora o dovrei iniziare a usare SlimDX in questo momento?


10

Sto per interrompere il mio progetto di gioco in XNA perché da quello che posso raccogliere il suo sviluppo sta finendo (ed è già dietro la tecnologia attuale). Pertanto, devo adottare un nuovo framework o API.

Ho appena trascorso 2 giorni a guardare il C ++ e ho deciso che non è davvero per me, tuttavia trovo che l'accesso crudo a DirectX sia allettante. SharpDX sembra un buon punto di partenza, ma non ha documentazione né commenti sul codice. Sento che non è del tutto pronto per l'uso.

Sono interessato alle opinioni delle persone che hanno utilizzato uno o entrambi questi framework, per aiutarmi a decidere con certezza quale dovrei imparare? Grazie per qualsiasi consiglio


1
Domanda molto colloquiale :). SharpDX è probabilmente maturo come SlimDX perché viene generato direttamente dalle intestazioni - in quanto tale, ha ottenuto immediatamente il 100% di DirectX. Entrambe le librerie sono essenzialmente le stesse; quindi puoi semplicemente usare i campioni SlimDX per SharpDX.
Jonathan Dickinson,

1
È possibile che la tua reticenza nel raccogliere C / C ++ sia il vero problema in termini di eccitazione. Fintanto che rimani a livello gestito, non otterrai mai la vera carne, IMO. Questo da qualcuno che per molto tempo ha imprecato con le lingue gestite, nonostante sia stato formalmente addestrato in C ++. Solo un'osservazione. Non evitare il C ++ troppo difficile. Se lo fai, limiterai sicuramente le tue opzioni in questo settore, mentre il contrario non è assolutamente vero, infatti ti dà un solido punto di ingresso in altri settori (medico, finanziario, difesa). La paga media è molto meglio laggiù, FYI.
Ingegnere

Sono davvero interessato al DX, e anche se potrei finire per portare il mio progetto su Slim o Sharp, sto sicuramente ascoltando quello che stai dicendo. E probabilmente mi servirebbe bene continuare ad imparare il C ++ in modo da poter superare quel disagio. Mi piacerebbe pensare che tra 12 mesi se fossi in una posizione in cui dovevo usare C ++ / Direct X, avrei potuto scegliere di farlo, se fosse lo strumento giusto per il lavoro.
Gavin Williams,

Risposte:


16

Sono l'autore di SharpDX, quindi il mio consiglio sarà di parte, ma vorrei almeno rispondere ad alcune delle tue preoccupazioni.

Per quanto riguarda la documentazione SharpDX, lo stato attuale è molto limitato, poiché ho lavorato finora per rendere accessibile l'intera API DirectX da .NET e dal nuovo sistema operativo Win8. Dato che sono chiuso per finire su questo lato, sto lavorando per fornire un sito Web completo e alcuni articoli per spiegare i concetti chiave di SharpDX e come ottenerne il meglio. Inoltre, tieni presente che questo progetto è principalmente quello di portare DirectX su .NET, quindi è ancora un'API di basso livello. Quindi richiede di scavare un po 'nel comportamento dell'API C ++ per capire come funziona. Fortunatamente, quasi ogni singolo metodo in SharpDX è associato a un singolo metodo nell'API DirectX, quindi è facile controllare come utilizzare un metodo controllando l'API DirectX. Il sistema di documentazione che sarà disponibile con SharpDX 2.

SharpDX è pronto per essere utilizzato per lo sviluppo di un gioco? In breve, sì.

Prima di tutto, sono stato assunto da una società giapponese per partecipare allo sviluppo di un nuovo motore 3D in C #, e stiamo usando SharpDX per il back-end di rendering su Windows.

In secondo luogo, ho ricevuto molte e-mail private da sviluppatori di aziende che utilizzano SharpDX per sviluppare applicazioni multimediali (che vanno dai giochi, editor di livelli, pubblicazione di foto online ... ecc.). Alcuni di questi clienti sono abbastanza grandi (purtroppo non posso citarli).

Infine, alcuni progetti pubblici open source stanno utilizzando (o stanno per utilizzare) SharpDX per il loro rendering back-end principale. Ad esempio, Delta Engine sta già utilizzando SharpDX per il suo rendering Direct3D11 (che sarà disponibile anche per Win8). Il progetto ANX (un successore open source XNA) sta anche utilizzando SharpDX per il rendering, i gamepad e la gestione audio.

SharpDX è solo un passo sulla strada per costruire un motore di gioco e quindi un gioco. Poiché l'API è di basso livello, non puoi aspettarti di avere lo stesso tipo di funzionalità di alto livello a cui eri abituato con un framework come XNA. Ma con un framework minimo, potresti fare molte cose.

Inoltre, potresti considerare di utilizzare un prodotto consolidato come Unity per sviluppare giochi portatili in C #.


1
+1 per ANX. Davvero emozionante perché adoro la semplicità di XNA (ho rinunciato rapidamente a #DX a causa della quantità di codice boostrap richiesto).
Jonathan Dickinson,

Wow, grazie per aver aggiunto Alexandre, stasera stavo leggendo alcuni dei tuoi post sulla tua partenza dal team di slimDX e cosa hai in mente per SharpDX. È bello vedere un lavoro così concentrato ed è bello avere un altro framework gestito, i motori di grafica gestita stanno solo diventando più grandi e non credo che abbiamo ancora visto tutte le possibilità. Spero solo che i problemi di prestazioni con il codice gestito, indipendentemente dal fatto che siano dovuti ai tempi di chiamata o al comportamento del garbage collector, possano essere risolti o ridotti al minimo in modo da non avere alcuna importanza. Il tuo lavoro si sta sicuramente aggiungendo a quella soluzione.
Gavin Williams,

C'è davvero molta scelta. Ho scaricato Unity. Non ho mai visto un motore di gioco o qualcosa del genere prima, quindi dovrebbe essere interessante vedere cosa può fare e come lo fa. Ho i fondamenti del mio progetto già scritti in xna ed è da qualche parte nelle vicinanze di 5000-10.000 righe di codice, quindi mi piacerebbe usare quel codice se potessi. Ma è ancora molto lontano dal completo, quindi suppongo che se trascorro una settimana o due guardando quadri e motori diversi non è un cattivo investimento.
Gavin Williams,

Non avevo mai sentito parlare di ANX prima di questo post. Molto interessato a dove sta andando. E a proposito, potresti voler aggiornare il link sul tuo post a: anxframework.codeplex.com
David Gouveia,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.