Geometry System of Populous: The Beginning [zamknięty]

10

Chcę opracować grę taką jak Populous: The Beginning z moim przyjacielem. Ale nie mogliśmy dowiedzieć się, jakiego rodzaju geometrii użyli dla świata.

Wiemy, że - wszystkie płytki mają ten sam rozmiar - wszystkie płytki są kwadratami

Więc ... To nie może być Dwudziestościan, ponieważ istnieją trójkąty, ani nie może być standardową geometrią kuli, ponieważ nie wszystkie płytki mają ten sam rozmiar.

Czy ktoś może mi pomóc?

FlashFan
źródło
1
Ponieważ faceci z Uber tworzą teraz grę moich marzeń o nazwie „Planetary Annihilation”, podzielili się również swoimi przemyśleniami i technikami rozwiązywania problemów. Ten post na blogu Mavor jest naprawdę genialny: mavorsrants.com/2013/02/planetary-annihilation-engine.html
FlashFan
To nie jest bezpośrednia odpowiedź na twoje pytanie, ale możesz znaleźć tu przydatne informacje: gamedev.stackexchange.com/questions/56231/…
DaleyPaley
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ dotyczy ono sposobu, w jaki konkretna gra wykonała określone zadanie.

Odpowiedzi:

6

Trójkąty, które widzisz, są prawdopodobnie produktem systemu renderowania - wszystko ostatecznie musi zostać podzielone na trójkąty do renderowania.

Radzę to zrobić: wyszukaj w Google (obrazy) „teselacja sfery”. Dowiesz się o wielu, wielu sposobach na zrobienie tego. Twoja gra nie musi być sprzedawana w dokładnie taki sam sposób, jak Populous: The Beginning (który, nawiasem mówiąc, jest świetną grą, którą uwielbiam). Oznacza to, że nie musisz nawet używać kwadratowych płytek, jeśli nie chcesz; możesz użyć dowolnych sześciokątów, trójkątów, pięciokątów, dowolnych czworoboków, takich jak latawce, a nawet teselacji voronoi (nieregularne, powtarzające się wielokąty).

W każdej teselacji używanej do logiki gry ważna jest łączność , tj. Fakt, że twoja „siatka” tworzy (nieco) połączony wykres do celów ruchowych.

EDYCJA: Prawdopodobnie to, co zrobili, jest trochę podobne do walki w StarControl - w rzeczywistości mają zawijaną siatkę 2D (modulo w xiy). Następnie, kiedy oglądasz kulę, możesz zobaczyć tylko jedną półkulę na raz, co umożliwia mapowanie płytek bez zbytniego zauważalnego zniekształcenia. A przy bliższym zbliżeniu wszystko wyglądałoby idealnie.

Inżynier
źródło
Problem z nie kwadratowymi kafelkami polega na teksturowaniu. Naprawdę trudno jest stworzyć obraz tekstury, a następnie obliczyć UV, aby zmapować go na świecie. Gdybym miał kwadraty, byłoby to tak proste, jak to możliwe. Używając A *, wyszukiwanie ścieżek jest łatwe z każdym rodzajem płytek, wiem.
FlashFan,
Problem z rzutem perspektywicznym kuli 2d (stosowanym na mapach świata na Ziemi) polega na tym, że gdy otrzymujesz kwadratowe płytki, pojawia się również wypaczanie: coraz mniejsze płytki w kierunku biegunów. Co jest dla Ciebie ważniejsze, radzenie sobie z trudnościami związanymi z mapowaniem UV lub upewnianie się, że płytki są dobrze rozłożone do celów logiki gry? Jeśli dowiesz się, z czego korzysta P: TB, chciałbym wiedzieć.
Inżynier
Myślę, że oba sposoby są dla mnie niemożliwe ... Istnieje edytor map dla P: TB, w którym możesz włączyć siatkę. Są zdecydowanie używane kwadraty jako płytki. Ale dziwną rzeczą na P: TB jest to, że możesz albo zobaczyć całą planetę, albo zobaczyć jej część. Nie ma nic pomiędzy. Myślę, że mogli go sfałszować, aby w końcu wyglądał jak Sfera. Ale nie jestem pewien ...
FlashFan
Właśnie o tym myślałem. Prawdopodobnie to, co zrobili, jest trochę podobne do walki w StarControl - w rzeczywistości mają zawijaną siatkę 2D (modulo w xiy). Następnie, kiedy oglądasz kulę, możesz zobaczyć tylko jedną półkulę na raz, co umożliwia mapowanie płytek bez zbytniego zauważalnego zniekształcenia. A przy bliższym zbliżeniu wszystko wyglądałoby idealnie.
Inżynier
^^ ok, więc myślę, że to naprawdę podróbka. Fakt, że planeta jest całkowicie okrągła (bez wzgórz), gdy patrzy na pełną planetę, wskazuje, że użyto do niej normalnej geometrii kuli. Możemy to zobaczyć tutaj: s.uvlist.net/l/y2008/09/53528.jpg
FlashFan
14

Problem polega na tym, że mapy ludne wcale nie są kulami. Oni są prawdziwą rzutową płaszczyzną , bardziej analogiczną do płaskiego torusa manipulowanego na ekranie, aby wyglądał jak kula niż rzeczywista kula.

Na przykład:

  • Ludne mapy to kwadraty, gdy są oglądane poza gęstym silnikiem
  • Ludne mapy w grze są wyraźnie wypaczone, aby pokazać / ukryć krzywiznę, przechodząc z widoku normalnego do widoku z bliska / z góry
  • Podczas oglądania kuli ziemskiej teren jest wyraźnie wypaczony, aby zapewnić sferyczny wygląd
  • Można poruszać się po całym świecie za pomocą geometrii innej niż euklidesowa

wprowadź opis zdjęcia tutaj

Gra jest rozgrywana z perspektywy trzeciej osoby w 3D z kamerą na zmiennej wysokości i zdolną do obracania się o 360 °, umożliwiając graczowi szybkie poruszanie się po terenie planety, który w rzeczywistości jest prawdziwą płaszczyzną projekcyjną, a nie zwykłą kulą ; na mapach, na których nie ma mgły wojny, gracze mogą zobaczyć, co robią przeciwnicy w dowolnym momencie. Rozbudowane wsparcie dla akceleracji 3D pozwala graczowi oglądać grę w 16-bitowym lub 32-bitowym kolorze. [10] Pokazano również krajobraz i ruch budynku w czasie rzeczywistym oraz ruch obserwujący.

Zwróć też uwagę tutaj:

wprowadź opis zdjęcia tutaj

Jeśli przegląd obejmuje połowę planety, podobnie jak minimapę, dlaczego minimapa pokazuje o wiele więcej wody? I dlaczego tekstura wody nie odzwierciedla rzeczywistych proporcji kuli, pokazując prawie krawędź na widoku?

Jak zauważono w komentarzach do drugiego pytania, zauważ na tym zrzucie ekranu, że planeta jest idealnie okrągła:

wprowadź opis zdjęcia tutaj

Gdyby to była prawdziwa kula, bylibyśmy w stanie zobaczyć wzgórza i przedmioty wystające z krawędzi planety. Na przykład, tutaj Planetary Annihilation, zobacz drzewa i skały wystające ponad horyzont:

wprowadź opis zdjęcia tutaj

Zamiast tego w przypadku nowoczesnej gry radziłbym mozaikowanie dwudziestościanu. Znajdziesz wiele pytań na temat SO, jak to zrobić w wybranym języku programowania

Tom J Nowell
źródło