Tworzę platformówkę 2.5D w XNA, która wykorzystuje modele 3D, które są ograniczone do podróżowania wzdłuż płaszczyzny 2D (tak jak Trine ).
Aby jednak wszystko było bardziej skomplikowane, chcę, aby sama płaszczyzna 2D mogła się zakrzywiać. Rozważ tę powtórkę Klonoi (musisz oglądać tylko przez 10 sekund): chociaż gracz był na płaszczyźnie 2D, sam samolot mógł owinąć się po zboczu góry, skutecznie pozwalając graczowi podróżować przez przestrzeń 3D - przez cały czas ograniczone do zwykłej płaszczyzny 2D platformówki.
Jak należy podchodzić do fizyki w takiej grze?
- Czy powinienem używać silnika fizyki 2D czy silnika fizyki 3D?
- Czy istnieją rzeczywiście silniki fizyki zaprojektowane z myślą o tej sytuacji?
- Dla tych, które nie zostały zaprojektowane do tego: jakie sztuczki lub sztuczki będą konieczne, aby silnik fizyki ze mną współpracował?
Odpowiedzi:
Platformówka taka jak ta jest wciąż platformówką 2D. Efekt 2.5D, nawet zawijanie się wokół góry, jest jedynie wizualizacją świata ograniczonego w 2D. Twój silnik fizyki prawdopodobnie będzie działał tylko na tym świecie, a nie na jego wizualizacji, więc silnik fizyki 2D będzie wystarczający.
To powiedziawszy, możesz być zainteresowany niektórymi efektami 3D. W grze „Bionic Commando: Re-armed” pokonane wrogie postacie „toczą się” z platformy, dzięki czemu fizyka ragdoll jest w rzeczywistości 3D. Ponadto większość silników fizyki 3D pozwala ograniczyć ruch wzdłuż jednej lub więcej osi (choć z pewnymi poprawkami, takimi jak tworzenie połączenia między drogą a poruszającymi się postaciami).
Pamiętaj, że nie każdy efekt 3D wymaga pełnego silnika fizyki. Możesz kodować własne implementacje 3D dla drobnych rzeczy, takich jak spadające śmieci po wybuchu, bez konieczności uciekania się do kompletnego silnika 3D.
Moja rekomendacja zaczyna się od silnika 2D, jeśli prawdopodobnie nie będziesz potrzebować obliczeń fizycznych w 3. wymiarze. W przeciwnym razie wybierz silnik 3D i w razie potrzeby ogranicz obliczenia tylko w dwóch osiach.
źródło
To zależy, czy jakakolwiek fizyka może się wydarzyć poza polem gracza.
Jak powiedziała ghostonline, animacje z gruzu i ragdoll są klasycznym przykładem fizyki poza 2D w grze 2.5D.
Innym przykładem są pociski: jeśli w twojej grze są jakieś pociski, czy podążają za krzywizną twojej przestrzeni 2D, czy podróżują prosto, nawet jeśli oznacza to, że przekroczą te granice?
Również prawidłowe odwzorowanie fizycznej przestrzeni 2D na zakrzywioną wizualizację 3D jest (popraw mnie, jeśli się mylę) .. nie jest takie łatwe. Będziesz potrzebował funkcji projekcji iniekcyjnej, prawdopodobnie obejmującej wiele splajnów lub coś podobnego.
Mimo że zakrzywione przestrzenie do gier 2D są miłym dodatkiem, wymaga sporo nakładów na kod. To może być powód, dla którego nie ma czegoś takiego w Trine. Ale i tak gra była fajna, prawda? Pomyślałbym dwa razy o takiej funkcji.
źródło