2010-04-25 7 views
11

Rozwijam to, co zamienia się w dwuwalidowy silnik gry 2D, moim początkowym celem platformy jest system operacyjny iPhone OS, ale mogę przejść na system Android lub nawet na konsolę, taką jak PSP lub Nintendo DS, chcę zachować moje opcje są otwarte.Chipmunk Physics lub Box2D dla C++ 2D GameEngine?

Mój silnik został opracowany w C++ i dużo czytałem o Box2D i Chipmunk, ale wciąż nie mogę się zdecydować, który z nich będzie używany jako moje oprogramowanie pośredniczące w fizyce.

Wydaje się, że wiewiórka została osadzona w łatwy sposób, a Box2D wydaje się być szeroko stosowany. Chipmunk to C, a Box2D to C++, ale słyszałem, że API z Box2D są znacznie gorsze niż API chipmunk'a.

Na razie będę używał tworzenia kształtów silnika i wykrywania kolizji dla nieregularnych wielokątów (nie wklęsłych).

wartość I:

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

I oczywiście, jeśli zauważy coś innego, chciałbym to usłyszeć.

Który z nich najlepiej pasuje do moich potrzeb?

EDIT: skończyło się na artykuł o moim konkretnego wyboru, można go znaleźć here

+0

byłby zainteresowany, aby zobaczyć swój produkt końcowy, jeśli kiedykolwiek dostał gotowy? – adam

+0

Głosowanie w celu zamknięcia jako zbyt szerokie/narzędzie rec. –

Odpowiedz

4

Masz rację, Chipmunk został opracowany poprawa wiele miejsc, gdzie Box2D spada.

Jednak Box2D jest zdecydowanie bardziej ugruntowaną platformą i na podstawie moich osobistych doświadczeń przy podejmowaniu decyzji, z którego silnika korzystać, stwierdziłem, że Box2D ma znacznie większą społeczność, więc łatwiej było się tego nauczyć na podstawie przykładu.

+0

Z własnego doświadczenia wynika, że ​​pręgowce wydają się być nieco "dziwaczne". Do poprawienia sytuacji potrzebowałem wielu hacków i poprawek. Oczywiście to samo może się zdarzyć, gdybym poszła do Box2D – eviljack

5

używam obu, ale kiedy mogę wybrać, idę do wiewiórki, ma znacznie lepsze API i był znacznie łatwiejszy do opanowania ...

Ale to dlatego, że nauczył się go bez potrzeby społeczności , instrukcja jest całkowicie w porządku.

AKTUALIZACJA: Moja obecna gra używa Box2D i chciałabym użyć Chipmunk z nią ... Głównie dlatego, że Box2D ma dwa poważne problemy, które są zaostrzone w mojej grze: Po pierwsze, ma NAPRAWDĘ STARY błąd, w którym obiekty " szkopuł "na rogach, moja gra to gra przełamująca, więc kiedy piłka" toczy się "wzdłuż ściany, czasami się ją wyrywa i jest rzucana ze ściany, wiele osób pytało, dlaczego moja fizyka gry wygląda" przypadkowo ".

Inne problemy, które Box2D ma, jak przechowują obiekty, Pręgowce używają przestrzennego skrótu, a Box2D używa binarnego drzewa, moja gra miała MASYWNE spowolnienie na poziomach z dużą ilością obiektów, zapytałem Erin (autor Box2D) powód, a on wyjaśnił, że ponieważ Box2D używa drzewa binarnego, jeśli umieścisz obiekty w siatce (tak jak powiedziałem, moja gra jest klonem breakout! wszystko jest w siatce!) drzewo staje się niezrównoważone, a Box2D spowalnia. Rozwiązaniem dla mojej gry było uczynienie niektórych poziomów wzorem "szachownicy", aby uniknąć tego problemu.

Tak, dla wszystkich gier z płytek na bazie, będę po prostu użyć Chipmunk, Box2D naprawdę nie nadaje się dla tych, (bo „haczyk” na rogu płytki błąd, a błąd spowolnienie z płytek siatki)

+0

Właściwie to myślę, że nie potrzebuję wspólnoty jest całkiem niezła, zacząłem dzisiaj od Box2d ... Oceniam zarówno siebie, i trzymam się tego, który uważam za najlepszy: -), Dziękuję za komentarz! – Goles

1

Chipmunk jest proste C, a Box2D to C++. Istnieje również nowy zestaw Objective-C bindings dla Chipmunk, ale nie są one dostępne za darmo.

Jak rozumiem, Chipmunk nie obsługuje wykrywania kolizji ciągłych, ale Box2D robi. Jest to ważne, aby zapobiec "tunelowaniu" (obiekty przechodzące nieznacznie przez siebie podczas poruszania się z dużymi prędkościami)

Pod koniec dnia, z tego co słyszę, oba są świetne. Jeśli wolisz C++ do C lub potrzebujesz ciągłego wykrywania kolizji, powinieneś prawdopodobnie wybrać Box2D.

Jeśli wolisz używać czystej biblioteki C, użyj Chipmunk.

Osobiście używam Box2D i moje dotychczasowe doświadczenia są fantastyczne.

Także myślę, że ma inną Box2D (ewentualnie powiększenie) zbiór wspólnych typów, więc to może być coś do rozważenia ...