mmofacts.com

Spielwelt: Simulieren, auswürfeln oder willkürlich bestimmen?

gepostet vor 15 Jahre, 11 Monate von Fodazd

Folgendes Problem:
Bei meinem Browsergame (Fantasy RPG) sitze ich gerade an der Erstellung einer Spielwelt, und beginne langsam den Eindruck zu bekommen, dass ich mir dabei etwas zu viel vorgenommen habe... Konkret: Bisher hat es mich bei anderen RPGs immer gestört, dass die Welten von ihrem Aufbau her ziemlich unrealistisch sind - da wachsen plötzlich irgendwelche Gebirge aus dem Boden, weil irgendjemand sie zufällig dort gebraucht hat, es entspringen riesige Flüsse einfach aus dem Nichts, es wachsen dichte Wälder in Regionen, wo es eigentlich staubtrocken sein sollte, und genau dort, wo eigentlich der meiste Niederschlag zu erwarten ist, gibt es eine Wüste... -.-

Ich denke mir also "Nein, mein Browsergame wird eine schlüssige und realistische Spielwelt haben!". Gut, ich weiß, wie Gebirge entstehen (Plattentektonik, Erosion), ich weiß, wie Flüsse entstehen (Niederschlag, Grundwasser), ich weiß, wie Wälder entstehen (Bodenbeschaffenheit, Klima), ich weiß, wie Wüsten entstehen (mangelnder Niederschlag). So weit, so gut... Es ist halt nur so, dass ich momentan kläglich daran scheitere, dieses Wissen in Code umzuwandeln. Ich sitze an diesem Problem jetzt schon ziemlich lang, und beginne mich langsam zu fragen, ob sich der Aufwand überhaupt lohnt...

Was mich zu meiner eigentlichen Frage führt:
Soll die Spielumgebung möglichst realistisch simuliert werden, inklusive Wetter, Vegetation, korrekte Geologie usw.?
Soll man die Spielwelt einfach willkürlich selbst festlegen, auch wenn es unrealistisch und/oder aufgesetzt wirkt, und noch dazu viel Arbeit bedeutet?
Oder soll man die Weltkarte überhaupt einfach zufällig generieren lassen?

Ich selbst war bisher eigentlich eher für ersteres, weil es einfach glaubwürdiger und konsistenter ist, wenn man auch für eine Fantasy-Welt nicht einfach die grundlegenden Naturgesetze umschreibt... Je näher die Spielrealität an unserer eigenen Realität liegt, desto einfacher fällt es dem Spieler, sich dort Zuhause zu fühlen, und desto unwahrscheinlicher ist es, dass es zu einem Bruch der Glaubwürdigkeit kommt.

Natürlich kann man das auch dadurch erreichen, dass man die komplette Spielwelt von Hand erstellt, aber erstens kriege ich von Hand niemals derart eindrucksvolle Landschaften hin, wie sie unsere gute alte Erde zu bieten hat, und zweitens würde selbst ein relativ kleines Areal von 100x100 Feldern (die geplante Größe des Beta-Startgebiets) einen gigantischen Arbeitsaufwand bedeuten... Ich müsste 10.000mal jeweils eigene Werte für Meereshöhe, Vegetation, Feuchtigkeit und Geländeform festlegen - und vom Arbeitsaufwand für eine komplette Welt will ich erst gar nicht reden.

Dann wäre da noch die Möglichkeit, diese Werte ganz einfach auswürfeln zu lassen... Sicherlich die Variante mit dem geringsten Aufwand, aber auch diejenige mit dem voraussichtlich schlechtesten Ergebnis. Würden sich die Spieler auch damit zufriedengeben?

Hoffe auf Antworten...

EDIT:
Irgendwie bringe ich es nicht fertig, die Umfrage richtig zu erstellen... Es fehlen noch die Antwortmöglichkeiten "Zufälliges Auswürfeln", "Eine Mischung aus allem" und "Ganz was anderes".

EDIT2:
Der Button "Antwort hinzufügen" funktioniert nicht.

gepostet vor 15 Jahre, 11 Monate von Dhyani

Als Allererstes wuerde ich geographische und klimatische Begebenheiten trennen.

z.B.

  • Klima: Waelder, Wueste, Praerie, Marschland, ... (ergo: Klimazonen)
  • Geographie: Flachland, Berge, Ozean

Die zweite Sache, die anzupacken waere, ist die Frage, ob eine strukturierte Landschaft im Spiel ueberhaupt den Ausschlag gibt.

Wird diese Sache mit "Ja, unbedingt" beantwortet, waere eine Moeglichkeit, die Karte in geographische  Zonen aufzuteilen. Damit kannst du festlegen, wo Seen/Ozeane, Berge oder FLACHES Land liegen.

Darueber spannst du dann ein paar Klimazonen und so kannst du festlegen, wo Eis waechst, Waelder gedeihen oder der Wuestensand durch die Fensterritzen dringt.

Innerhalb dieser beiden Modelle kannst du dann recht einfach per Zufall und Toleranzen die Eigenschaften der einzelnen Felder auswuerfeln.

"Kleinigkeiten" wie markante Punkte (z.B. Fluesse, geographische Punkte mit spielwichtigem Inhalt, ...) waeren dann per Hand exakt nachzutragen.

Und schon haette man ne Karte. Ganz grob gesprochen.

Dhyani

gepostet vor 15 Jahre, 11 Monate von Drezil

Mal ne unkonventionelle idee:

Nimm dir den L3DT ( http://www.bundysoft.com/L3DT/ ) und erstell einen map (geht ganz einfach nach tutorial :D). Dann speicherst du die heighmap und die texturierte map. Am besten alles in höchster auflösung, die in der trial möglich ist (2kx2k pixel iirc).

Dann schreibst du dir nur noch einen parser für die Bilder. Wenn du auf 100x100 felder kommen willst, nimm den mittelwert aus jeder 20x20-kachel der heighmap und speicherst die 20x20-kachel aus der texturmap (evtl. mit einigen filtern drübergehen, da das sonst scheisse aussieht beim hochskalieren).

Schon hast du eine super-realistische 3d-Umgebung inklusive texturen und ordentlichen höhenangaben.

Man muss vielleicht noch etwas nachbearbeiten/hinzufügen (ich sag nur: Flüsse), aber es sollte dir eine menge arbeit ersparen.

Das wäre zumindest meine herangehensweise an die Geschichte.

Hth

gepostet vor 15 Jahre, 11 Monate von tector

hm, mir fehlen da ehrlich gesagt 1-2 weitere Antwortmöglichkeiten.

Ich bin da für einen Kompromiss:

- prinzipiell eine zufallsgenerierte Lösung

- aber es sollten Konstellationen die einfach zu unrealistisch sind per Fallunterscheidung vermieden werden

(also z.b. kein eisgebirge neben wüstenebene ^^)

gepostet vor 15 Jahre, 11 Monate von Bloodredangel

"Ich müsste 10.000mal jeweils eigene Werte für Meereshöhe, Vegetation, Feuchtigkeit und Geländeform festlegen"

Wenn du per Hand sagst, dann verstehe ich darunter "Laubwald, Sandwüste, Tundra, ..." und keine Festlegung von Eigenschaften, die im Endeffekt erst den Typ (Laubwald, ...) bestimmten sollen. Die rangehensweise anhand von Meereshöhe etc. festzulegen welcher Typ logisch wäre, wäre der Weg eines Algoririthmus. Per Hand definierst du doch direkt was es ist (und für den Spieler sind die Eigenschaften sicherlich eh uninteressant - falls dem nicht so ist, verkompliziert das die Sache natürlich ungemein).

Ich würde mir per Script grobe Flächen füllen (Aussagen wie "von 1,1 bis 10,8 ist Wüste und von 10,1 bis 12, 3 ist ....") und per Hand modifizieren, sodass die Übergänge "fließender" wirken. Bei den groben natürlich die Gegebenheiten beachten, dass zB. im Äquatorialbereich eine Wüste "unwahrscheinlich" ist.

Aber ich find eh, dass fast alles denkbar ist. Ok ein Fluss muss in einem Berg beginnen, aber das kann man dem Algorithmus ja noch beibringen. Fluss in der Wüste & Wüste am Meer ist ja nix neues (Ägypten). Sicher muss man vielleicht auch Sachen vermeiden, aber da würd ich Trial & Error mit dem Algorithmus betreiben.

Ich persönlich denke, dass die manuelle Lösung einfacher ist und gute Resultate wirft, der Algorithmus aber dahingehend interessant ist, dass man ja auch öfter mal eine neue Spielwelt kreieren kann ... ;)

gepostet vor 15 Jahre, 11 Monate von Fodazd

ok... erstmal danke für die Antoworten.

@Dhyani:
Diese Trennung hätte ich so wie so vorgehabt... Und wenn die Landschaft keine Auswirkungen auf das Spiel hätte, dann würd ich da nicht so viel Aufwand reinstecken! ;)
Es ergeben sich nur folgende Probleme:
-> Wie verteile ich die geografischen Zonen?
-> Wie verteile ich die Klimazonen?
Wenn ich das ganze per Hand mache, dann werde ich höchstwahrscheinlich nicht das rauskriegen, was ich will... Zumindest bei den Klimazonen. Bei den geografischen Zonen habe ich mir ohnehin schon gedacht, dass ich da einige Sachen manuell festlegen muss, aber da sich die Klimazonen zumindest teilweise auch aus den geografischen Zonen ergeben (Abstand vom Meer, Gebirge als Niederschlagsauffänger, etc.) bräuchte ich für ein realistisches Ergebnis einen Algorithmus, der mir die Klimazonen anhand der Geografie berechnet...

@Drezil:
Hab ich mir auch schon überlegt... Werd ich höchstwahrscheinlich auch machen (zumindest was die Geografie angeht - für das Klima wird das wohl nicht so leicht gehen... Siehe oben).

@tector:
Diese Antwortmöglichkeiten wollte ich ja eigentlich hinzufügen, aber irgendwie reagiert der Button zum Antworten hinzufügen nicht... -.-

@Bloodredangel:
Tja... Das Blöde ist, dass die Spielmechanik teilweise auf diese "Teilstücke" des Geländes zurückgreift, und archetypische Landschaften wie "Laubwald", "Sandwüste" oder "Tundra" hier nicht existieren... ;)
Es macht z.b. durchaus einen Unterschied, ob ein Laubwald auf einer Ebene, auf Hügelland oder einem Gebirge wächst, oder ob er sich auf 100, 300 oder 700 Meter Seehöhe befindet - gewisse Funktionen des Spiels fragen einfach gezielt die Geländeform oder die Meereshöhe ab, ohne auf die Vegetation rücksicht zu nehmen... Wieder andere fragen nur die Vegetation ab, und auf welchem Terrain diese Vegetation steht ist ihnen dabei egal. Beipiel: Wenn man sich in einer Wüste befindet, dann ist keine Landwirtschaft möglich und man hat einen erhöhten Wasserverbrauch. Wenn man sich im Gebirge befindet, dann hat man weniger Baufläche und eine geringere Bewegungsrate. Wenn man sich auf einem Gebirge in der Wüste befindet, dann hat man keine Landwirtschaft, einen erhöhten Wasserverbrauch, weniger Baufläche und geringere Bewegung - die Funktionen für "Gebirge" und "Wüste" sind aber trotzdem unabhängig voneinander. Diejenigen Fälle, bei denen wirklich alle Werte eines Geländefelds als ein Ganzes betrachtet werden gibt es zwar, aber sie sind nicht sooo häufig, dass ich mein ganzes Spielkonzept nach ihnen ausrichte.

Ich könnte mir natürlich auch eine Funktion schreiben, die alle Felder in einem bestimmten Bereich mit bestimmten Werten füllt... Das wäre wohl die einfachste und am wenigsten arbeitsintensive Variante - und wenn die Spieler sich mit so einer Welt zufriedengeben, dann wohl auch die effektivste. Das Problem ist halt nur, dass es schon Unmengen solcher Welten gibt, und ich eigentlich "mehr" will...

gepostet vor 15 Jahre, 11 Monate von Dhyani

@Dhyani:
Diese Trennung hätte ich so wie so vorgehabt... Und wenn die Landschaft keine Auswirkungen auf das Spiel hätte, dann würd ich da nicht so viel Aufwand reinstecken! ;)

Schon klar, die Frage lautet ja auch, ob ein "realistischer" geographischer und klimatischer Aufbau tatsaechlich so ausschlaggebend ist. Immerhin kann man ja plaedieren: "Andere Laender, andere Sitten" - womoeglich herrschen in einer Fantasy-Welt komplett andere Bedingungen und heisse Sandwuesten sind neben Ewigen Eis plausibel?

Es ergeben sich nur folgende Probleme:
-> Wie verteile ich die geografischen Zonen?
-> Wie verteile ich die Klimazonen?

Dafuer gibt es mehrere Moeglichkeiten. Du kannst zum Beispiel definieren, welche geographischen bzw. klimatischen Zone nebeneinander liegen duerfen. Also zum Beispiel:  An einem Gebiet Ewigen Eises darf nur Tundra angrenzen, aber niemals Wueste oder subtropisches Klima. An einem Gebiet mit Wueste darf entsprechend niemals Ewiges Eis oder Tundra anschliessen, sondern nur gemaessigte bzw. subtropische Zonen. So erhaelst du ganz von selbst eine Schicht von verschiedenen Klimazonen.

Mit der geographischen Sache ist es aehnlich: Huegelland kann von Bergland, Seenland, Flachland umschlossen werden, aber (als Beispiel) niemals von Kueste. An Gebirge kann nur Vorbergland (bzw. Huegelland) angrenzen, aber z.B. niemals Kueste. Auch hier bekommst du dann bestimmte (logische) Streifen heraus.

Spezielle Faelle koennten geschaffen werden, wenn man Klima und Geographie verbindet, z.B. Gletscher koennen nur in geographischen Zonen "Hochgebirge" oder Klimazone "Ewiges Eis" vorkommen, aber niemals im Ozean.

So kann man sich recht gut eigene Kontinente erschaffen, die haargenau auf den gegebenen Definitionen aufbauen. Und es kommt auf die Anzahl der definierten Zonen und Kombinationsmoeglichkeiten an.

Dhyani

gepostet vor 15 Jahre, 11 Monate von Fodazd

@Dhyani:

1.:
Natürlich könnte man so argumentieren (wird auch oft genug gemacht), aber ich bin der Meinung, dass es dem Spieler umso leichter fällt, sich in der Spielwelt zurechtzufinden, je vertrauter er mit den dort gültigen Gesetzmäßigkeiten ist. "Ewiges Eis neben Sandwüste" wird halt von den meisten Spielern als "unlogisch" empfunden, und stört daher die Atmosphäre bis hin zum totalen Bruch - und genau das will ich vermeiden.

2.:
Prinzipiell gute Idee! Ich würde bei der Ausführung in gewissen Punkten halt nicht ganz so streng sein (Gebirge neben Meer ist durchaus möglich... Siehe Norwegen), und ein paar andere Punkte etwas genauer behandeln (vor allem den Niederschlag... Ist bei meinem Spiel für die Landwirtschaft wichtig). Außerdem müssten noch ein paar Sonderfälle beachtet werden (eine riesige Fläche, die nur aus Gebirge besteht ist z.b. etwas unrealistisch... Die meisten Gebirge auf der guten alten Erde haben zumindest ein paar Pässe und Täler dazwischen, usw.).

gepostet vor 15 Jahre, 11 Monate von Dhyani
Prinzipiell gute Idee! Ich würde bei der Ausführung in gewissen Punkten halt nicht ganz so streng sein (Gebirge neben Meer ist durchaus möglich... Siehe Norwegen), und ein paar andere Punkte etwas genauer behandeln (vor allem den Niederschlag... Ist bei meinem Spiel für die Landwirtschaft wichtig). Außerdem müssten noch ein paar Sonderfälle beachtet werden (eine riesige Fläche, die nur aus Gebirge besteht ist z.b. etwas unrealistisch... Die meisten Gebirge auf der guten alten Erde haben zumindest ein paar Pässe und Täler dazwischen, usw.).

Es war ja auch nur als Beispiel gedacht. Weitere Attribute waeren zum Beispiel die "Dicke" einer Zone: sprich: Wieviel Felder darf eine Zone maximal umfassen. Bei Klimazonen waeren es eher "Linien", die in ihrer Dicke variieren, bei geographischen Zonen koennten es andere geometrische Formen sein, wie z.B. Kreise oder Vielecke.

Wichtige Punkte wie z.B. (wichtige) Fluesse, Paesse, etc. waeren aber nach wie vor manuell zu bearbeiten, da kein Automatismus diese Platzierung wirklich gut uebernehmen kann. Immerhin sind diese Punkte ja bereits ein Individual-Merkmal - oder koennten es sein.

Schlussendlich ist es so: je komplexer (sprich: genauer) solch ein Modell ist, umso bessere Karten (sprich: Szenarien, die deinen genauen Vorstellungen entsprechen) kannst du generieren. Natuerlich steigt mit der Komplexitaet allgemein der Aufwand und es waere abzuschaetzen, ob dieser doch recht betraechtliche Aufwand fuer eine wohl einmalige Sache tatsaechlich gerechtfertigt waere.

Wenn es um Hexfeld-Karten geht, wuerde ich gar Interesse zeigen, mich juckt es gerade in den Fingern, ein Konzept auf History-Line-Basis zu vertiefen, da kaeme ein Kartengenerator nicht ganz ungelegen. .o)

Dhyani

gepostet vor 15 Jahre, 11 Monate von Fodazd

So... Das Problem hat sich in Wohlgefallen aufgelöst.

Der Trick:
Es gibt da ein Programm namens "Wilbur", das im Prinzip ein etwas aufgemotztes Zeichenprogramm ist, das solche Funktionen wie "Erosion" beinhaltet und eine Ausgabe als .txt unterstützt. Dieses txt importiert man dann mithilfe eines Scripts in die Datenbank und man hat eine ganze brauchbare Karte, sofern man vorher was ganz brauchbares hingemalt hat...

Solche Sachen wie die Verteilung von Wäldern und Klimazonen hat das Zeug zwar nicht drauf, aber dafür muss ich mir eigentlich nur ein Script schreiben, das das Zeug über die Hightmap drüber pappt.

Auf diese Diskussion antworten