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 #.