PlanetSwitch Planet3DS PlanetVita PSP.de PlanetiPhone Classics Forum

PGN-ID:[?] (Nicht eingeloggt)
Login
Registrieren
PlanetDS PlanetGameboy N-Page.de

-

Sonstiges: Entwicklertagebuch - Der Weg zum eigenen 3DS/Switch-Spiel

Michael Grönert, am 26.12.2016, Seite 11 von 18

Artikel mögen: Weitersagen:



Teil 11: Tag- und Wetterwechsel
Dieses Mal wollen wir etwas Abwechslung in den tristen digitalen Alltag unserer Overworld- Landschaft bringen. Im Gegensatz zu den meisten Dingen, die bisher implementiert wurden, birgt es zwar keinen strategischen Vorteil, damit so früh in der Entwicklung zu beginnen, aber ein Entwickler möchte auch nicht immer dieselbe monotone Landschaft beim Testen vor sich haben. Deshalb habe ich mich entschlossen, dem Ganzen durch einen Tag- und Wetterwechsel etwas Würze zu verleihen. Dies beinhaltet Änderungen der Wetterlage wie Sonnenschein, Regenwetter und Schneegestöber, passende Lichtverhältnisse sowie einen Tag- und Nachtwechsel.

Man muss das Rad der Zeit nicht neu erfinden
Wie auch schon beim Inventarsystem habe ich zunächst recherchiert, ob es bereits kostenlose Angebote für Wetter- und Zeitsysteme im Assetstore von Unity gibt. Tatsächlich bin ich auch fündig geworden, habe mir Time of Day & Weather System heruntergeladen und in mein Projekt importiert. Dieses enthält genau das oben Gewünschte und noch etwas mehr. Es besteht hauptsächlich aus zwei Kontrollobjekten - eines für das Wetter und eines für die Tageszeit. Gehen wir zunächst auf die zeitlichen Aspekte ein. Der Zeitkontroller hat einen Timer, der in einer vorgegebenen Geschwindigkeit stets von 0 bis 24 Uhr zählt und wieder von vorne beginnt. Dazu gehören zwei Lichtquellen, welche den Mond und die Sonne repräsentieren. Beide Lichtquellen sind direktional, erzeugen also Lichtstrahlen in eine vorgegebene Richtung und nicht etwa in alle Richtungen wie es eine „Punktquelle“ tun würde. Sie drehen sich beide um etwa 180° versetzt um sich selbst, um so die verschiedenen Lichteinfallswinkel über den Tag hinweg zu simulieren und dadurch Objekte immer von einer anderen Seite zu beleuchten und entsprechende Schatten zu werfen. Das Ganze stellt natürlich ein stark vereinfachtes Modell unseres Tag- und Nachtwechsels dar. In Wirklichkeit scheinen Sonne und Mond aus unserer Sicht keine gleichmäßige Kreisbahn zu beschreiten, sondern bewegen sich dank der Erdrotation auf einer Kurvenbahn. Auch ist die Versetzung zwischen Sonne und Mond nicht immer gleich. Im echten Leben sind Sonne und Mond manchmal gleichzeitig zu sehen und manchmal nicht. Ebenso werden die Entfernung der Sonne, also die Jahreszeiten, sowie die Lichtintensität vom Mond, der nicht stets gleich stark von der Sonne angestrahlt wird, hier außer Acht gelassen. Was unser System aber bereits beachtet, sind Unterschiede in den Farben unserer Lichtquellen, die sich je nach Tageszeit ändern. Beispielsweise wird das Sonnenlicht bei Sonnenauf- und untergang leicht rötlich.

Da wir nun auch gerne wüssten, wie spät es in unserem Spiel ist, wollte ich eine Möglichkeit finden, die etwas mehr hermacht als eine simple Anzeige auf dem Bildschirm. Immerhin wissen wir in der Realität auch nicht die genaue Uhrzeit, nur weil sich das Licht verändert. Deshalb habe ich zwei neue Items erstellt - eine analoge und eine Digitaluhr. Führt man diese im Inventar mit sich, kann man die Zeit direkt im Item-Slot ablesen. Natürlich wäre es nützlich, wenn man solch eine Uhr später nicht stets in der immer sichtbaren „Hotbar“ tragen muss, um die Zeit sehen zu können. Denkbar wäre ein „Ausrüsten“ wodurch die Zeit bzw. die Uhr zusätzlich am Bildschirmrand eingeblendet wird.


Zwei Uhren im Inventar bei Nacht

Wetter wechsle dich!
Das importierte Wettersystem bietet bereits die wichtigsten Wetterzustände an: Sonne, Regen, Schnee, Gewitter und Bewölkung. Im Falle von Regen und Schnee gibt es Partikelsysteme die Regentropfen oder Schneeflocken erzeugen. Partikel sind so zu sagen sehr minimalistische Objekte, die gewissen physikalischen Gesetzen gehorchen und eine begrenzte Lebensdauer haben. Sie sollen so möglichst effizient in großen Mengen genutzt werden können, ohne zu viel Rechenleistung zu benötigen. Regen kann beispielsweise als zweidimensionale kurze Striche dargestellt werden, um so den Eindruck schnell fallender Tropfen zu schaffen. Sie müssen also keine 3D-Modelle nutzen und können durch andere Objekte durch fallen, also keine Kollisionen behandeln, da man dieses Detail eh kaum sehen könnte.


Düster und Regen - das drückt die Stimmung

Die Schneeflocken hingegen sind als kleine weiße Quader umgesetzt. Nur wenige davon haben bei einem Test ein altes 3DS-Modell bereits zum Ruckeln gebracht. Alternativ wären hier vielleicht 2D-Sprites, also Bilder statt Modelle, von Schneeflocken denkbar.


Die kantigen Schneeflocken reflektieren das Sonnenlicht leicht

Ausgehend davon, dass es ohne Wolken auch keinen Niederschlag geben kann, wird die Umgebung bei schlechtem Wetter automatisch mit abgedunkelt. Das Wettersystem beeinflusst also ebenfalls die Lichtquellen, zusammen mit der Tageszeit. Ein Gewitter erweitert das Regenwetter um Blitze. Diese werden nicht direkt durch sichtbare Blitz-Zeichnungen umgesetzt, sondern durch ein kurz und hell aufleuchtendes Bild.

Nun muss das Wetter nur noch bestimmt und in angemessenen Zeitabständen gewechselt werden. Dafür wird ebenfalls unsere Spiel-Uhrzeit verwendet und ein bisschen Zufall. Ich kann beispielsweise bestimmen, dass eine Wetterphase jeweils eine bestimmte Zeit andauert - ein paar Stunden bis ganze Tage. Danach wird das nächste Wetter per Zufall ausgewählt und wieder eine Dauer festgelegt. Dieser Prozess könnte stark optimiert werden um die Realität möglichst genau widerzuspiegeln. Je nach Lokalisation der Spielwelt (eingestellte Sprache, etc. als Hinweis) könnte man niederschlagsarme Wüsten bis regnerische Subtropen abbilden. Da wir uns aber in einer virtuellen Welt befinden, welche sich momentan an keinem bestimmten realen Vorbild orientieren soll, habe ich hierfür keine Zeit investiert und es bei einem relativ willkürlichen Zufallsalgorithmus belassen.

Ein Unterschied wie Tag und Nacht
Momentan ist das neue Zeit- und Wettersystem nur ein Schönheits-Detail unserer Welt und hat keinen tieferen Sinn. Das wird auch eine Weile so bleiben, da andere Dinge eine höhere Priorität haben, dennoch möchte ich bereits jetzt ein paar der neuen Möglichkeiten ansprechen. Wetter und Tageszeit können eine Menge Einfluss auf das Spielgeschehen haben. In vielen Spielen steht die Nacht für Gefahr - denkt an Minecraft oder an Don't Starve. Nachts kann es beispielsweise mehr oder gefährlichere Monster geben. Vielleicht muss man sich sogar in eine sichere Unterkunft zurückziehen oder in der Nähe eines Lagerfeuers bleiben. Für unseren Fall denke ich mal wieder eher an einen Vergleich zu Pokémon: Vielleicht gibt es düstere Minispiele, die nachtaktiv sind und andere, die sich nur bei Tag heraus trauen. Oder manche Spiele unterscheiden sich leicht, je nachdem ob man sie bei Tag oder bei Nacht spielt. Sie könnten sich rein grafisch an die jeweilige Situation anpassen oder bei Nacht schwerer sein und mehr Erfahrung geben. Außerdem sind somit zeitbasierte Events denkbar. Solar-Akkus, welche sich nach einer bestimmten Zeit in der Sonne aufladen und Pflanzen die eine bestimmte Zeit benötigen, um nachzuwachsen. Man könnte beispielsweise Batterie-Büsche anbauen, an denen man Batterie-Beeren ernten kann. Bei solchen Dingen stellt sich allerdings die Frage, ob diese Dinge wirklich von der Zeit im Spiel oder der realen Systemzeit abhängen sollen. Man könnte Pflanzen auch wachsen lassen, während das Spiel nicht läuft, wie die Beeren-Sträucher bei Pokémon oder alle Pflanzen bei FarmVille. Oder im Spiel muss die Zeit wirklich abgewartet werden, wie etwa bei Harvest Moon und Stardew Valley.

Auch das Wetter darf direkten Einfluss nehmen. Wieder vergleichbar mit Pokémon, die sich nur bei Regen hervor trauen, können Minispiele ein solches Verhalten aufweisen. Wetter und Uhrzeit wirken sich auf die Temperatur aus, ein weiterer wichtiger Aspekt, der noch völlig außer Acht gelassen wurde. Temperaturen könnten die Minispiele ebenfalls beeinflussen. Nicht zuletzt aber auch die Welt an sich. Gewässer könnten austrocknen oder zufrieren und so neue Wege freigeben. Der Spieler muss sich gegebenenfalls gegen zu hohe oder zu niedrige Temperaturen schützen, damit er keinen Schaden nimmt oder schwächer wird. Ein Musterbeispiel für das Zusammenspielen all dieser Aspekte ist The Legend of Zelda: Breath of the Wild. Hier sollte man sich mit passenden Nahrungsmitteln und Kleidung auf die verschiedenen Temperaturen vorbereiten, die an verschiedenen Orten und zu verschiedenen Tageszeiten herrschen können.

Dies war mein heutiger Beitrag zum aktuellen Entwicklungsstand von Game Master. Im nächsten Part gehe ich auf ein sehr umfangreiches Thema ein: Netzwerk-Spiele! Online Multiplayer und lokale Mehrspieler-Partien über WiFi sollen verwirklicht werden. Bis zum nächsten Mal - und scheut euch nicht vor Feedback, Fragen und Vorschlägen!

Ihr möchtet die Auszüge aus dem Leben eines Entwicklers lieber in englischer Sprache lesen? Unter diesem Link findet ihr die englische Version dieses Tagebucheintrags!


Gehe zu Seite:
Vorherige Seite | Nächste Seite

ANZEIGE:
Kommentare verstecken

- Kommentare


- Noch keine Kommentare vorhanden -

Um Kommentare zu schreiben, bitte oben einloggen oder jetzt Registrieren!