내가 볼 수있는 핵심 문제는 C ++ 또는 Unity3D가 아니라 상위 레벨 솔루션 또는 하위 레벨 솔루션이 필요하다는 것 입니다.
저수준 솔루션은 입력 처리, 메모리 관리 또는 모델로드 프로세스로 인해 더러워지는 솔루션입니다. 높은 수준의 솔루션은 Unity3D와 같은 하나의 깔끔한 패키지를 얻는 것입니다.
나에게 Unity3D (또는 다른 게임 엔진) 또는 C ++ 사용 여부는 게임 및 프로젝트의 목표에 달려 있습니다.
개발 시간이 빠르거나 게임이 성능 집약적이지 않거나 그래픽 / 계산 성능이 최고가 아닌 경우 Unity3D를 사용하십시오. 게임 플레이에 집중하고 Unity3D가 제공하는 기본 도구가 괜찮다면 Unity3D 사용을 고려할 수 있습니다
다른 라이브러리와의 C ++, 개발 시간이 더 길면 게임에 더 많은 계산 / 그래픽 성능이 필요하거나 Unity3D가 통합 할 수없는 일부 기술을 사용합니다.
Unity3D의 장점은 실제 개발 (C # 또는 JavaScript)을 반영하는 스크립팅 언어를 여전히 사용한다는 것입니다. 학습 한 OOP 및 소프트웨어 엔지니어링 개념 (싱글 론, 파사드, 상태 머신, 데코레이터, 컴포지션)을 Unity3D에 적용 할 수 있습니다. 리소스 관리, 장면 그래프, 모델 로딩, 렌더링, 장면 저장 등과 같은 쿠키 커터 프로세스를 관리하는 데 도움이됩니다. Unity3D가 제공하지 않는 기능이 필요한 경우 더 잘 수행 할 수 있습니다. DLL 코딩.
어디에서 C ++를 떠나나요? C ++는 언어이며 Unity3D, sans 메모리 관리 또는 템플릿에서 수행 할 수있는 C ++에서 수행하는 많은 프로그래밍 개념이 있습니다 (Unity 3.2를 사용하면 언어 사양이 클로저를 포함하도록 향상되었습니다).
내가 말했듯이 실제로 C ++ 대 Unity3D는 아닙니다. Unity3D에 비해 "C ++ plus 라이브러리 / SDK 또는 자체 엔진 롤"에 가깝습니다. 그것은 당신의 목표와 목표에 달려 있습니다. 렌더링 파이프 라인 또는 입력을 제어해야하는 고급 게임 또는 게임의 경우 C ++과 엔진을 사용하여 문제를 해결할 수 있습니다. 그렇지 않다면 Unity3D를 3D 게임의 기본 선택으로 사용합니다.
그러나 Unity3d에 대한 지식은 경험이 많지 않지만 게임 개발의 전체 프로세스를 배우기 시작하기에 좋은 곳입니다. 예를 들어, 렌더러를 작성하고 모델을 OpenGL에로드하고 기본 장면 그래프와 입력을 공부하려면 학기 동안 공부해야 할 것입니다. 하루 안에 단 3 분 안에 Unity3D에서 작업 할 수 있습니다.