2009-08-06 2 views
5

종종 iPhone과 같은 리소스가 제한된 환경에서 게임용 Objective-C보다 C++가 더 좋습니다. (처음에는 아이폰 서비스와 대화하기 위해 Objective-C가 필요하다.) 그러나 요즘 2D 게임 엔진은 Objective-C 인 Cocos2d 인 것으로 보인다.C++ iPhone 게임에서 Objective-C 게임 엔진을 사용 하시겠습니까?

Apple이 "Objective-C++"라고 부르는 것은 하나의 파일에 C++ 및 Objective-C 클래스를 혼합 할 수 있지만 동일한 클래스 나 함수 내에서 언어 구문을 혼합하고 일치시킬 수 없음을 이해합니다.

그래서 C++ 게임에 Cocos2d를 사용하는 것이 현명합니까? 가능합니까? "풀"코드를 많이 작성해야합니까? OpenGL-ES의 직접적인 접근법에 필요한 무거운 짐을 피하고 싶습니다.

답변

3

저는 현재 Cocos2로 게임을 프로토 타이핑하고 있습니다. Chipmunk로 C++에서 게임 논리를 작성하고 Cocos를 사용하여 뷰 계층을 구현합니다. C++과 Objective-C를 같은 클래스, 함수 및 코드 행에서 자유롭게 혼합 할 수 있습니다. 클래스 인터페이스에서 Objective-C와 C++ 메소드 정의 구문을 혼합 할 수는 없지만 (실제로 시도하지는 않았다고 생각하는 것처럼) 한계가 있다는 것을 확신합니다. 그러나 실제로는 가장 실용적인 목적으로 자유롭게 혼합 할 수 있습니다.

iPhone 만 타겟팅하는 경우 Objective-C에 모든 것을 쓰는 것에 너무 신경 쓰지 않아도됩니다. 다른 사람들이 언급했듯이 실제로 성능 병목 현상이 발생하는 경우 프로파일 링 및 최적화 작업을 수행 할 수 있습니다. 나는 다른 플랫폼에서 배포하고 싶을 수도 있기 때문에 C++로 게임 코어를 작성하고 있으며 그 경우 Objective-C가 책임이 될 것입니다.

+1

감사합니다. 성능 고려 사항은 제쳐두고 개인적인 취향에 C++을 사용하는 것을 선호합니다. 내가 이것을 할 수 있고 여전히 Cocos2D를 사용할 수있는 것처럼 들린다. – Buggieboy

7

Objective-C++에서 C++ 및 Objective-C 코드를 매우 자유롭게 혼합 할 수 있으므로 접착제 코드를 작성할 필요가 없습니다. 그러나 Objective-C로 작성하고 C++로 시작하지 않고 C 또는 C++로이 부분을 다시 작성하고 다시 작성해야하는 경우 프로파일 링하는 것이 좋습니다. Objective-C는 느린 언어가 아니기 때문에 C++을 사용할 때 충분히 빠른 속도로 수행 할 수 있도록 모든 노력을 기울일 필요가 없습니다.