Odkąd odkryłem Box2D , używam go do jakiejkolwiek aplikacji podobnej do gry, którą próbuję napisać, od bardzo małych prototypów lub małych programów do testowania czegoś, do rzeczywistych projektów.
Dzięki temu tak strasznie łatwo poradzić sobie z wszystkim, od kolizji, aż po rzeczywistą fizykę.
Czasami mam jednak pewne wątpliwości: jeśli muszę obsługiwać tylko koła lub AABB i nie potrzebuję zaawansowanych narzędzi fizyki (stawów lub podobnych rzeczy), myślę, że silnik fizyki mógłby dodać coś w rodzaju dużego, niepotrzebne koszty ogólne.
Aby ponownie odpowiedzieć na moje pytanie: czy użyłbyś Box2D (lub innych silników fizyki) w grze, w której fizyka jest naprawdę prosta (powiedzmy Super Mario, powiedzmy)? A jeśli nie, to dlaczego?
Odpowiedzi:
Jeśli pamięć, miejsce na dysku, wysiłek programistyczny lub czas procesora wykorzystywany w Box2D jest zbyt duży dla twoich celów, nie używaj go. W przeciwnym razie nie ma powodu, aby tego unikać, jeśli uznasz to za przydatne.
źródło
Coś tak łatwego jak Super Mario nie, ponieważ tak naprawdę nie ma dużo fizyki. (Mario nie wpływa na fizykę innych obiektów podczas skoku)
jeśli używasz fizyki w sensie wielu przedmiotów (więcej niż jednego) wykorzystujących fizykę do wpływania na wynik innych obiektów, wtedy użyłbym silnika.
źródło
Moja odpowiedź brzmi tak, absolutnie używaj silnika fizyki, takiego jak Box2D, do prostych rzeczy, ponieważ nie powinieneś spędzać niepotrzebnego czasu na programowaniu, wdrażając niektóre funkcje, które szybko otrzymujesz z silnika fizyki. Na przykład zdefiniuj ciało statyczne i upuść na niego ciało dynamiczne i zastosuj siłę do ciała dynamicznego w celu wprowadzenia danych kierunkowych, a za kilka minut będziesz mieć platformówkę. Nie sądzę, że silnik dodaje wystarczającej mocy, aby nie było tego warte.
źródło
Jeśli „fizyka” w grze jest prosta, nie trzeba importować silnika fizyki.
Używam terminu fizyka luźno, ponieważ istnieje różnica między modelowaniem fizyki a symulacją fizyków. Bardzo ważna rzecz do odróżnienia.
Na przykład w Mario Bros. po uruchomieniu i zatrzymaniu przesuniesz się trochę. Zastanów się, jak możesz to zaimplementować.
Możesz modelować, definiując wszystkie niezbędne zmienne: np. masa, grawitacja, współczynnik tarcia, ciąg itp., a następnie obliczanie nowej prędkości, przyspieszenia itp.
ale czy warto? Możesz symulować ten sam efekt, zmniejszając prędkość graczy, gdy się nie poruszają ...
Coś jak:
Różnica polega na tym, że jedna to fizyka, a druga nie. Oba mają swoje zalety i wady. Ale z reguły w przypadku prostych gier o wiele łatwiej jest je sfałszować.
źródło
Musisz zdecydować w zależności od sytuacji
Profesjonaliści używający niestandardowego silnika
Zalety gotowego silnika fizyki:
źródło