Geometriesystem der Bevölkerung: Der Anfang [geschlossen]

10

Ich möchte mit meinem Freund ein Spiel wie Populous: The Beginning entwickeln. Aber wir konnten nicht herausfinden, welche Art von Geometrie sie für die Welt verwendet haben.

Wir wissen, dass - alle Kacheln haben die gleiche Größe - alle Kacheln Quadrate sind

Es kann also kein Ikosaeder sein, weil es Dreiecke gibt, und es kann auch keine Standardkugelgeometrie sein, weil nicht alle Kacheln die gleiche Größe haben.

Kann mir jemand helfen?

FlashFan
quelle
1
Da die Jungs von Uber jetzt das Spiel meiner Träume namens "Planetary Annihilation" entwickeln, teilten sie auch ihre Gedanken und Techniken mit, wie sie die Probleme gelöst haben. Dieser Blog-Beitrag von Mavor ist wirklich genial: mavorsrants.com/2013/02/planetary-annihilation-engine.html
FlashFan
Dies ist keine direkte Antwort auf Ihre Frage, aber Sie können hier einige nützliche Informationen finden können: gamedev.stackexchange.com/questions/56231/...
DaleyPaley
Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da es darum geht, wie ein bestimmtes Spiel eine bestimmte Aufgabe erfüllt hat.

Antworten:

6

Dreiecke, die Sie sehen, sind wahrscheinlich nur ein Produkt des Renderingsystems - am Ende muss alles zum Rendern in Dreiecke zerlegt werden.

Ich schlage vor, Sie tun dies: Durchsuchen Sie Google (Bilder) nach "Sphärentessellation". Sie erhalten eine Vorstellung von den vielen, vielen Möglichkeiten, dies zu tun. Ihr Spiel muss nicht genau wie Populous: The Beginning (was übrigens ein großartiges Spiel ist, das ich liebe) tesselliert werden. Das heißt, Sie müssen nicht einmal quadratische Kacheln verwenden, wenn Sie nicht möchten. Sie können beliebige Sechsecke, Dreiecke, Pentagone, beliebige Vierecke wie Drachen oder sogar Voronoi-Tessellationen (unregelmäßige, nicht wiederholte Polygone) verwenden.

Was bei jeder für die Spielelogik verwendeten Tessellation wichtig ist , ist die Konnektivität , dh die Tatsache, dass Ihr "Gitter" für Bewegungszwecke einen (etwas) zusammenhängenden Graphen bildet.

EDIT: Wahrscheinlich haben sie so etwas wie StarControls Nahkampf gemacht - sie haben tatsächlich ein umhüllendes 2D-Gitter (Modulo in x und y). Wenn Sie dann die Kugel betrachten, können Sie nur eine Halbkugel gleichzeitig sehen, wodurch es möglich ist, die Kacheln ohne zu große merkliche Verzerrung abzubilden. Und bei näherer Betrachtung würde alles perfekt aussehen.

Ingenieur
quelle
Das Problem bei nicht quadratischen Kacheln ist die Texturierung. Es ist wirklich schwierig, ein Texturbild zu erstellen und dann die UVs zu berechnen, um es auf die Welt abzubilden. Wenn ich Quadrate hätte, wäre es so einfach wie möglich. Mit A * ist die Wegfindung mit jeder Art von Kacheln einfach, wie ich weiß.
FlashFan
Das Problem bei einem 2D-Perspektivprojekt einer Kugel (wie es auf den Weltkarten der Erde verwendet wird) besteht darin, dass Sie zwar quadratische Kacheln erhalten, sich aber auch verziehen: immer kleinere Kacheln in Richtung der Pole. Was ist für Sie wichtiger, wenn Sie die Schwierigkeiten der UV-Kartierung einfach bewältigen oder sicherstellen möchten, dass Ihre Kacheln für Zwecke der Spielelogik gut verteilt sind? Wenn Sie herausfinden, was P: TB verwendet, würde mich das interessieren.
Ingenieur
Ich denke, beide Möglichkeiten sind für mich nicht möglich ... Es gibt einen Karteneditor für P: TB, in dem Sie das Raster aktivieren können. Es gibt definitiv verwendete Quadrate als Kacheln. Aber das Seltsame an P: TB ist, dass Sie entweder den gesamten Planeten oder einen Teil davon sehen können. Es gibt nichts dazwischen. Ich denke, sie hätten es vortäuschen können, so dass es am Ende nur wie eine Kugel aussieht. Aber ich bin nicht sicher ...
FlashFan
Ich habe das nur gedacht. Wahrscheinlich haben sie etwas mit StarControls Nahkampf zu tun - sie haben tatsächlich ein umhüllendes 2D-Gitter (Modulo in x und y). Wenn Sie dann die Kugel betrachten, können Sie nur eine Halbkugel gleichzeitig sehen, wodurch es möglich ist, die Kacheln ohne zu große merkliche Verzerrung abzubilden. Und bei näherer Betrachtung würde alles perfekt aussehen.
Ingenieur
^^ ok, dann denke ich es ist wirklich eine Fälschung. Die Tatsache, dass der Planet beim Betrachten des gesamten Planeten vollständig rund ist (keine Hügel), zeigt an, dass für ihn eine normale Kugelgeometrie verwendet wird. Wir können es hier sehen: s.uvlist.net/l/y2008/09/53528.jpg
FlashFan
14

Das Problem hierbei ist, dass bevölkerungsreiche Karten überhaupt keine Kugeln sind. Sie sind eine echte projektive Ebene , analog zu einem flachen Torus, der auf dem Bildschirm so manipuliert wird, dass er wie eine Kugel aussieht als eine tatsächliche Kugel.

Zum Beispiel:

Geben Sie hier die Bildbeschreibung ein

Das Spiel wird aus einer 3D-Perspektive einer dritten Person mit der Kamera in variabler Höhe gespielt und kann um 360 ° gedreht werden, sodass sich der Spieler schnell über das Gelände des Planeten bewegen kann, das eigentlich eine echte Projektionsebene und keine gewöhnliche Kugel ist . Auf Karten, auf denen es keinen Kriegsnebel gibt, können die Spieler jederzeit sehen, was die Gegner tun. Die umfassende Unterstützung der 3D-Beschleunigung ermöglicht es dem Spieler, das Spiel in 16-Bit- oder 32-Bit-Farben anzuzeigen. [10] Der Aufbau der Landschaft und der Echtzeitstruktur sowie die Bewegung der Anhänger werden ebenfalls gezeigt.

Beachten Sie auch hier:

Geben Sie hier die Bildbeschreibung ein

Wenn die Übersicht den halben Planeten wie die Minikarte enthält, warum zeigt die Minikarte so viel mehr Wasser? Und warum spiegelt die Wassertextur nicht die wahren Proportionen einer Kugel wider, indem sie an den Rändern eine fast seitliche Sicht zeigt?

Beachten Sie auch, wie in den Kommentaren zur anderen Frage erwähnt, dass der Planet in diesem Screenshot perfekt rund ist:

Geben Sie hier die Bildbeschreibung ein

Wenn es eine echte Kugel wäre, könnten wir Hügel und Objekte sehen, die vom Rand des Planeten hervorstehen. Hier ist zum Beispiel Planetary Annihilation: Sehen Sie die Bäume und Klippen, die über den Horizont ragen:

Geben Sie hier die Bildbeschreibung ein

Stattdessen würde ich für ein modernes Spiel empfehlen, ein Ikosaeder zu tessellieren. Auf SO finden Sie viele Fragen dazu in einer Programmiersprache Ihrer Wahl

Tom J Nowell
quelle