Tag Archives: Umwelt

Simulation der Fauna

Soo.. Immer noch auf der Suche nach einem Nachfolgethema für mich.. Vielleicht mal das naheliegendste Thema als Vorschlag überdenken: die Simulation der Flora, beziehungsweise von Teilen der Flora haben wir nun, der Kleinbewuchs und die Fauna warten noch auf ihre Berechnung. Das wäre natürlich das kanonische Nachfolgethema. Welche Unterschiede müssen in der Simulation beachtet werden? Bisher wurden immobile Individuen berechnet. Beide Punkte sind für die Simulation von Kleinbewuchs und Fauna nicht praktikabel:

  • Berechnung auf Ebene von Individuen ist bei Kleinbewuchs bei Weitem zu rechenaufwendig (Gräser sind wohl besser auf Populationsebene als auf Individualebene zu betrachten), bei Fauna ist das Problem sogar noch größer: bei generativer Vermehrung und Berechnung von Individuen müsste man auch Paarungsverhalten, Laufwege und Geschlecht von Tieren beachten – uncool.
  • Tiere sind – abhängig von ihrer Größe – auch mobil. Bei schlechten Umweltbedingungen sterben sie nicht notwendigerweise, sondern würden zunächst eine Auswanderung in benachbarte Regionen versuchen.

Also, was tun? Erste Gedanken dazu:

  • Die Bevölkerungsdichte wird pro Art, pro Gebiet bestimmt, die Größe des Gebiets ist abhängig von der Art und entspricht dem durchschnittlichen Mobilitätsgebiet der Tiere. Bei Blattläuses reden wir wahrscheinlich von einer Gebietsgröße von wenigen Quadratmetern, bei Löwen sind Territoriumsgrößen (und damit Gebietsgrößen) von bis zu 400 Quadratkilometern möglich.
  • Auch für die Berechnung von Kleinbewuchs und Fauna werden Umweltfaktoren mit einbezogen – natürlich andere als bei Pflanzen. Wesentlich mehr Augenmerk muss aber auf die Interdependanzen zwischen Arten gelegt werden (Beispiel Prädatoren).
  • Vor allem bei langlebigen Tieren könnte eine Unterscheidung in Generationen notwendig sein. Verbunden damit könnte ein größeres Augenmerk auf die Einbeziehung der altersbedingten Sterblichkeit sein.
  • Bei schlechten Bedingungen gibt es keine (unbegrenzte) Biomasseabnahme ohne den Tod des Individuums, dafür ist je nach Art eine Auswanderung in angrenzende Gebiete möglich.
  • Man stellt sich vor, dass die Volterra Regeln zumindestens in abgeschlossenen, kleinen Systemen beobachtbar sein sollten.. Scheint aber eine toughe Aufgabe..

Insgesamt ein interessantes Thema, das sich vom Realkontext her an das bisherige Thema angliedert. In der technischen Umsetzung lassen sich aber kaum Parallelen erkennen, dementsprechend wird sich auch kaum etwas vom Prototypen zur Simulation der Flora wiederverwenden lassen.

Posted in Inspiration-O-Matic. Tagged with , .

Die Generierung der Umwelt – erste Schritte eines Prototypen

Wie letzten Freitagangekündigt ist es heute soweit – ein erstes kurzes Video mit vollständig generierten Bäumen ist online. Die Fläche ist noch recht klein, die Bäume noch nicht besonders schön, aber für eine erste Vorführung bin ich durchaus zufrieden :)

Posted in Graphic-O-Matic, News-O-Matic. Tagged with , , , , , .

Der Prototyp wird getauft..

Soo.. bald ist es soweit… Inspiriert und ermutigt von “Die Kunst des Game Designs”, einem Buch von Jesse Schell und Teil meiner Beute des letzten UniBib Runs werde ich heute einen ersten, “fertigen” Screenshot eines generierten Ahorns reinstellen und nächste Woche ein erstes Video dazu hoch laden. Wieso inspiriert durch dieses Buch? In Kapitel 7.5: Risokoanalyse und Prototypentwicklung gibt er einem eben für die Erstellung von Prototypen (wie der Simulation der Flora) Tipps an die Hand, und gleich der zweite lautet “Lassen Sie die Qualität außer Acht”, also (grob zusammengefasst): Es ist ein Prototyp, er soll zeigen, ob eine Überlegung umsetzbar ist, er soll nicht das fertige Produkt sein. Zu viel Augenmerk auf Feinschliff und Optik eines Prototypen kann sogar eher hinderlich sein, lenkt ab von den eigentlichen Fragen, zum Beispiel: Ist ein solches Vorgehen mit individuellen Bäumen performancetechnisch machbar?

Also höre ich an dieser Stelle auf mit dem weiteren Schrauben an der Optik des Baumes, an den Wuchseigenschaften, am Balancing der beiden Baumarten und nutze den Prototypen für eine erste Demonstration so, wie er ist :) Heute ein Foto, am Wochenende dann werden wir die von Chro erstellte Landschaft (siehe Blogeintrag von Mittwoch) laden und die Simulation laufen lassen. Und nächste Woche dazu das Beweisvideo :) Ich freu mich drauf :)

Prototyp Testlauf: erster baum in Torque

Prototyp Testlauf: erster baum in Torque

Posted in Graphic-O-Matic. Tagged with , , .

Apikaldominanz bei Birke und Ahorn

Ahorn

Ahorn

Soo.. mal ein kleines Update so für zwischendurch :) Wir haben den strahlend blauen Himmel des letzten Wochenendes genutzt, um auf Texturenjagd zu gehen. Und folgende Erkenntnis gehabt: birkentechnisch sind wir hier ganz schwach ausgestattet. Aber wenn es um Ahorne gibt, da haben wir sehr viele, sehr sehr schöne Exemplare direkt ums Eck :) Also stand schnell der Plan: Birke wird hinten an gestellt, in den ersten Demonstrationen der Umweltsimulation werden wir also Ahorne sehen. Das bringt aber leider noch ein bisschen Mehrarbeit mit sich, denn die Stammform des Ahorn unterscheidet sich von dem der Birke.

Das Stichwort, auf das ich hier kurz eingehen wollte, ist Apikaldominanz. Unter Apikaldominanz versteht man die Dominanz eines Sprosses, durchgesetzt durch Unterdrückung des Wachstums der  anderes Sprossen. Dadurch bildet sich ein Hauptstamm aus, von dem alle Äste ausgehen. Bei Birken (und den bisher implementierten Nadelbäumen) ist diese Dominanz wesentlich stärker ausgeprägt als zum Beispiel beim Ahorn, der in den meisten Fällen drei oder mehr ähnlich stark ausgeprägte vertikale Hauptäste hat. Und genau da entsteht der Zusatzaufwand: Eine Wuchsform wie der Ahorn war zwar geplant, ist aber noch nicht umgesetzt. Ein Ahorn mit der Wuchsform einer Birke schaut aber halt nicht aus wie ein Ahorn, sondern wie eine Birke mit den falschen Texturen ;) Also auf ans Werk und eine Wuchsform mit mehreren Hauptsprossen umgesetzt! :)

Posted in Inspiration-O-Matic, Theory-O-Matic. Tagged with , .

friedliche Koexistenz: zwei Baumarten

Screenshot Blender Baumarten

Screenshot Blender Baumarten

Nachdem der letzte Screenie von einem generierten Baum ja schon ein Weilchen her ist, ist es vielleicht mal an der Zeit für ein Update zur Generierung der Umwelt :) Rechts ein gerade gemachter Screenshot aus Blender heraus, in dem ihr ein paar Bäume von zwei verschiedenen Baumarten (eine der Tanne ähnlich, die andere soll einmal Birke werden) seht. Wie ihr euch also denken könnt, habe ich in letzter Zeit einige Tests mit Bäumen verschiedener Baumarten, die um dieselben Ressourcen konkurrieren. Ach, und ein paar schöne Methoden zum Pflanzenarthandling geschrieben, die einem das Erstellen und Verwalten von verschiedenen Pflanzenarten erleichtern :)

Posted in Graphic-O-Matic. Tagged with , , .

von Umweltfaktoren und ihren Auswirkungen

Als ich zum ersten Mal über die Auswertung der Umweltfaktoren in der Simulation der Umwelt erzählt habe (zum nochmal Nachlesen: Fast ein Baum im Baum), habe ich mich auf die Reihenfolge der Umweltfaktoren in der Auswertung konzentriert und die dort angesprochene zweite Frage (2. Wie bildet man alle möglichen Beeinflussungsarten wie “beeinflusst die Photosyntheserate” oder “setzt eine obere Grenze” ab?) auf später vertagt – jetzt ist später :) Noch einmal kurz die Ausgangslage: Pflanzen werden von verschiedenen Umweltfaktoren auf die eine oder andere Art beeinflusst. Die Beeinflussung kann abhängig von anderen Umweltfaktoren und deren Konzentration in der die Pflanze umgebenen Umwelt und von der Größe der Pflanze sein und kann verschiedenen Auswirkungen haben, so zum Beispiel Veränderung der der Pflanze zur Verfügung stehenden Energiemenge durch eine feste obere Grenze oder prozentuale Verringerung haben. Welche Umweltfaktoren die Pflanze auf welche Art beeinflussen ist abhängig von der Pflanzenart und muss dementsprechend vom Coding flexibel gehandhabt werden.

Welche Anforderungen stellen sich also?

  • Die Berechnung der Beeinflussung muss an die Pflanzenart angepasst werden können.
  • Änderung und Neuanlage von Pflanzenarten muss ohne Änderung des Codings (Stichwort Customizing) möglich sein.
  • Die Aufnahme eines Umweltfaktors kann von mehreren anderen Umweltfaktoren und auch von Produkten anderer Umweltfaktoren beeinflusst werden.
  • Die Beeinflussungsart kann aus einer Liste von Beeinflussungsarten gewählt werden.
  • Die Beeinflussung kann zeitabhängig oder zeitunabhängig sein.

In der Umsetzung habe ich mich für die Speicherung der Beeinflussung in einer Customizingtabelle entschieden. Im Coding gibt es eine Methode, die die Datensätze aus dieser Customizingtabelle interpretiert und die Berechnung durchführt. Jeder Datensatz enthält die Pflanzenart, den Umweltfaktor, dessen Beeinflussung berechnet werden soll, die Beeinflussungsart, ein Flag, ob die Beeinflussung zeitahängig ist und natürlich alle notwendigen Informationen zu Abhängigkeiten von anderen Umweltfaktoren, dazu zählen bis zu zwei IDs anderer Umweltfaktoren und ein Zahlenwert. In allen bisher angedachten Pflanzenarten hängt kein Umweltfaktor von einem Produkt von mehr als zwei anderen Umweltfaktoren ab. Wenn dieser Fall dennoch eintritt, muss ein Umweg über einen Dummy-Umweltfaktor gewählt werden: Gilt beispielsweise Umweltfaktor1 = Umweltfaktor1 – Zahlwert * Umweltfaktor2 * Umweltfaktor3 * Umweltfaktor4, kann dies umgesetzt werden über DummyUmweltfaktor1 = Umweltfaktor2 * Umweltfaktor3 und Umweltfaktor1 = Umweltfaktor1 – Zahlwert * DummyUmweltfaktor1 * Umweltfaktor4. Auch die Energie wird als Pseudoumweltfaktor umgesetzt, ebenso die Reserveenergie und die Fortpflanzungsenergie. So können alle Werte nach demselben Vorgehen berechnet werden.

In der angesprochenen Methode in der Simulation wird in einer Schleife dann der Einfluss aller Umweltfaktoren in der (mit der im obigen Artikel erklärten topologischen Sortierung) Reihenfolge berechnet. Die ermittelten Werte werden gespeichert und können dann von den anderen Methoden der Simulation ausgelesen werden. Momentan werden nur die genannten Pseudoumweltfaktoren von anderen Programmteilen genutzt, aber es ist aufgrund der gewählten Speicherung der Ergebnisse ohne weiteres möglich, dies auch auf andere Umweltfaktoren auszuweiten. So könnten Pflanzen einer bestimmten Art aufgenommenes Wasser speichern, dies könnte sich in der Wuchsform niederschlagen und letzten Endes auch vom Spieler genutzt werden. :)

Posted in Code-O-Matic. Tagged with , .

So weit, so gut – der aktuelle Stand der Datenbank Handlerklasse

Nachdem eine gemeine Erkältung zuerst Chro und dann mich außer Gefecht gesetzt hat, hat die Umsetzung der Datenbank Handlerklasse leider länger gedauert als gedacht. Aber nun steht sie, zumindestens soweit wie geplant. Sämtliche Datenbankzugriffe laufen über sie, die Pufferfunktionalitäten sind implementiert. Der Rahmen für die Berechtigungsprüfungen ist fertig, doch mangels Berechtigungskonzept werden momentan alle Zugriffe erlaubt. Ähnliches gilt für die Logfunktionalitäten – noch wurde nicht entschieden, was ich alles mitloggen möchte. Aber mit dem momentanen Stand kann man leben und – noch viel wichtiger – weiter arbeiten. Ab morgen werde ich mich also wieder dem eigentlichen Thema, dem Feinschliff der Simulation widmen.

Posted in Code-O-Matic. Tagged with , .

Ordnung schaffen: eine Datenbank Handlerklasse

Eigentlich wollte ich am Wochenende dafür sorgen, dass endlich mal ein paar Screenshots von einem ganzen Wald (noch ohne schöne Texturen, aber immerhin..) online kommen. Dafür notwendig waren ein paar Änderungen, die das Langzeitverhalten der Wuchsform der Bäume betreffen. Uneigentlich.. ist mir mein stiefmütterliches Behandeln der Datenbankzugriffe auf den Kopf gefallen.. Irgendwo schreibt eine Methode Werte auf die Datenbank, die ich zu dem Zeitpunkt da noch nicht drin haben will. Aber wo? Es war immer geplant, dass ich das Coding nochmal aufräume, aber ich hatte gehofft es verschieben zu können bis alle Grundfunktionalitäten stehen. Und dann gründlich aufzuräumen, ohne die Funktionsweise zu schädigen. Aber statt mich durch den Code zu wühlen und den “schuldigen” Datenbankzugriff händisch rauszusuchen, ziehe ich zu mindestens dieses Schritt des Aufräumens vor und implementiere ein zentrales Handling der Datenbankzugriffe.

Folgende Anforderungen an das Handling habe ich mir gestellt:

  • Sämtliche Datenbankzugriffe laufen über die Methoden der Handlerklasse, außerhalb von dieser ist die Verbindung zu Datenbank nicht bekannt.
  • Die Handlerklasse ist verantwortlich für die Datenkonsistenz innerhalb des Programmaufrufs und für die Verwaltung entsprechender Sperreinträge auf der Datenbank.
  • Die Handlerklasse dient als Puffer zwischen Datenbank und Programm.
  • Programmteile brauchen die Berechtigung, um Datensätze des Puffers auslesen oder schreiben zu dürfen.
  • Alle Datenbankzugriffe werden mitgeloggt.
UML Buffer

UML Buffer

Nebenstehend ein Diagramm, das den groben Ablauf des Handlings der Datenbankabfragen zeigt. Jede Datenanfrage der Umweltsimulation wird an den Datenbankhandler gestellt. Dieser prüft, ob die Berechtigung vorhanden ist, ansonsten wird abgebrochen. Wenn diese Daten noch nicht geladen wurden, werden sie aus der Datenbank geladen. Es wird geprüft, ob die Daten einen Sperrvermerk haben, ansonsten werden die entsprechenden Datensätze ausgelesen und mit einem Sperrvermerk versehen. Die ermittelten Daten werden in die benötigten Strukturen überführt und in den Puffer geschrieben. In beiden Fällen werden die Informationen aus dem Puffer an die Simulation zurück gegeben. Jede Änderungsanfrage der Umweltsimulation wird ebenfalls an den Datenbankhandler gestellt. Dieser prüft, ob die Berechtigung vorhanden ist, ansonsten wird abgebrochen. Wenn die Berechtigung vorhanden ist, werden die Daten im Puffer geändert. Zusätzlich können aus der Simulation heraus das Committen oder Verwerfen der Änderungen angestoßen werden.

Posted in Code-O-Matic. Tagged with , , , .

Fast ein Baum im Baum..

Wie versprochen möchte ich immer mal wieder auf interessante Aspekte in Konzeption und Coding der von mir implementierten Features eingehen. Dabei geht es mir nicht so sehr um eine flächendeckende Beschreibung – ich habe nicht vor, die Doku in den Blog zu verlagern ;) – sondern darum, einzelne, aus meiner Sicht schöne oder interessante Stellen zu erläutern. Beginnen möchte ich dabei mit einer Stelle in der Simulation der Umwelt, genauer mit der Auswertungsreihenfolge der Umweltfaktoren.

Die Menge der durch Photosynthese umgewandelte und damit der Pflanze zur Verfügung stehenden Energie hängt von einer Reihe von abiotischen Faktoren ab, die sich gegenseitig beeinflussen (siehe auch Wikipedia). In der realen Welt sind dies Kohlenstoffdioxid, Licht, Wasser und Temperatur. In einer fiktiven Welt können natürlich beliebige Umweltfaktoren wie Magie, Schall oder eine andere Art Licht hinzukommen. Diese Umweltfaktoren beeinflussen sich gegenseitig und beeinflussen die Effektivität der Photosynthese, ein paar Beispiele aus der realen Welt sind: Die Menge an aufnehmbaren Kohlenstoffdioxid kann gedrosselt werden durch die Wassermenge bzw. die Luftfeuchtigkeit, die Temperatur beeinflusst die Photosyntheserate. Wenn man beliebige Kombinationen von beliebig vielen verschiedenen Umweltfaktoren zulassen möchte, stellen sich vor allem zwei Probleme:
1. In welcher Reihenfolge können die Umweltfaktoren ausgewertet werden? Im obigen Beispiel sollte die Wassermenge berechnet werden, bevor die Kohlenstoffdioxidmenge berechnet wird, da dieses Ergebnis von der aufgenommenen Wassermenge abhängt.
2. Wie bildet man alle möglichen Beeinflussungsarten wie “beeinflusst die Photosyntheserate” oder “setzt eine obere Grenze” ab?

Wir beschäftigen uns zunächst (also in diesem Beitrag) mit der ersten Frage. Da theoretisch beliebige Kombinationen von a priori nicht bekannten Umweltfaktoren möglich sein sollen, kann dem Programm keine vorher festgelegte Reihenfolge vorgegeben werden. Wie soll eine solche Reihenfolge also festgelegt werden? Dazu zunächst ein wenig Graphentheorie [1], wirklich nur ein ganz wenig. Ein gerichteter Graph G = (V, E) besteht aus einer Menge von Knoten V und eine Menge von gerichteten Kanten E, wobei jede Kante definiert ist als ein geordnetes Paar von Knoten. Ein solcher gerichteter Graph ist kreisfrei, falls es keinen Weg gibt, der aus einem Knoten heraus und später wieder in ihn hinein führt. Wenn wir unsere Problemstellung nun übersetzen in die neu gelernten Begriffe, so ist jeder Umweltfaktor ein Knoten und immer, wenn ein Umweltfaktor einen anderen Umweltfaktor beeinflusst, zeichnen wir eine Kante vom Knoten des ersten Umweltfaktors zum Knoten des zweiten Umweltfaktors. Wenn in diesem Graph ein Kreis auftritt heißt das, dass sich die Umweltfaktoren ringförmig beeinflussen, also zum Beispiel wäre “Wassermenge beeinflusst Kohlenstoffdioxidmenge beeinflusst Magie beeinflusst Wassermenge” ein Kreis. Diesen Fall wollen wir ausschließen, da man sich in der Berechnung sonst ewig im Kreis drehen könnte. Wir haben nun also einen kreisfreien, gerichteten Graphen vorliegen. Ein solcher Graph ist topologisch sortiert, wenn man eine Reihenfolge der Knoten gefunden hat, in der für jede Kante der Endknoten weiter hinten in der Reihenfolge liegt als der Anfangsknoten. Wenn man eine solche topologische Sortierung der Umweltfaktoren hat und die Umweltfaktoren in dieser Reihenfolge auswertet, dann beeinflusst jeder Umweltfaktor nur Umweltfaktoren, die später ausgewertet werden -> perfekt :)

Ist man erst einmal zu dieser Erkenntnis gelangt, dann ist der Rest kein Hexenwerk mehr – ein Algorithmus zum topologischen Sortieren von Graphen ist schnell gefunden. Man startet mit einer leeren Liste bereits sortierter Knoten und sucht in jeder Iteration im Graphen nach Knoten ohne eingehende Kanten, nimmt diese ans Ende der Liste bereits sortierter Knoten auf und entfernt den Knoten und alle ausgehenden Kanten aus dem Graphen. Am Ende ist der Graph leer und die Knoten sind topologisch sortiert. In der so ermittelten Reihenfolge werden die Umweltfaktoren dann vom Programm ausgewertet. Das obige Beispiel hat als eine mögliche topologische Sortierung Wasser -> Temperatur -> Luftfeuchtigkeit ->Kohlenstoffdioxid -> Licht.

[1] Algorithmische Graphentheorie, Volker Turau, Oldenbourg Verlag, 3. Auflage, 2009

Posted in Code-O-Matic, Theory-O-Matic. Tagged with , , .

Mein erster Baum :)

Baum mit erster Textur

Baum mit erster Textur

Ich.. brauche mal richtige Texturen.. Aber das gehe ich später an.. Morgen oder so :) Für jetzt bin ich glücklich, weil der generierte Baum mit einer.. *ein Adjektiv such*.. schönen? :P in Paint erstellten Sprite Texture dasteht :) How-To zum Erstellen und Texturieren von Objekten in Blender via Python Skript folgt :)

Posted in Code-O-Matic, Graphic-O-Matic. Tagged with , , , , .

Simulation der Flora

Ok, da die Veröffentlichung des ersten Videos bevorsteht ist es vielleicht an der Zeit, mal etwas zu einem Main Feature der ersten Demonstration zu erzählen: der Simulation der Umwelt. Alle Teile der Umwelt – also sowohl die nicht lebende Umwelt wie das Terrain (ist noch Zukunftsmusik) als auch Flora und Fauna – werden simuliert. Dadurch können sie sich dem Wirken der Spieler anpassen und bieten zu jeder Zeit ein realistisches Bild. In einem ersten großen Schritt haben wir uns mit der Simulation der Flora beschäftigt. Diese Simulation besteht grundlegend aus zwei Schritten:

  1. Simulation des Wachstumspotentials der Pflanze – hier wird berechnet, wie viel Energie die Pflanze zur Verfügung hat (durch Auswertung einer erweiterbaren Liste an Umweltfaktoren wie Licht, Wasser, …) und wie viel Energie davon sie jeweils in Wachstum, Fortpflanzung und Reserve steckt. Auch negative Einflüsse wie zu hohe oder zu niedrige Temperatur werden berücksichtigt und können – wie auch unzureichende Energie, um die Erhaltungskosten abzudecken – auch zum Tod der Pflanze oder zum Absterben von Teilen der Pflanze führen.
  2. Generierung der Morphologie der Pflanze – abhängig von der Pflanzenart, dem bisherigen Wuchs der Pflanze und der verfügbaren Energie wird der Wuchs der Pflanze bestimmt. Diese Information wird sowohl genutzt, um in der Engine dann ein entsprechendes Modell anzuzeigen als auch um in der nächsten Iteration die Aufnahme der Umweltfaktoren zu berechnen.

Da wir noch nicht entschieden haben, was unsere Pflanzen nachher alles können sollen (Magie aufnehmen / ausstrahlen? So groß werden, dass man Städte drauf bauen kann? Wahrscheinlich nicht, aber man will ja vorbereitet sein :P), ist das ganze Programm extrem flexibel gehalten. Momentan möchte ich gar nicht viel mehr dazu sagen, werde aber wohl zu einem späteren Zeitpunkt interessante Stellen ausführlich beschreiben :)

Posted in Code-O-Matic. Tagged with , .

Pflanzen so gut wie wahr..

Soo.. Das erste Feature, das wir euch vorstellen wollen, ist die Simulation der Umwelt, genauer gesagt zunächst die Simulation der Flora. Zwei Punkte sind mir bezüglich der Flora in Computerspielen oft negativ aufgefallen:

  • Die Flora ist statisch. Man kann mit den Pflanzen nicht interagieren und wenn man das kann, dann nur ausgewählt mit einzelnen Pflanzen und nur bestimmte Aktionen. Die Pflanzen wachsen auch nicht, Wälder ändern sich nicht. Wenn man Bäume fällen kann, dann sind es bestimmte Bäume, die dann als “Ressource” auch genau an diesem Spawnpunkt wieder nachwachsen.
  • Viele Ökosysteme, die man in Spielen sieht, sehen sehr steril aus. In einem echten Wald wachsen Bäume in den Kronen zusammen, zu ihren Wurzeln wachsen an Lichtungen Sträucher, ansonsten Kräuter. Bei kleineren Pflanzen wachsen die Pflanzen ineinander, durcheinander.

Gesucht war also eine Flora, die nicht vorher von uns festgelegt wird, sondern.. naja, einfach wächst. Und mit der im Spiel auch interagiert werden kann, die sich im Spiel auch verändert. Und damit verbunden Pflanzenmodells, die auch durcheinander wachsen können und je nach Umwelteinflüssen anders wachsen. Soweit der Plan.. :)

Posted in Inspiration-O-Matic. Tagged with .