2010-04-25 2 views
11

나는 "크로스 플랫폼"2D 게임 엔진으로 변모하고있는 것을 개발하고 있습니다. 초기 플랫폼 목표는 iPhone OS이지만 Android 또는 PSP 나 Nintendo DS와 같은 콘솔로 옮길 수도 있습니다. 내 옵션이 열린다.C++ 2D GameEngine을위한 Chipmunk Physics 또는 Box2D?

내 엔진은 C++로 개발되었으며 Box2D와 Chipmunk에 관해 많이 읽었지 만 어느 것이 내 Physics Middleware로 사용할 지 결정할 수 없습니다.

Chipmunk는 쉽게 임베디드 된 것으로 보이고 Box2D는 널리 사용되는 것 같습니다. Chipmunk는 C이고 Box2D는 C++이지만 Box2D의 API는 chipmunk의 API보다 훨씬 나쁘다고 들었습니다.

지금은 불규칙한 다각형 (오목하지 않은)에 대해 엔진 모양 생성 및 충돌 감지 기능을 사용합니다.

I 값 :

1) Good API's 
2) Easy to integrate. 
3) Portability. 

그리고 다른 작업이있을 때는 물론, 내가 그것을 듣고 싶어요

.

내 요구 사항 중 어느 것이 더 좋을 것이라고 생각하십니까?

편집 : 내 특정 선택에 대한 기사를 작성 결국, 당신은 here

+0

가 이제까지 완료있어 경우 최종 제품을보고 관심이있을 것입니다 ... 즉 고려하는 것이 될 수 있도록 Box2D의가 공동 종류의 다른 (아마도 더 큰) 세트가 생각? – adam

+0

투표 범위가 너무 넓습니다/도구 rec. –

답변

4

자네 말이 맞아, 다람쥐 Box2D의 아래로 떨어지는 곳이 많이 개선 개발되었다 찾을 수 있습니다.

그러나 Box2D는 확실히 더 확립 된 플랫폼이며 어떤 엔진을 사용할 것인지 결정할 때 내 개인적인 경험에서 볼 때 Box2D는 훨씬 더 큰 커뮤니티를 가졌으며 예제를 통해 더 쉽게 배울 수있었습니다.

+0

나는 다람쥐가 약간 "기발한"경향이 있다는 것을 개인적인 경험에서 발견했습니다. 많은 것들이 제대로 작동하려면 해킹과 개조가 필요했습니다. 물론 Box2D에 가면 똑같은 일이 일어날 수도 있습니다 – eviljack

5

내가 모두를 사용하지만, 내가 선택할 수있을 때, 나는 다람쥐 가고, 그것은 훨씬 더 API를 가지고 있으며, 배울 훨씬 쉽게했다 ...

을하지만 지역 사회에 대한 필요없이 그것을 알게 때문이었다 , 매뉴얼 completly 괜찮아요.

업데이트 : 현재 게임에서 Box2D를 사용하고 있으며 Chipmunk를 사용하고 싶습니다 ... Box2D에는 게임에 심각한 영향을 미치는 두 가지 심각한 문제가 있기 때문에 주로 다음과 같은 버그가 있습니다. 첫째, 내 게임은 탈주 게임이기 때문에 공이 벽을 따라 굴러 가거나 때로는 벽에 걸려 넘어지면서 많은 사람들이 내 게임 물리가 왜 "무작위"로 보이는지 물었습니다.

다른 문제는 객체를 저장하는 방법이며, Chipmunk는 공간 해시를 사용하고 Box2D는 이진 트리를 사용합니다. 게임에 많은 객체가있는 수준에서 속도가 크게 느려졌습니다. Erin (Box2D) 이유는 Box2D가 이진 트리를 사용하기 때문에 그리드에 오브젝트를 배치하면 (내 게임은 브레이크 아웃 클론입니다! 모든 것이 그리드에 있습니다!) 트리가 불균형 해지고 Box2D가 느려지 게됩니다. 내 게임의 해결책은이 문제를 피하기 위해 어느 정도 레벨을 "바둑판 무늬"패턴으로 만들었습니다. (타일 코너 버그에있는 "하다가"및 타일 격자 둔화 버그 때문에)

+0

사실 저는 커뮤니티가 필요 없다고 생각합니다. 오늘 Box2d로 시작했습니다 ... 나는 자신을 평가할 것이고, 가장 좋은 것을 찾을 것입니다 : -), 코멘트 주셔서 감사합니다! – Goles

1

다람쥐가

그래서, 모든 타일 기반 게임, 난 그냥 다람쥐를 사용, Box2D의는 정말 사람들을 위해 적합하지 않다 straight C, Box2D는 C++입니다. Chipmunk에 대한 Objective-C bindings의 새 세트도 있지만 상업적으로 자유롭게 사용할 수는 없습니다.

제가 이해하는 것처럼, Chipmunk는 Continuous Collision Detection을 지원하지 않지만 Box2D는 지원합니다. 이것은 "터널링"(고속으로 움직일 때 서로 물체가 약간 통과하는 것을 방지하는 것)이 중요합니다.

내가 듣는 것으로부터, 그들은 모두 훌륭합니다. C++에서 C를 선호하거나 지속적인 충돌 감지가 필요한 경우 아마도 Box2D를 선택해야합니다.

순수 C 라이브러리를 사용하려면 Chipmunk로 이동하십시오.

저는 개인적으로 Box2D를 사용했으며 지금까지의 경험이 환상적이었습니다.

또한, 나는