SharpDX가 아직 성숙 할 수 있을까요? 아니면 지금 SlimDX를 사용해야합니까?


10

XNA에서 게임 프로젝트를 중단하려고합니다. 수집 할 수있는 것부터 개발이 끝났기 때문에 (그리고 이미 현재 기술 뒤에 있습니다). 따라서 새로운 프레임 워크 또는 API를 채택해야합니다.

방금 C ++을 보면서 2 일을 보냈고 실제로는 그렇지 않다고 결정했지만 DirectX에 매력적인 액세스 권한을 얻습니다. SharpDX는 시작하기에 좋은 곳처럼 들리지만 문서와 코드 주석은 없습니다. 사용할 준비가되지 않은 것 같습니다.

이 프레임 워크 중 하나 또는 둘 다를 사용해 본 사람이 어떤 것을 배워야하는지 확실히 결정하는 데 도움이되는 사람들의 의견에 관심이 있습니다. 조언을 주셔서 감사합니다.


1
매우 대화적인 질문 :). SharpDX는 헤더에서 직접 생성되므로 SlimDX만큼 성숙 할 수 있습니다. 따라서 DirectX를 100 % 즉시 감쌌습니다. 두 라이브러리는 기본적으로 동일합니다. SharpDX에 SlimDX 샘플을 사용할 수 있습니다.
Jonathan Dickinson

1
C / C ++를 줍는 당신의 유혹이 흥분에 관한 실제 문제 일 가능성이 있습니다. 관리 수준을 유지하는 한 실제 고기 인 IMO를 절대 얻지 못할 것입니다. 이것은 C ++에서 공식적으로 훈련을 받았음에도 불구하고 오랫동안 관리되는 언어로 맹세 한 사람으로부터였습니다. 단지 관찰. C ++을 너무 열심히 피하지 마십시오 . 그것은 당신이 할 경우이 업계에서 옵션을 확실히 제한 할 것이지만, 그 반대는 사실이 아니므로 사실 다른 산업 (의료, 금융, 방어)에 대한 확실한 진입 점을 제공합니다. 평균 급여는 저쪽에 훨씬 좋습니다.
엔지니어

나는 DX에 정말로 관심이 있으며, 프로젝트를 Slim 또는 Sharp로 이식 할 수는 있지만 확실히 당신이 말하는 것을 듣고 있습니다. 그리고 아마도 그 불편 함을 극복 할 수 있도록 C ++을 계속 배우는 것이 나에게 도움이 될 것입니다. C ++ / Direct X를 사용해야하는 위치에 있다면 지금 12 개월 후에 작업에 적합한 도구라면 그렇게 할 수 있다고 생각하고 싶습니다.
개빈 윌리엄스

답변:


16

저는 SharpDX의 저자이므로 제 조언은 편견이 있지만 최소한 귀하의 우려에 대해 답변하고 싶습니다.

SharpDX 설명서에 대해서는 현재 상태가 매우 제한적입니다. 지금까지 .NET 및 새로운 Win8 OS에서 액세스 가능한 전체 DirectX API를 가져 오기 위해 노력하고 있습니다. 이 쪽에서 마무리를 마치면서 SharpDX의 주요 개념과이를 최대한 활용하는 방법을 설명하는 전체 웹 사이트와 기사를 제공하고 있습니다. 또한이 프로젝트는 주로 DirectX를 .NET으로 가져 오는 것이기 때문에 여전히 저수준 API입니다. 따라서 작동 방식을 이해하려면 C ++ API의 동작을 약간 파헤쳐 야합니다. 운 좋게도 SharpDX의 거의 모든 단일 메소드는 DirectX API의 단일 메소드에 맵핑되므로 DirectX API를 확인하여 메소드 사용 방법을 쉽게 확인할 수 있습니다. SharpDX 2와 함께 사용할 수있는 설명서 시스템.

게임 개발에 SharpDX를 사용할 준비가 되셨습니까? 한마디로 그렇습니다.

우선, 일본 회사에서 C #의 새로운 3D 엔진 개발에 참여하기 위해 고용되었으며 Windows의 렌더링 백엔드에 SharpDX를 사용하고 있습니다.

둘째, SharpDX를 사용하여 멀티미디어 응용 프로그램 (게임, 레벨 편집기, 온라인 사진 게시 등)을 개발하는 회사로부터 개발자로부터 많은 개인 메일을 받았습니다. 이 고객 중 일부는 상당히 큽니다 (불행히도 인용 할 수 없습니다).

마지막으로, 일부 공개 오픈 소스 프로젝트는 주요 백엔드 렌더링에 SharpDX를 사용하고 있습니다. 예를 들어, 델타 엔진 은 Direct3D11 렌더링을 위해 이미 SharpDX를 사용하고 있습니다 (Win8에서도 사용 가능). 다가오는 ANX 프로젝트 (오픈 소스 XNA 후속)는 또한 렌더링, 게임 패드 및 오디오 관리에 SharpDX를 사용하고 있습니다.

그러나 SharpDX는 게임 엔진을 구축 한 다음 게임을 시작하는 단계에 불과합니다. API는 저수준이므로 XNA와 같은 프레임 워크에서 사용했던 것과 같은 종류의 고급 기능을 기대할 수 없습니다. 그러나 최소한의 프레임 워크로 많은 일을 할 수 있습니다.

또한 C #에서 휴대용 게임을 개발하기 위해 Unity와 같이 잘 정립 된 제품을 사용하는 것을 고려할 수 있습니다.


1
ANX의 경우 +1 XNA의 단순함을 정말로 좋아하면서 정말 흥미로 웠습니다 (필요한 부 스트랩 코드로 인해 #DX를 빨리 포기했습니다).
Jonathan Dickinson

와우, Alexandre를 추가해 주셔서 감사합니다. 오늘 밤 slimDX 팀에서 출발하여 SharpDX에 대해 생각한 내용 중 일부를 읽었습니다. 이러한 집중적 인 작업을 보는 것이 좋으며 다른 관리 프레임 워크를 갖는 것이 좋습니다. Managed 그래픽 엔진이 점점 커지고 있지만 아직 모든 가능성을 보지 못했다고 생각합니다. 콜 타임이든 가비지 수집기 동작이든 상관없이 Managed 코드의 성능 문제가 중요하지 않게 해결되거나 최소화되기를 바랍니다. 당신은 분명히 그 솔루션에 추가하고 있습니다.
개빈 윌리엄스

정말 많은 선택이 있습니다. Unity를 다운로드했습니다. 나는 이전에 게임 엔진이나 그와 비슷한 것을 본 적이 없으므로 그것이 무엇을 할 수 있는지, 어떻게 수행하는지 보는 것이 흥미로워 야합니다. 나는 이미 xna로 작성된 프로젝트의 기본을 가지고 있으며 5000-10,000 줄의 코드 근처에 있으므로 가능한 경우 해당 코드를 사용하고 싶습니다. 그러나 그것은 여전히 ​​완전한 것과는 거리가 멀기 때문에 다른 프레임 워크와 엔진을 살펴 보는 데 1-2 주를 소비한다면 나쁜 투자가 아니라고 생각합니다.
개빈 윌리엄스

이 게시물 전에 ANX에 대해 들어 본 적이 없습니다. 이것이 어디로 가고 있는지 매우 관심이 있습니다. 그리고 글의 링크를 anxframework.codeplex.com
David Gouveia에서
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.