답변:
C ++의 큰 장점 중 하나 : 그렇게하기로 결정한 경우 Android / PC / DS / PSP / (여기서 선택한 플랫폼 삽입)로 이식하는 것이 상대적으로 쉽습니다. Objective-C는 전체 게임을 다시 작성하기로 결정할 때까지 iOS에 고정됩니다.
여기에는 실제 장단점이 없지만 적어도 한 언어로 편안한 프로그래머가 다른 언어를 사용해야하는 것은 없습니다.
성능은 문제가되지 않습니다. 훌륭한 Obj-C 프로그래머라면 내부 루프에 많은 메시지를 담아 무거운 리프팅을 작성하지는 않을 것입니다. 이는 실제로 내부 루프를 C로 작성한다는 의미입니다. 레벨 프로그래머라면, 당신이 선택한 라이브러리에 의해서도 많은 노력을 기울일 것입니다. 그리고 당신은 그들이 선택한 것을 자비로 여길 것입니다.
이식성 이 마음에 든다면 실제 문제입니다. 그렇지 않다면, meh. 크로스 플랫폼이되는 것이 전부는 아닙니다. 먼저 성공하면 좋을 것입니다 :) 나중에 언제든지 포트 할 수 있습니다. 어쨌든 첫날부터 크로스 플랫폼을 신중하게 계획하지 않는다면 같은 언어를 사용하더라도 그리 멀지 않을 것입니다. 어드레싱이 필요한 플랫폼 간에는 더 많은 실제 차이점이 있습니다.
프로젝트를 마무리하는 것이 기술에 대한 불만을 표명하는 것보다 중요하며, Obj-C에서 생산성이 높으면 Obj-C를 유지하십시오.
내 선호? 저는 C ++ 사람입니다. 잘의 Obj-C와 같은 I,하지만 난 C ++에서 행복 해요, 난 할 쓰기 크로스 플랫폼 코드를.
C ++를 통한 Obj-C에는 성능 문제가 없습니다. 둘 다 컴파일 된 코드이며, Obj-C는 C의 수퍼 세트이고, Obj-C ++는 C ++의 수퍼 세트라는 것을 기억하십시오. Obj-C와 C ++를 같은 프로그램에서 혼합하고 싶을 때 좋습니다 (쉽고 XCode C ++ 측면을 훌륭하게 지원합니다). 모든 언어 조합은 OpenGL을 지원하므로 심각한 그래픽 작업이 가능하며 언어에 관계없이 Apple에서 라이브러리 지원이 가능합니다.
즉, 게임의 목적은 무엇입니까?
IOS 전용으로 작성하는 경우 더 편하게 느끼는 언어 나 조합으로 걱정하거나 쓰지 마십시오. 저에게 이것은 CTL에서 제가 가장 좋아하는 부분이기 때문에 STL이 포함 된 Obj-C ++입니다. C ++보다 약간 Obj-C를 선호하기 때문에이 옵션을 사용하는 경향이 있습니다.
다른 장치로 포팅하는 것을 목표로 쓰고 있다면 Obj-C로 변환 레이어를 사용하여 C ++로 작성하여 장치 관련 항목 (그래픽, 입력, 카메라 등)을 처리하십시오. 응용 프로그램의 진입 점.
가장 순수하고 하나의 언어 만 원한다면 Obj-C로 작성하십시오.
다른 사람들은 다른 도서관 (물리학 등)에 대해 이야기했습니다. 당신이 말하고있는 언어 선택 (Obj-C, C ++, 또는 Obj-C ++)에서 접근하는 데는 아무런 문제가 없습니다. 또한 해당 언어로 된 라이브러리와 관련된 성능 문제가 없습니다.
경고 : 메시지 전달과 함께 포인터 간접 호출이 있습니다. 상속 된 C ++ 메서드 호출과 정확히 동일하기 때문에 오버 헤드로 얼마나 해석 할 수 있는지 잘 모르겠습니다. 누구든지 이것을 명확히 할 수 있습니까?
도움이 되길 바랍니다.
남자 이름.
Vector3D
Obj-C에서 수업 을 정말로 작성하고 싶 습니까? 내 직감은 성능 저하로 이어질 수 있다고 말합니다.
프로그래밍 하는 내용 에 따라 다릅니다 . 기존 물리 및 그래픽 엔진을 사용하는 게임 로직이라면 obj-c에 더 익숙하다면 c 또는 c ++를 사용해야 할 이유가 없다고 안전하게 말할 수 있습니다. 렌더링 또는 물리 클래스를 롤아웃하려는 경우 아마도 c 또는 c ++를 사용하여 클래스를 작성할 것입니다. Cocos2d-훌륭하고 가장 인기있는 iOS 게임 라이브러리 중 하나가 obj-c로 작성되었습니다.
이 부분을 읽어보십시오-관련 부분은 "노동 분할"이며, 더 높은 수준의 언어로 코딩 할시기와 더 낮은 수준을 사용할시기를 결정하는 데 도움이 될 수 있습니다. 게임의 관리 코드
objective-c 오버 헤드는 C # 근처에 없어야하며 관리되지 않아야합니다 (iOS에서). 논리가 여전히 적용되고 iOS를 실행하는 장치는 MSIL을 해석하는 PC만큼 강력하지 않습니다. :)
이 연구 에서는 CPU를 많이 사용하는 게임에서 실제로 성능을 얻으려면 C를 사용해야합니다. 링크 된 기사는 실행할 수있는 XCode 프로젝트로 완성되었습니다.
나는 생각 결론은 다음과 같습니다 사용 오브젝티브 C는 (결국, 아이폰의 기능과 상호 작용해야 곳 어디에서나 트램폴린 퍼팅 사람에게 좋지 않을 수 있습니다 )하지만 루프에 관해서, 벡터 객체 클래스 같은 것들, 또는 집중 어레이 액세스, 우수한 성능을 얻으려면 C ++ STL 또는 C 어레이를 사용하십시오.
나는 그것을 보는 것이 완전히 어리석은 것을 의미합니다 position = [[Vector3 alloc] init] ;
. 위치 벡터와 같은 기본 객체에 참조 횟수를 사용하면 성능 저하를 요구하는 것입니다.
이러한 비교를 참조하십시오.