게임 개발에서 C ++이 "여전히"선호됩니까? [닫은]


17

저는 2D 게임 프로그래머입니다 .C, Java, C #에 능숙한 프로그래밍 언어가 있습니다. 또한 Actionscript 2.0,3.0 및 일부 Javascript를 알고 있습니다. 3D 게임 프로그래밍에 관심이 있습니다. 지금까지 연구에서 다른 게임 개발 포럼과 기사를 검색하고 읽음으로써 축적했습니다. 대부분의 프로그래머는 C ++을 선호하는 경향이 있으며 온라인 게임 프로그래밍 교육 과정에서도 C ++ 및 Visual C ++를 시작 과정으로 가르치는 것을 선호합니다. 3d 게임 프로그래밍에서 C ++, C # 및 Java의 "강점"차이를 알고 싶어서이 질문을하는 이유는 다음과 같습니다.

또한 이미 2D 게임 프로그래머를위한 좋은 3D 게임 프로그래밍 기사에 대한 링크를 포함하십시오 .

추신 : IMHO, 나는 또한 C ++이 암호화 된 것으로 생각합니다.


나는 또한 그것을 많이 얻는다. 따라서 전문 게임 프로그래머가 어떤 기술을 갖추어야하는지 커뮤니티에서 질문을했습니다. 게임 개발을위한 더 나은 언어로 C ++에 중점을 둔 좋은 답변을 받았습니다. check .. gamedev.stackexchange.com/questions/5552/…
GamDroid

@ GamDroid : 나는 전문 2D 게임 프로그래머를 만드는 것에 관심이 없습니다. Visual C ++에 대해 알고 관심이있는 이유는 무엇입니까?
비슈누

2
Btw : Visual C ++? 단순한 C ++뿐만 아니라?
speeder

Visual C ++ 편집기는 멋지지만 Visual C ++ 언어 (즉, Win32 GUI API를 사용하는 C ++ 및 MS Visual C ++ 또는 Borland C ++ Builder와 같은 것)는 매우 혼란스럽고 게임에 사용해서는 안됩니다 부풀어지고 창을 제어하기 위해 SDL을 사용하는 것보다 GDI를 사용하는 것이 느립니다)
Speeder

1
@Vish, 사과, 지금까지 의견을 염두에두고 더 정확하게 편집 할 수 있습니다. Win32 프로그래밍이 혼란 스럽다면 그렇게 말하십시오.
Tetrad

답변:


30

예, C ++는 가장 자주 사용되는 언어입니다 (일부 사람들은 여전히 ​​C를 사용하지만).

여기에는 여러 가지 이유가 있습니다. 단순한 운동량은 하나입니다. 그것은 단순히 수년간 사용되어 온 언어이며, 많은 기술이 이미 존재하고 사람들이 그것에 익숙하기 때문에 밤새 변화가 일어나지 않을 것입니다.

그러면 통제 문제가 있습니다. 게임 개발자는 제어 괴물이며 코드에서 진행중인 모든 것을 알고 싶습니다. C ++은 제어, C # 및 Java (당신이 언급 한 두 가지 대안을 선택하기 위해)가 제어권을 갖도록합니다. 여러 가지면에서 좋은 일이지만 게임 코더는 그것을 좋아하지 않습니다 :)

마지막으로 다양한 플랫폼 용 SDK가 매우 C ++ 중심이라는 간단한 실제 문제가 있습니다. 다른 언어를 사용하는 것은 필연적으로 래퍼 작성, VM으로 크로스 컴파일 및 (일부 콘솔 개발의 경우) 플랫폼 보유자가 허용하지 않을 수 있습니다 (실제로 JIT 컴파일을하는 사람들을 좋아하지 않습니다).


2
주류 개발 산업에서는 그렇습니다.
JasonD

2
언어 측면에서 C ++은 주로 언제 어디서나 진행되지 않습니다. 루아, 파이썬 등 스크립팅 언어에 익숙해지는 것도 아프지 않을 것입니다.
JasonD

8
Visual C ++는 언어가 아니며 IDE입니다.
SurvivalMachine

2
예, 아마도 가장 많이 사용되는 IDE 일 것이므로 C ++을 배우는 동시에 그 사실을 알아야합니다.
JasonD

1
@SurvivalMachine 음 기술적으로는 (표준에 존재하지 않는 MSVC ++ 확장의 많음이있다) 방언이다
bobobobo

4

게임 개발 주제에 관한 거의 모든 출판물에서 볼 수 있듯이 C ++은 여전히 ​​선호됩니다. 나는 개인적으로 현재 C 언어를 사용하여 템플릿 기능을 악용하고, RAII를 광범위하게 사용하고 동적 메모리 할당 및 내가 본 것에서 게임 코드에서하지 말아야 할 다른 것들을 사용하는 간단한 이유 때문에 게임 개발에 뛰어 들기 위해 C를 사용하고 있습니다. 지금까지.

C를 고수하면 최소한으로 강요하고 내가하고있는 일에 대해 생각하게됩니다. STL이 무료로 제공하는 것을 다시 구현해야 할 때 때때로 어려울 수 있지만 거꾸로 나는 깨끗한 코드를 작성하고 그 일을 디버깅하는 데 더 좋은 시간이 있다고 생각합니다.


3
RAII는 게임 코드에서 완벽하게 수용 가능하며 권장되어야합니다.
stonemetal

1
@stonemetal : RAII는 지연되어 예측할 수없는 리소스 할당을 권장합니다. 권장 여부는 게임의 크기와 대상 플랫폼 (및 해당 리소스)에 따라 다릅니다. 평균적으로 나는 그것을 권장하지 않습니다. 또한 C ++의 OO가 스택 할당을 너무 어렵게 만들기 때문에 C ++의 RAII는 힙 할당과 함께 가장 일반적으로 사용됩니다.

3
RAII는 어떤 방법으로 지연된 자원 할당을 권장합니까? GLFW를 사용할 때 생성자에서 GLFW의 init 함수를 호출하고 소멸자에서 GLFW의 정리 루틴을 호출하는 GLFWRAII라는 클래스를 만듭니다. 나는 main의 시작 부분에 스택에 할당합니다. 어쨌든 지연되거나 예측할 수없는 것은 없습니다. 다른 용도는 레벨의 시작 부분에 할당하고 레벨의 끝에서 정리하는 것입니다. 기술을 잘못 사용한다고해서 기술이 열악하지는 않습니다. RAII에 대해서는 아무것도 잘못 사용하는 것 외에 예측할 수없는 리소스 할당을 제안하지 않습니다.
stonemetal

이러한 기능을 사용하지 않아야합니다. 나는 C ++을 사용하며 코드에서 템플릿을 사용하지 않으며 생성자에서 예외를 던지는 객체를 가지고 있지 않습니다. C에서는 여전히 동적 할당을 사용할 수 있습니다 (그리고 3D 게임을해야합니다). 게다가, 당신은 또한있는 방식으로 코딩해야 다른 사람이 순수 C 코드에서 큰 프로젝트는 경우에도, 지옥이 될 수 - 이해하기 쉽게 찾을 당신이 그것을 이해합니다. 언어가 당신을 강요하지 않더라도 당신이하고있는 것에 대해 생각하는 것을 배우면, 다른 많은 언어로도 깨끗한 코드를 작성할 수있을 것입니다.
Pablo Ariel

1

저는 개인적으로 C ++의 팬이 아니며 Java를 선호합니다. 그러나 업계의 대부분의 사람들은이 언어를 사용하며 랩퍼 및 가상 머신없이 다른 플랫폼으로 변환하는 것이 가장 쉬운 언어입니다.

그러나 때로는 다른 언어가 게임 개발에 아주 좋습니다. 나는 LWJGL과 함께 Java를 사용하며 놀랍습니다. 따라서 C ++을 배우지 않고 3D 프로그래밍과 OpenGL로 시작하려면 LWJGL을 사용해보십시오 을 Java로 Java는 매우 가볍고 실제로 JNI를 통해 실행되는 C ++ 코드라고 생각합니다.

장기적으로는 C ++로 전환하고 싶을 수도 있지만 C # 또는 Java로 시작하여 연습 할 수 있습니다. 대부분의 게임 코드는 해당 언어에 대한 경험에서 비롯되었으므로 익숙한 언어로 OpenGL을 시도하고 연습해야합니다. 또한 그래픽을 연습하는 동안 OpenGL을 사용하여 GLSL을 시도해야합니다. 매우 C와 같은 구문이 있습니다.

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