Tôi là tác giả của SharpDX, vì vậy lời khuyên của tôi sẽ bị sai lệch, nhưng ít nhất tôi muốn trả lời về một số mối quan tâm của bạn.
Về tài liệu của SharpDX, trạng thái hiện tại rất hạn chế, vì tôi đã làm việc cho đến nay để mang toàn bộ API DirectX có thể truy cập từ .NET và HĐH Win8 mới. Khi tôi đóng cửa để hoàn thành về phía này, tôi đang làm việc để cung cấp một trang web đầy đủ và một số bài viết để giải thích các khái niệm chính của SharpDX và làm thế nào bạn có thể tận dụng tốt nhất. Ngoài ra, hãy nhớ rằng dự án này chủ yếu là để mang DirectX lên .NET, vì vậy nó vẫn là một API cấp thấp. Vì vậy, nó đòi hỏi bạn phải đào sâu một chút vào hành vi của API C ++ để hiểu cách thức hoạt động của nó. May mắn thay, hầu hết mọi phương thức trong SharpDX đều ánh xạ tới một phương thức duy nhất trong DirectX API, vì vậy thật dễ dàng để kiểm tra cách sử dụng một phương thức bằng cách kiểm tra DirectX API. Hệ thống tài liệu sẽ có sẵn với SharpDX 2.
SharpDX đã sẵn sàng để được sử dụng để phát triển trò chơi chưa? Tóm lại, Có.
Trước hết, tôi đã được một công ty Nhật Bản thuê để tham gia phát triển công cụ 3D mới trong C # và chúng tôi đang sử dụng SharpDX cho phần phụ trợ kết xuất trên Windows.
Thứ hai, tôi đã nhận được rất nhiều thư riêng từ các nhà phát triển từ các công ty đang sử dụng SharpDX để phát triển ứng dụng đa phương tiện (từ trò chơi, trình chỉnh sửa cấp độ, xuất bản ảnh trực tuyến ... vv.). Một số khách hàng này khá lớn (Thật không may, tôi không thể trích dẫn họ).
Cuối cùng, một số dự án nguồn mở công khai đang sử dụng (hoặc sẽ sử dụng) SharpDX để kết xuất phụ trợ chính của chúng. Ví dụ: Delta Engine đã sử dụng SharpDX để kết xuất Direct3D11 (cũng sẽ có sẵn cho Win8). Upcomming dự án ANX (một XNA kế mã nguồn mở) cũng được sử dụng SharpDX cho các rendering, bàn chơi và quản lý âm thanh.
Nhưng SharpDX chỉ là một bước trên con đường xây dựng một công cụ trò chơi, và sau đó là một trò chơi. Vì API ở cấp độ thấp, bạn không thể mong đợi có cùng loại tính năng cấp cao mà bạn đã sử dụng với một khung như XNA. Nhưng với một khung tối thiểu, bạn có thể làm rất nhiều thứ.
Ngoài ra, bạn có thể cân nhắc sử dụng một sản phẩm được thiết lập tốt như Unity để phát triển các trò chơi di động trong C #.