Eigentlich wollte ich nur eine zufallsgenerierte Sternenkarte erstellen, mit Clustern (Sternenhaufen), verschiedenen Planeten, Tilemaps auf den Planeten… Aber wie macht man so etwas? Meine Vorstellung lag bei so hunderten verschiedenen Planeten, die alle auch noch begehbar sein sollten. Man sollte mit einem Raumschiff in ein Sternensystem fliegen können und dort – ganz Starflight – auf den Planeten landen können. Man sollte die Oberfläche der Planeten schon vom Weltraum aus erkennen können, und die Planeten sollten alle einzigartig sein. Zufallsgeneriert eben.
Bei meinen Internet-Recherchen, auf der Suche nach brauchbaren Tutorials, bin ich irgendwann auf das Stichwort Perlin Noise gestoßen. Es ist ein Alogrithmus, oder eher ein Filter, der nun ja : Chaos verursacht. So mancher kennt bestimmt den Wolken-Effekt von Photoshop. So in etwa arbeitet der Perlin Noise-Filter. Mit ihm ist es möglich zufallsgenerierte Heightmaps zu erstellen.
Eine Heightmap ist eine Karte mit Pseudozufälligen Erhöhungen und Vertiefungen darauf, und zwar in SW.
Diese Erhöhungen kann man mit einem geeigneten Programm parsen und daraufhin seine Tiles verteilen.
Ich will auch gar nicht viel drum herum labern, jedenfalls habe ich zu meiner Freude festgestellt, dass es in der Flash-Entwicklungsumgebung eine Perlin-Noise-Methode gibt. Eigentlich eher zur Bildbearbeitung gedacht, taugt diese aber auch dazu, künstliche Welten zu erzeugen.
Ich habe heute ein bisschen damit herumgespielt und bin mit dem Ergebnis echt zufrieden. Jetzt kann ich endlich ein cooles Space-Spiel programmieren, oder es zumindest versuchen.
Entweder werde ich ein festes Universum erzeugen, und das Ergebnis in einer Datenbank speichern… So um die 1000 verschiedene Planeten mit zufallsgenerierten Namen, oder es wird immer bei jedem Spielbeginn ein neues Universum erstellt. Wie auch immer, Ideen habe ich, nur mit der Umsetzung hapert es meistens (ich träume von einer Art Galactic Civilziations 2 Spiel, mit Multiplayer. Mal sehen was ich wirklich daraus mache.)
Aber seht euch einfach mal das Sternensystem an. BTW ich bin kein Grafiker, mich interessiert eher dieses Zufalls-Zeugs. (Ruhig öfter mal den Browser aktualisieren für andere Ergebnisse.)
Perlin Nose, aha noch ein paar Keywords einbaue, SEO Haha!
Perlin Noise und Flash AS3 Actionscript, zufallsgeneriertes Sternensystem.
Achso ja der Link, den hätt ich ja fast vergessen…
Häng zuviel vorm PC!
Bye bye!
Ach ja, klickt ruhig auf die Planeten um das Surface zu sehen. Sieht zwar nicht besonders aus aber die Möglichkeiten sind faszinierend (Stichwort Tilemap).
das demo gefällt mir sehr gut!
ich finde es toll daß das surface per klick angezeigt wird.ich habe neulich mit der gimp-kugeldesignerfunktion rumgespielt um schaltflächen zu machen, die es einem sehr leicht macht, mit tollen algorithmen gemaserte kugeln oder planeten zu machen.
schöne galaxien habe ich vor ner woche hier
http://www.csi.uottawa.ca:4321/astronomy/index.html#catalogaboutstarsystems gefunden.
Ja, für Tilemaps-basierte Welten ist das sehr praktisch die Sache mit dem Surface. Aber ich versuche gerade die Landschaften realistischer zu gestalteten, weg von der 5×5 Pixelgrafik.
Dazu sollte man einen Erosions-Algorithmus einbauen, um natürlich wirkende Flüße, Seen, Berge, Täler etc. darzustellen…
Ich glaube das ist mir dann doch zuviel des Guten.
Pingback: 25 Fun and Time Saving PhotoShop Actions Tutorials | Onextra | Tutorialicious.info