Rozwiąż swoje wąskie gardło
Kilkaset ruchomych obiektów nie powinno stanowić problemu. Jednak może być kilkaset kolidujących obiektów. To zajmie trochę testów, ale uważam, że wąskim gardłem jest kolizja.
Nawiasem mówiąc, o ilu przedmiotach mówimy? Co to jest platforma? Sto obiektów w grze mobilnej to nie to samo, co sto w przypadku gry internetowej lub sto obiektów w przypadku gry komputerowej.
Przetestuj tę samą grę, ale z wyłączonymi kolizjami między wyciętymi obiektami i sprawdź, czy opóźnia się na podobnych ilościach obiektów. Jeśli tak jest, oznacza to, że sama ilość przedmiotów jest przyczyną problemów; w przeciwnym razie problemem są kolizje.
Poinformuje Cię o tym, co zrobisz, aby poprawić wydajność. Nie wszystkie poniższe pomysły będą miały zastosowanie, a mimo to będziesz musiał je przetestować.
Nie będę mówił o optymalizacji pod kątem dużej liczby obiektów z dala od gracza, ponieważ wydaje się, że kłopoty pojawiają się podczas interakcji z przedmiotami.
występuje problem, gdy je poruszasz.
Jeśli problem wystąpi podczas interakcji z obiektami, nie jest jasne, w jaki sposób usunięcie niewidzialnych obiektów go rozwiąże ... zakładam jednak, że może to pomóc.
Powiem tylko, że jeśli obiekty znajdujące się daleko od gracza stanowią problem, możesz zacząć od mniejszych poziomów lub podzielić grę na części, które możesz załadować i rozładować w zależności od tego, dokąd zmierza gracz.
Poza granicami
Uważam, że jeśli chodzi o sprzątanie gruzu, pierwszą rzeczą, którą trzeba mieć, jest usunięcie przedmiotów, które są poza zakresem. Na przykład kawałek, który spadł do dołu. Jeśli nie ma możliwości, aby gracz mógł się tam dostać, nie ma powodu, aby go trzymać.
Wrócę do tego.
Uczyń go bardziej realistycznym (część 1)
Podczas cięcia drewna za pomocą piły, siekiery lub podobnego narzędzia utracony zostanie materiał (trociny, wióry itp.). Nawet jeśli tniesz laserem, laser spali trochę drewna. Ponadto w przypadku przedmiotów, które nie są drewnem, wokół nacięcia zwykle dochodzi do deformacji, kruszenia itp.
Mówię o tym, że cięcie nie jest idealne i część materiału zostanie utracona. Możesz to wymodelować w swojej grze. To magiczne cięcie czerwonej rzeczy ma grubość. Usuń tę grubość z obiektów (dodaj efekty cząsteczkowe, jeśli czujesz się zbyt winny).
Oznacza to, że nie będziesz w stanie wyciąć niczego, co jest mniejsze niż ta grubość, w rzeczywistości próba zrobienia tego spowoduje usunięcie go z gry. To jest dobre! Oznacza to, że istnieje górna granica ilości gruzu, która będzie, i istnieje mechanicznie rozsądny sposób na oczyszczenie go w grze.
Zmień biegi dla małych obiektów
Będzie to działać lepiej, jeśli problemem są kolizje.
Gdy obiekt jest zbyt mały, szczegóły różnych kątów, które ma, są mniej istotne. Możesz zmienić na mniej dokładną mechanikę kolizji. Na przykład możesz użyć zderzaczy kół.
Możesz traktować nawet mniejsze przedmioty bez kolizji między sobą; rozważaj tylko kolizje między nimi a obiektami agentów (takimi jak awatar gracza lub postacie kontrolowane przez AI).
W końcu bardzo małe przedmioty mogą po prostu zamienić się w pył (efekty cząsteczkowe).
Uczyń go bardziej realistycznym (część 2)
Będzie to działać lepiej, jeśli problemem są kolizje.
Materiał odkształca się i pęka pod naciskiem. Jeśli skończysz z długimi przedmiotami o bardzo małej grubości, podziel je na mniejsze przedmioty, aby mogły skorzystać z powyższego rozwiązania.
Możemy udawać, że miał zbyt małą grubość, aby się kruszył i łamał po uderzeniu.
Scal obiekty
Będzie to działać lepiej, jeśli problemem jest liczba obiektów.
Powszechną sztuczką używaną przez wiele gier do radzenia sobie z dużymi spadkami, które mogą obniżyć wydajność, jest łączenie spadków.
Możesz spróbować czegoś podobnego dla małych obiektów, które są blisko siebie. Niech staną się jednym obiektem. Nie chcę jednak sklejać kawałków. Mam na myśli stworzenie jednego obiektu do obsługi ich fizyki; nadal możesz przedstawiać poszczególne elementy, które tworzyły obiekt, być może stosując techniki podobne do efektów cząsteczkowych.
Uczyń go bardziej realistycznym (część 3)
Czy słyszałeś o wietrze? W prawdziwym świecie jest wiatr.
Użyj wiatru, aby odepchnąć małe przedmioty.
Wiem, że może to zabrzmieć intuicyjnie, ponieważ oznacza, że małe przedmioty nie odpoczywają, a przynajmniej nie od razu. Przeczytaj poniżej, zanim podejmiesz decyzję.
Możesz użyć wiatru, aby odepchnąć mały przedmiot, zanim zacznie się on gromadzić. Który będzie działał lepiej, jeśli korzystasz z optymalizacji dla małych obiektów (takich jak łączenie ich lub usuwanie kolizji między nimi).
Ponadto, jeśli możesz użyć wiatru do wypychania przedmiotów do dołów lub w inny sposób poza granice, możesz użyć jako wymówki, aby usunąć przedmioty. Mówiłem ci, że wrócę do tego. Nawet jeśli tego nie zrobisz, może to być wymówka do usunięcia małych obiektów, które są zbyt daleko od gracza, udawaj, że wiatr się ich pozbył, gdy gracz nie patrzył.
Możesz usunąć niektóre przedmioty, gdy gracz nie patrzy, masz moje błogosławieństwo.
Oprócz tego masz teraz wymówkę, aby dodać wiatr, który możesz dodać wiatr w ramach innych mechanizmów lub przeszkód w grze. Możesz nawet dodać do narracji ducha wiatru, który stara się utrzymać wszystko w czystości, jeśli masz na to ochotę.
Uwaga : niekoniecznie musisz uruchamiać wiatr, gdy są gruz do oczyszczenia (chociaż to by działało), prawdopodobnie możesz mieć wiatr w przypadkowych odstępach czasu.
Bobry!
Nadchodzi jakiś irytujący bóbr i kradnie drewno!
Teraz masz typ wroga!
Ponadto oczywiście usuwają drewno, gdy nie patrzysz. Możesz nawet zaprojektować go tak, abyś wrócił i zobaczył, jak jeden bóbr ucieka z kawałkiem drewna, gdzie kiedyś był stos. To byłby niezapomniany moment, wyjaśni, dlaczego drewno zniknęło i rozwiąże niektóre problemy z wydajnością, z którymi się borykasz naraz.
To wszystko kompromisy
Istnieją ograniczenia związane z platformą lub wybranymi narzędziami, nawet czas i budżet potrzebny na rozwój gry jest ograniczeniem. Nie można zrobić doskonały symulację rzeczywistości jeszcze . Nikt nie może .
Każdy programista działa w granicach ograniczeń platformy docelowej i narzuconych mu narzędzi, a najlepsze gry musiały dokonać kompromisów, aby gra była zabawna i wciągająca ... nawet jeśli oznacza to mniej realizmu, często są zabawne i wciągające, ponieważ nie są realistyczne.
Niech kreatywność pochodzi z tych ograniczeń.
Możesz jednak uczynić swoją grę bardziej realistyczną , wybierając części rzeczywistości dogodne dla twojego rozwoju. Weź pod uwagę, że czasami usuwanie przedmiotów, które znajdują się z dala od gracza, stanowi część kosztu tworzenia fajnej gry.