Archiv der Kategorie: Computerspiele

Imp City r017


Vielleicht nicht genug Änderungen füe iene neue Version, aber mir gefiel der neue Sound-Efekt für arbeitende Conians so gut dass ich diese Version unbedingt veröffentlichen wollte:

Imp City r017

  • Fallende Nachrichten Icons schlagen jetzt mit einem „Ping“ auf
  • Conian haben eine eingebaute Flex für die Arbeit in der Schmiede
  • Imps sollten jetzt in der Lage sein auch Gegenstände aufzusammeln, die sehr nahe an Wänden liegen.
  • Verbesserte Darstellung des Mosnter-Auswahl Dialogs.
  • Powersnails pflanzen Setzlinge jetzt in einem runden statt einen rechteckigen Bereich (wirkt natürlicher, ist vielleicht noch nicht optimal)
  • Schatzkarten können nun auch Kryptas, Obelisken und Steinhügel als Ziele haben.

Windows + Linux (benötigt Java 7 oder neuer): https://drive.google.com/open?id=1O_63tv-dT4ZBhUHKcmQiVmKtvkiB9Fvc

Sources: https://drive.google.com/open?id=1Y3aBUj8sY6qzPTKjhzxwXDdiBO6zeY8q

Advertisements

Imp City r016


Es begann mit einem Jucken. So mehr die geistige Sorte. Es juckte mich, eine neue Schriftart für meine Projekte zu basteln. Als nächstes wollte ich das dann in Aktion sehen, und ich habe die Schrift in mein altes Imp City Projekt eingebaut. Und da ich schon mal dran war, dann gleich einige Bugs beseitigt, neue Sounds eingebaut und, und, und …

Um mächtigere Kreaturen anzulocken braucht man als Lord der Finsternis zuerst mal eine gute Menge an Gold und Schätzen. Hier entstehen gerade neue Münzen. Der Imp, der da am Kupfererz hackt ist leider kaum zu sehen, nur die Info-Bubble mit dem Hammer ragt ein wenig über das Erz hinaus.

Imp City r016 Vorschau
Imp City r016 Vorschau

Die Texte links unten im Bild habe ich dann auch noch etwas korrigiert, und die Raubzüge auf die Oberwelt funktionieren jetzt zumindest bis zu dem Punkt an dem eine Gruppe von Kreaturen zusammengestellt und auf die Reise geschickt wird. Ob sie zurückkommen? Ich glaube da muss ich noch mal am Programmcode feilen, das scheint im Moment kaputt zu sein. Und manchmal legen die Schmiede neue Münzen zu nah an der Wand ab, so dass die rundlichen Imps da nicht herankommen. Der Code scheint korrekt zu sein, im Moment rätsele ich noch über die Ursache.

Wer Java 7 oder neuer installiert hat, kann die neue Version auch ausprobieren:

https://drive.google.com/open?id=17M4dthiX4ltc0ZNS688I9wdpAyzpitxN

Den Quellcode gibt es hier, unter der GPL v2:

https://drive.google.com/open?id=1_bKvcevuCL17mmVtoYSLqHeojaO892JH

Sourceforge möchte ich nicht mehr benutzen, und bis ich mich für eine neue Projektheimat entschieden habe, gibt es die Dateien als Download von meinem Google-Drive.

Eine (etwas veraltete) Anleitung ist hier zu finden:

https://gedankenweber.wordpress.com/imp-city-underground-creature-keeping/

Schriftsatz


Ich habe eine schöne Schrifttype gefunden ( https://www.1001fonts.com/humanistic-font.html ) die mich inspiriert hat, wieder mal etwas an einem alten Projekt zu arbeiten.

Schriftsatz
Schriftsatz

Im Original fehlten einige Lettern, die ich hinzugefügt habe, und ich muss noch etwas an der Kantenglättung und der Abständen der Lettern arbeiten, aber ich glaube, ich habe jetzt die richtige Schriftart für das Projekt gefunden.

Fraktale Blitze


Nachdem mein Texturgenerator auch Fraktale erzeugen konnte, lag es nahe, daraus eine Grafik für ein Spieleprojekt zu basteln. Blitzzauber hatten es mir immer schon angetan, und auch für technische Objekte machen sich Blitze immer wieder gut. Also machte ich mich an die Arbeit, um aus einem passenden Ausschnitt der Mandelbrotmenge einen Blitz zu machen:

Fraktaler Blitz
Fraktaler Blitz

Es fehlt zwar etwas am 3D-Eindruck, aber in einigen Montagen mit älteren Screenshots meines „Juwelensuche“-Projektes wirkt der Blitz doch recht schön:

Bildmontagen als Beispiele
Bildmontagen als Beispiele

Den Blitz zu animieren habe ich noch nicht versucht, aber ich denke, man kann über Skalierung und Spiegelung eine Sequenz basteln, die als Animation ausreichend gut wirkt. Das Auge ist sowieso zu träge, um die Details eines sekundenschnellen Blitzzaubers aufzulösen. D.h. die Animation muss vor allem den Eindruck „Es bewegt sich etwas“ bewirken, die Details wie es sich bewegt sind in dem Fall nicht ganz so wichtig.

Die Blitzgrafik in höherer Auflösung und einige Montagen habe ich als Creative Commons auf opengameart.org veröffentlicht:

https://opengameart.org/content/lightning-effect-0

Nahtlos wiederholbare Texturen aus 4D Rauschen


Unlängst schrieb ich noch, dass ich nicht weiß, wie man nahtlos wiederholbare Texturen aus Simplex Noise erzeugen kann. Versuche per Modulo-Operator zu wiederholbaren Mustern zu kommen schlugen fehl. Ich denke trotzdem, dass es per Modulo gehen müsste, aber mir fehlt das Verständnis für die „Innereien“ der Simplex Noise, um den Eingriff richtig durchzuführen.

Bei einer Recherche nach hilfreichen Informationen bin ich dann auf diesen Artikel gestoßen:

https://www.gamedev.net/blogs/entry/2138456-seamless-noise/

Die Idee mit dem 3D Torus hatte ich auch schon, aber aus eben dem Grund verworfen, den der Autor des Artikels auch nennt – es gibt Verzerrungen im Muster, weil der innere Radius des Torus kleiner ist als der äußere und die abgerollte Fläche streng genommen kein Rechteck ist, bzw. wenn man sie auf ein Rechteck abbildet, dann wird das Muster auf der Fläche verzerrt.

Was ich nicht wusste, ist, dass man den Torus-Trick auch in vier Dimensionen machen kann, und dass sich die Einbettung zweier Kreisbewegungen in vier Dimensionen verzerrungsfrei auf ein Rechteck abbilden lässt.

Nahtlos wiederholbares Muster
Nahtlos wiederholbares Muster

Der Nachteil ist, dass die Berechnung der Simplex Noise in vier Dimensionen deutlich langsamer ist als in zwei Dimensionen. Aber zumindest habe ich jetzt eine Möglichkeit, nahtlos wiederholbare Texturen zu errechnen.

Wiederholung 2x2
Wiederholung 2×2

Da fragen die Leute immer, wozu im Leben man so viel Mathe braucht – also wenn man mit prozeduraler  Computergrafik arbeitet, dann beantwortet sich die Frage von selbst. Und selbst wenn ich viel Mathe im Studium gelernt habe, es war immer noch nicht genug für diese Art von Anwendungen. Sonst könnte ich jetzt die Simplex Noise auch Modulo rechnen und müsste nicht über den 4D Trick gehen, der sich mir auch nur ungefähr erschliesst – auch wenn ich die Abwicklung eines 3D Torus auf eine 2D Fläche mathematisch gerade noch so hinbekommen hätte, in 4D hätte ich das ohne die Hilfe des Artikels nicht geschafft, besser gesagt, ich hätte mir nicht mal vorstellen können, dass es für 4D eine analoge und verzerrungsfreie Abwicklung gibt.

 

 

Landschaftsgenerator zu Texturgenerator


Schon beim Entwurf der ersten Fassung meines Landschaftsgenerators schwang die Idee mit, nicht nur Höhenprofile sondern auch andere Sorten von Texturen zu erzeugen. Naheliegend war, die Simplex-Noise Funktion auch für die klassischen Wolkenstrukturen zu verwenden:

Wolkentextur
Wolkentextur

Weitere Ideen sind Gesteinssorten wie Granit oder Marmor, die sich per Simplex-Noise ebenfalls relativ leicht erzeugen lassen. Dazu kämen noch Holz und Zwiebelstrukturen.

Unverhältnismässig aufwändig war die Programmierung des Farbgradienten-Einstellers. Aber das ist jetzt geschafft, und man kann Farbgradienten als lineare Interpolation durch eine beliebige Anzahl von Stützpunkten festlegen. Schöner wäre vermutlich eine kubische Interpolation, aber im Moment bin ich froh, dass es überhaupt funktioniert.

Was ich noch nicht herausgefunden habe ist es, wie man Simplex-Noise modulo der Texturgröße berechnen kann, um Muster zu erzeugen, deren linke Seite nahtlos and die rechte passt, ebenso die obere an die untere Seite, damit man nahtlose Kachelmuster erstellen kann.