C #은 게임 개발에 미래가 있습니까?


18

나는 최근 MV Minecraft가 CVG.co.uk에 대한 최근 인터뷰에서 이전과 현재 경쟁중인 두 동료 간의 가능한 협력에 대해 Java를 통해 구동된다는 것을 알게되었습니다. 인터뷰에서 그는 Minecraft의 창립자가 Java 코더이고 C 또는 C ++ 코더이므로 서로 호환되지 않는다고 솔직히 말했다. 따라서 향후 프로젝트에 대한 협력은 어려울 것입니다.

Java가 그렇게 할 수 있다면 이것은 나에게 생각을 주었다. 게임이나 주류 게임 개발에 관한 한 MS는 매우 인기있는 C # 언어와 .Net 플랫폼에 대해 미래에 어떤 영향을 미칩니 까?



3
그것은 당신이 필요로하는 공연에 대한 모든이야, 마인 크래프트는 관리 언어로 확인하지만, 하이 엔드 그래픽 게임, C 또는 C ++ 또는 다른 원주민에 대한 언어를 선호하는

19
Minecraft는 실제로 MMO가 아닙니다.
DeadMG

3
@ Guillaume86 : 지터 코드는 현재 네이티브 코드보다 성능이 뛰어나며 Jits는 항상 향상되고 있습니다. 또한 관리되는 언어는 훨씬 강력한 프로그램을 생성합니다. 결국 C ++는 성능상의 이점을 잃고 강력한 프로그램을 작성하기가 훨씬 어렵습니다 (개발 시간이 길고 비용이 많이 든다)
Martin

4
JIT는 철저하게 최적화되고 조정 된 내부 루프가 아니라 잘못 작성된 원시 코드를 능가 할 수 있습니다. C #을 사용하더라도 원하는 경우 C / C ++로 민감한 세그먼트를 작성할 수 있습니다.
coderanger

답변:


22

XNA를 확인해야합니다 . C # 및 .NET의 Windows, Xbox 360 및 Windows Mobile 7 용 게임을 빌드하기위한 플랫폼.


11

저는 5 년 이상 프로 게임 개발에 종사하고 있습니다. 이 시간의 대부분은 거의 독점적으로 C #을 사용했습니다.

일반적으로 C # 및 .NET 스택은 서버 측 기술에 정말 좋습니다. C #으로 작성된 서버로 4 개 이상의 MMO 게임을 작업했습니다. 또한 Unity3D의 인기가 높아짐에 따라 많은 브라우저 및 모바일 게임에는 C #이 필요합니다. XNA 프레임 워크를 잊지 마십시오 : AAA 콘솔 타이틀을위한 엔진은 아니지만, 많은 훌륭한 게임들이 있으며, 현재 더 많은 게임이 제작되고 있습니다.

전반적으로 C #은 확실히 게임 개발의 미래를 가지고 있습니다.


그것은 오래된 질문이지만 한 가지가 나를 귀찮게합니다. "서버 측 기술"-정확히 무엇을 의미합니까? .NET Framework를 사용하는 일부 Windows Server에서 실행되는 WindowsService? 나는 항상 서버가 c ++로 만들어지고 유닉스 OS에서 실행된다고 생각했습니다. 그냥 궁금해서
Marshall

그렇습니다. 바로이 사이트 인 AFAIK를 실행하는 서버를 포함하여 많은 서버가 Windows에서 실행되고 있습니다.
Nevermind

다시 연락해 주셔서 감사합니다. "Windows에서 실행"을 헤드리스 Windows 서비스 또는 WinForms와 같은 프로그램 (구성에 내장되어 있거나 이와 유사한 것)으로 명확하게 설명 하시겠습니까?
Marshall

헤드리스 서비스는 일반적으로 더 나은 아이디어이지만 콘솔 응용 프로그램을 실행하는 데 방해가되는 것은 없습니다. 또는 GUI에 해당 GUI를 사용할 서버가없는 것을 제외하고는 GUI도 있습니다.
신경 쓰지 마

10

앞에서 언급했듯이 Mono 는 C #을 여러 플랫폼으로 가져옵니다. 같은 영역 에 Cg, DevIL, FreeGLUT, GLFW, GLU, ODE, OpenAl, OpenGL, PhysicsFS, SDL 및 WGL에 액세스 할 수있는 Mono 및 .NET 용 멀티 플랫폼 라이브러리 인 Tao 가 있습니다. XNA (개발자에게 기본 엔진 구성 요소를 직접 제공하는)와 같은 기능에 관해서는 분명히 강력하지 않습니다. 그러나 강력합니다.

따라서 Microsoft에서 제어하는 ​​OS 및 하드웨어를 넘어서는 크로스 플랫폼이 가능합니다. 많은 인디 게임이 아직이 능력을 활용하지는 않았습니다.

언급 한 바와 같이, C #과 결합 된 XNA를 통해 독립 개발자는 360, PC 및 Windows Phone 7에 게시 할 수 있습니다.

전반적으로, C #은 엔진 / 게임 언어로서 게임 개발에 활기를 띠고 있습니다.

도구 언어로서 모든 곳에서 사용되고 있습니다. EA, THQ 및 이제 Arkadium 용 도구를 모두 C #을 사용하여 작성했습니다.


5

C #은 게임 개발의 미래 뿐만 아니라 XNA를 사용하여 개발 된 최근 출시 된 게임 인 Magicka를 확인하십시오 . 또한 수상 경력에 빛나는 Dream.Build.Play 항목을 살펴보십시오 . C #은 게임을 만드는 실용적인 방법입니다 (현재는 모든 게임에 적합한 선택이라고 생각하지는 않습니다 ).

시간이 지남에 따라 컴퓨터 게임 산업에서 인기가 높아지는 것을 볼 수 있지만, 어느 시점에서나 C #으로 갑자기 전환 할 것으로는 생각하지 않습니다.


4

Java는 항상 다재다능한 언어였으며 간단한 웹 기반 게임 (Java 애플릿 / 캔버스 플러그인이있는 GWT)에서 완전한 3D 짐승 (체크 아웃)에 이르기까지 사람들이 게임을 코딩 할 수있는 능력이 항상있었습니다. JMonkey )에 . 그래서 Java가 그런 종류의 일을 할 수 있다는 사실은 C # 킬러라고 말할 수 없습니다. 대부분의 사람들은 Java가 이미 그렇게 할 수 있다는 것을 알고 있기 때문입니다.

C #은 필연적으로 Windows, Windows mobile 및 Xbox와 Java와 훨씬 더 잘 연계되어 있기 때문에 여전히 인기를 유지할 것입니다. 게임 개발 측면에서 실제로 시작된 XNA도 얻었습니다.

예, Java는 누군가가 그 길을 가고 싶다면 게임 개발을위한 완벽한 플랫폼이지만 C #이나 .NET 킬러는 아닙니다.


4

Unity 3D를 확인하십시오. 고성능 3D 엔진의 C # (및 JavaScript 및 Boo) 스크립팅

XNA를 믹스에 추가하면 게임 개발에 C #을 사용할 수있는 몇 가지 훌륭한 플랫폼을 찾고 있습니다.


Unity에는 또한 웹 플레이어가있어 브라우저에서 재생할 수 있습니다. 플러그인은 플래시 또는 자바와 같은 시장 침투가 크지 않지만 가능합니다.
Michael Coleman

통일을 위해 예!
Daniel Pendergast

1

예, C #은 XNA 프레임 워크를 통해 미래가 있습니다. 대부분 때문에 속도의 C ++를 선호하지만, C #이 아닌 이상 느린 ...


2
전혀 느리지 않습니다. C ++ 속도의 약 70 %보다 나쁘지 않으며 때로는 더 빠를 수도 있습니다!
Noldorin

4
C #의 CPU 바운드 작업은 매우 빠르며 약간의 추가 검사를 수행하여 약간의 성능 저하로 인해 코드의 안전성이 크게 향상되지만 C ++이 메모리 소비 및 관리보다 훨씬 나쁩니다. C #에서 훨씬 쉽고 누출이 적지 만 GC의 성능 히트는 절대 개가 될 수 있습니다.
justin.m.chase

Xbox360을 대상으로 할 때는주의하십시오. XNA 런타임에는 일부 주요 최적화 기능이 없으며 성능에 민감한 부분을 관리되지 않는 코드로 전환하지 못합니다.
drxzcl


1

이 경우 Java로 수행 한 작업은 애플릿을 생성하여 사이트에 로그온하여 사용중인 운영 체제에 완전히 투명한 매우 일반적인 플러그인으로 재생할 수 있습니다. 그의 생각은 Java가 이런 식으로 사용될 때 매우 투명하고 그가 반복적 인 개발 / 테스트를 통해 팬들에게 쉬운 일이 될 것이라고 생각했습니다. 일반적으로 테스터는 게임뿐만 아니라 모든 것을 설치하고 이것을 컴파일하고 실행하는 방법에 대한 일반적인 지식을 가지고 있어야하기 때문에 XNA 로이 작업을 수행 할 수 있다고 생각하지 않습니다.

그래서 나는 이것으로부터 패러다임 전환이 없다고 말할 것입니다. 그것은 당시에 그가 필요로했던 것에 만 적합했으며 분명히 잘 작동했습니다.


1

물론, 많은 프로그래밍 언어가 게임 개발에있어 미래를 가지고 있습니다. 컴퓨팅 프레스에서 자주 사용되는 잘못된 딜레마는 X 유형의 도구가 하나만있을 수 있으며 모든 사람이이를 원한다는 것입니다.

진실과는 거리가 멀다.

C #과 Java는 오랫동안 게임에서 사용되었습니다. C와 C ++는 훨씬 더 오래 있으며 여전히 존재합니다. Lua는 C / C ++로 작성된 엔진과 함께 매우 인기있는 일부 게임의 스크립트 언어로 사용됩니다.

분명히, 프로그래밍 언어는 다른 프로그래밍 언어를 게임 프로그래밍 언어 (Game Programming Language)로 물에서 날려 버리지 않습니다. 실제로, 우리는 주요 게임이 엔진을 개발하기위한 고성능 컴파일 된 프로그래밍 언어로 구성되는 경향이 있고 UI와 물건의 동작을 스크립팅하기위한 더 높은 수준의 동적 프로그래밍 언어로 구성되는 경향을 봅니다.

현재 핵심은 성능입니다. 사용 된 프로그래밍 언어 / 라이브러리 중 하나가 응용 프로그램에서 예측할 수 없거나 제어 할 수없는 일시 중지를 유발하는 경우 액션 게임에서 얼굴이 평평하게 떨어집니다. 그러나 텍스트 기반 어드벤처 게임에서는 괜찮을 것입니다.

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