게임 개발을 지원하기 위해 어떤 C # 라이브러리를 사용할 수 있습니까? [닫은]


58

게임은 그래픽 (DirectX, OpenGL, ...), 사운드 (OpenAL, Ogg Vorbis, ...) 또는 물리학 (충돌 등)과 같은 다양한 하위 시스템을 기반으로하기 때문에 유용한 라이브러리는 무엇입니까? C #의 게임 개발 및 어떤 이점이 있습니까?

답변:


63

그래픽 / 사운드

  • DirectX9의 XNA 고급 래퍼. 빠르게 시작하고 실행할 수 있습니다. PC, Xbox360 및 Windows Phone 7을 지원합니다. Xact 오디오는 자체 SoundEffect API와 함께 지원합니다.
  • DX9 / 10 / 11의 SlimDX 하위 레벨 래퍼. DX SDK에 있으면 여기에 래핑됩니다.
  • OpenGL / AL의 OpenTK 래퍼.
  • SDL.net 대중적인 SDL 라이브러리의 포트.

엔진

  • WaveEngine 컴포넌트 기반 게임 엔진 아키텍처, C # API, 2D 및 3D 물리 엔진, 아름다운 시각 효과, 플랫폼 간 지원 Android, Linux, Mac, iOS 및 Windows, 고급 레이아웃 시스템 등.
  • NeoAxis NVIDIA PhysX 물리 엔진, C # 바인딩을 지원하는 3D 엔진은 WPF 및 Windows Forms, Chromium을 사용하는 게임 브라우저, 탐색 메시가있는 경로 찾기 등의 맵, 객체, 모델, 재료, 지형 편집기와 같은 다양한 도구를 지원합니다.
  • TorqueX XNA 용 2D / 3D 엔진. 좋은 편집자 지원, 차고 게임은 최근 무시한 후 엔진에 재투자했습니다.
  • C # 바인딩이있는 truevision 3d C ++ 게임 엔진
  • 공리 C #에서 오우거를 다시 쓴다. 수많은 백업 렌더링 API를 지원합니다.
  • Unity 는 C #에서 게임 플레이 스크립팅을 지원하는 C ++ 그래픽 / 게임 엔진입니다
  • AngelXNA EALA의 오픈 소스 앵글 protoypeing 프레임 워크의 포트

물리학

  • Farseer 널리 사용되는 2D 물리 엔진으로 .net (desktop), compact (xbox) 및 micro (silverlight)를 지원합니다.
  • 지터 완성보다 훨씬 더 상대적으로 새로운 3D 물리 엔진을.
  • Box2Dx box2D 의 직접 포트
  • Box2D.XNA XNA 용 Box2D의 다른 포트. Box2Dx보다 최신
  • 지그 리브
  • BulletX Bullet 의 c # 포트는 버린 것 같습니다.

1
훌륭한 개요, 그것은 내가 찾던 정답이었습니다!
Michael Klement

2
XNA는 매우 큰 커뮤니티이므로 Henge3D를 물리에, Sunburn을 그래픽에, sgMotion 및 XNAnimation을 그래픽 (또는 애니메이션)에 추가하고 싶습니다.
Chris Ridenour

차고 게임은 TorqueX를 더 이상 지원하지 않습니다.
Markus

3
이 답변이 처음 게시 된 이후 몇 년 동안 Microsoft는 XNA 지원을 중단했습니다. 이 라이브러리는 더 이상 사용하지 않는 것이 좋습니다. 대신 MonoGame을 사용하십시오.
jhocking

10

분명히 Microsoft 자체의 XNA가 있습니다. http://creators.xna.com/en-US/ XNA로 만든 게임은 Windows에서 작동하고 Xbox는 (크리에이터 클럽을 통해) 작동합니다. 나는 이것이 빠른 게임 개발에 발을 담그는 데 완벽하다고 생각합니다. 아직 XNA에 발이 제대로 젖지 않았으므로 아직 판단 할 수 없습니다. 그러나 측면에서 보면 얇게 썬 빵 이후 가장 좋은 것처럼 보입니다. 물론, 당신은 그것으로 모든 것을 할 수는 없습니다. 그러나 빠른 프로토 타입과 인디 품질 이상의 작업 게임을 만들 수 있습니다.

다른 라이브러리는 SlimDX- http ://slimdx.org/ 이며 XNA로 작업하지 않으려는 경우 일부는 금속 / 현실에 더 가깝습니다. 따라서 주요 프로토 타입 개발이 C 또는 C ++ 인 경우 빠른 프로토 타이핑을 수행하는 데 좋습니다. 또한 도구를 만드는 데 좋습니다.


3
또한 SlimDX는 WPF의 Direct3D interop 지원 (호환중인 게임 유형에 따라 다름)과 호환 될 수 있다는 이점이 있습니다. WPF / XNA interop에 대한 공식적인 지원은 없으며, 일부 사람들이 두 사람이 함께 작업 할 수 있다고 생각하지만 그 과정은 해킹과 깨지기 쉬웠습니다.
Mike Strobel

XNA를 Mono와 크로스 플랫폼으로 작동시키려는 노력 필요하다는 점을 추가해야합니다 (MonoXNA 참조).
Mike Strobel

@Mikw Strobel : +1, 그러나 XNA의 큰 판매 포인트는 360에 배포 / 판매 할 수있는 능력이며 내가 본 모든 WPF / XNA 항목은 360에서 실행되지 않는다는 점을 기억하십시오.
Steven Evers

4

C 라이브러리 SDL의 포트는 .NET, SDL.NET에 있습니다. 개인적으로 C #에서 XNA를 사용합니다. 라이브러리는 잘 정리되어 있으며 사용자 정의가 가능하고 초보자도 친절하기 때문입니다.


XNA는 초보자에게 친숙하지만 지금은 특히 유동적입니다. 4.0에는 여러 가지 주요 변경 사항이 있으며 발을 적실 때 성가신 일입니다.
Steven Evers

4

면책 조항 :이 엔진 개발에 개인적으로 참여하여 다음 권장 사항이 편향 될 수 있습니다.

Duality 는 WYSIWYG 편집기 시스템과 함께 제공되는 확장 가능한 2D 게임 엔진입니다. 빠른 개요:

  • 그것은이다 플러그인 기반 . 새 애플리케이션을 작성하지 않고 모든 코드가 포함 된 플러그인을 작성하십시오.
  • 플러그인 은 편집기에서 런타임 재로드 기능을 제공 합니다 . 빠른 반복이 가능합니다.
  • OpenTK / OpenGL / OpenAL을 기반으로 완전히 C #으로 작성된 오픈 소스
  • 비교적 새롭고 (2-3 년) 여전히 개발 중이지만 이미 사용할 수 있습니다.
  • 렌더링, 오디오, 사용자 입력, 물리, 직렬화, 리소스 및 객체 관리 처리
  • 시작하기위한 많은 헬퍼 클래스와 기본 컴포넌트.

그것을 원한다면 최신 바이너리 릴리스를 직접 다운로드 하거나 GitHub소스 코드를 사용하여 직접 컴파일 할 수 있습니다 . 더 많은 정보를 얻으려면 정보 웹 사이트 및 커뮤니티 포럼을 방문하십시오. 위에 포함 된 정보 웹 사이트의 링크를 따라 가십시오.

편집 환경의 스크린 샷


일반적으로 권장하는 소프트웨어 개발에 관여하고 있음을 공개하는 것이 가장 좋습니다.
Josh

@JoshPetrie 당신이 옳을 수도 있습니다. 이 특정 상황에서 중요한지 확실하지 않습니다. 어쨌든 지금 면책 조항을 추가했습니다. :)
Adam



2

오늘날까지 가장 큰 (그리고 가장 입증 된) 것은 XNA 프레임 워크입니다. XNA를 활용하여 도구 세트를 구축 할 수도 있습니다. 장점은 하나의 패키지에 포장 된 필요한 라이브러리 (물리, 사운드, 그래픽)가 포함 된 프레임 워크를 가지고 있다는 것입니다. 큰 장점은 실제로 무언가를 잘하면 XBLA로 펌핑 할 수 있다는 것입니다.



2

OpenGL과 다른 많은 유용한 게임 프로그래밍 기능 (C #을 통해 액세스 가능)을 래핑 하는 Tao 프레임 워크 (이 책에서 꽤 유용하다고 생각한 C # Game Programming For Serious Game Creation )를 살펴볼 가치가 있습니다. 그러나 다른 답변에서 언급 한 Open Toolkit 라이브러리 (OpenTK) 로 대체되었습니다 . 나는 Tao가 약 2 년 동안 활동하지 않았다는 점을 고려하여이 책이 OpenTK 대신에 Tao Framework를 사용하는 것이 이상하다고 생각한다 (그리고 그 책은 아주 새롭다). 여전히 체크 아웃 할 가치가있는 유용한 프레임 워크입니다.



0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/)는 XNA를 기반으로 한 멋진 프로토 타입 지향 라이브러리 / 엔진입니다.


0

내가 찾을 수 SFML.Net가 좋은 선택이 될, 그리고 내가 개인적으로 사용하는 것입니다. 그러나 사이트에 제공된 바이너리를 사용하지 말고 SVN에서 최신 버전을 가져 오십시오. 사이트 버전이 매우 오래되었습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.