Eine Kettenaufgabe

26 Aug.

Am Anfang war eine Tür

Weil sich der Spieler auf einem Raumschiff aufhält werden auch Türen und Fahrstühle benötigt. Also habe ich in Blender fix einen Fahrstuhl gezimmert, nach UE importiert und mit Nudelcode versehen, so dass der Fahrstuhl hochfährt, verweilt und wieder nach unten fährt. Also nichts besonderes.
Da ich dieses Mal meinem Motto treu bleibe, mich nicht beim Modeln in Details zu verlieren, mache ich einfache Platzhaltergrafik.

Bei der Tür dachte ich mir, komm, die machst’e etwas hübscher. Also über Pinterest Ideen gesammelt und mich zügig für eine Tür entschieden. In Blender nachgebaut, UVs gemacht und ab nach UE. Cool, läuft wie geschmiert. Die Türblätter sind einfache Rechtecke, haben aber zumindest einen Bevel bekommen. Daraus wieder einen Actor gebastelt und nun geht die Tür auf, wartet 3 Sekunden und geht wieder zu. Bis dahin lief alles super und ich war im Flow.

Dann kamen … ID-Cards

Dann kam ich auf die Idee ID-Karten einzubauen. Irgendwie gehören für mich ID-Karten zu einem Raumschiff. Außerdem macht es das Spiel wieder etwas interessanter, wenn man nicht sofort über all hin kann.
So ein System dürfte auch keine große Sache sein, dachte ich mir und legte los.

In Blender habe ich mir wieder eine Platzhaltergrafik erstellt. Obwohl ich mich nicht in Details verlieren wollte, gehören für mich auf so eine Karte auch das Gesicht vom Karteninhaber.
Fotografieren wollte ich nicht, zum Zeichnen habe ich kein Talent und so habe ich BlueWillow ausprobiert und mir ein paar Bilder von Spaceheroes machen lassen. Die Ergebnisse waren absolut brauchbar.

OK, Textur fertig, ab nach UE, ein Material erstellt und der Karte zugewiesen. Anschließend habe ich den Nudelcode angepasst. Und schon wieder ein Erfolgserlebnis. Tür bleibt verschlossen wenn man keine Karte hat und öffnet sich wenn man sie vorher aufgenommen hat.

jetzt kommt Farbe ins Spiel

Ich war begeistert wie gut alles bis zu diesem Punkt geklappt hat. Kurz darauf überlegte ich mir, dass es ein mehrfarbiges System sein müsse. Zudem wurde mir bewusst, dass die Textur der ID-Karte eine Auflösung von
1024 x 1024 hatte. Wenn ich 4 Farben umsetzen wollte, dann ist das die reinste Verschwendung für ein Handyspiel.

4 UV Maps nach UE

Also wieder zurück zu Blender, die UVs der ID-Karte um 0,5 verkleinert und links unten in die Ecke geschoben. Insgesamt habe ich mir 3 weitere Kopien der UV-.Map erzeugt links oben, rechts oben und rechts unten platziert. Das neue Modell mit den 4 UV-Maps nach UE exportiert und kontrolliert ob alle UV-Channels den Import „überlebt“ haben. Dem war auch so. Ich war guter Dinge, weil bislang alles wie am Schnürchen lief.

denkst’e

Doch hier endete meine Glückssträne.

Mein Ziel war es einen Actor zu machen, das Mesh der ID-Karte zuzuweisen und über eine Variable im Eigenschaftenfenster den Farbcode der Karte zu steuern. Ich dachte, wenn ich nur lange genug suche finde ich ein Tutorial, mit den Blueprints die ich brauche.
Um es abzukürzen, ich habe einige Abende lange gesucht und nichts gefunden, um per Blueprint im Material die UV-Channels zu verändert. Meine Recherche führte mich dann zu den „Material Instances“. Nach längeren hin und her und viel herumprobieren habe ich es geschafft.
Die Lösung setzt sich aus einem Material, dynamic Branch die man leicht über Scalar-Parameter steuern kann zusammen. Hier ein paar Bilder, die die Lösung skizzieren.

Elegant ist anders

Die Umsetzung ist in meinen Augen nicht elegant. In meinen Augen hätte es etwas geben müssen das ich die UVs direkt beeinflussen kann. Von einem Experten der Unreal Engine bin ich noch extrem weit entfernt, aber ich glaube, dass es keine andere Lösung gibt und es sicherlich technische Gründe gibt warum es nicht direkt geht.

Mein Ziel habe ich am Ende erreicht und es macht mir Spaß Türen im Editor zu setzen, ID-Karten zu verteilen, die Farben zu setzen und alles Funktioniert wie gewünscht.

Meine Meinung zu AI-Tools in meinem Projekt

21 Aug.

Ich sage Nein

Ausgelöst durch Chatgpt vor einigen Monaten, schießen diese Tools wie Pilze aus dem Boden. Ich frage mich immer, wie es auf einmal zu dieser Flut an Tools gekommen ist. Zuerst hat es sie nie gegeben und als ob es einen Startschuss gegeben hätte, sind sie so zahlreich geworden als wäre es jetzt ein leichtes so etwas zu programmieren.
Auch wenn diese Materie für mich äußerst interessant ist, habe ich mich nicht näher damit beschäftigt. Ich kann mir nur vorstellen, dass viele dieser Tools auf anderen Aufsetzen, quasi nur ihren Namen drauf „beppen“.

In den vergangenen Monaten habe ich mich ein wenig, mit den gebräuchlichsten Tools befasst. Von Midjourney war ich natürlich sehr beeindruckt, was damit an Bildern erzeugt werden kann. Ganz kostenfrei ist die Nutzung leider nicht, und so habe ich mich nicht weiter damit beschäftigt.

Ich habe an mich den Anspruch alles in meinem Spiel selber zu erstellen. Geht auch nicht anders, weil es in meinem Freundes- und Bekanntenkreis an Verrückten wie mich mangelt.

Ich sage Ja …

Es ist tatsächlich so, dass die Ideen aus mir nur so heraussprudeln. In OneNote erfasse ich alle Ideen. Auf diese Weise vergesse ich nichts und kann auch Ideen ausfiltern, die nicht so gut sind. Inzwischen hatte ich die Idee, dass einige der Türen sich nur durch eine ID-Karte öffnen lassen. Daher habe ich mir fix wieder eine Platzhaltergrafik erstellt, nach UE exportiert und die Logik verdrahtet.
In Blender kam mir in den Sinn es doch noch etwas aufzuhübschen. Zu jeder ID-Karte gehört auch ein Bild des Besitzers der Karte. Allerdings bin ich In Sachen Zeichnen unterirdisch und so kam ich auf die Idee ein AI-Tool mit der Erstellung von Raumschiffhelden zu bemühen.

… ja, aber

Schlussendlich habe ich mir von dem Tool Bluewillow einen Satz an Weltraumhelden erschaffen lassen. Diese nutze ich im Augenblick auf meinen ID-Karten.
Also, ich habe eingesehen, dass diese Tools, gerade für Einzelkämpfer, sehr hilfreich sein können, aber ich werde alle Bilder und Grafiken kennzeichnen, die von einem AI-Tool erstellt worden sind.

Im Abspann eines Filmes tauchen schließlich auch alle beteiligten auf, die an dem Film gearbeitet haben und ich möchte mich nicht mit fremden Federn schmücken. Am Ende des Spiels bleibt noch genug Platz für mein Ego.

Gamepad Steuerung | XBOX-Controller

19 Aug.

Umsetzung der Steuerung

Jedes Spiel benötigt, dann und wann die Eingabe des menschlichen Spielers, der in die Welt eingreift. Am PC kann es die Maus in Kombination mit der Tastatur sein oder man schließt sich sein Gamepad an. Am Handy wird das Gamepad simuliert in dem links und rechts kleine „Steuerungssticks“ eingeblendet. Wenn man Rennspiele oder einfach mal Brawlstars ausprobiert hat, der merkt, dass diese Art der Steuerung unvorteilhaft ist. Auf die „Sticks“ werde ich nicht verzichten, wollte aber mal ausprobieren ob ich einen Gamepad in das Spiel integrieren kann.

Dafür habe ich erst einmal einen Wireless Adapter bestellt, den ich bei Amazon abends um 19:00 Uhr geordert und am kommenden Tag geliefert bekommen habe. Der PC hat ihn stillschweigend erkannt und ich habe meinen Controller problemlos pairen können.

Unreal Engine Gamepad auf PC

Mit wenigen Tests hatte ich raus, wie ich den linken und den rechten analogen Stick ausgelesen bekomme und habe, weil´s Spaß macht auch gleich zwei Button eingebaut. Ein prima Erfolgserlebnis. Innerhalb eines abends hatte ich alles hinbekommen.

Allerdings…

Die Sticks geben analoge Float-Werte zwischen -1.0 bis 1.0 aus, die in die Bewegung des Charakters übersetzt werden. Wenn der Stick jedoch in der neutralen Stellung verbleibt liefert der Input immer noch Werte ungleich 0.0 was dazu führt, dass man immer leicht „slidet“. Im Augenblick behelfe ich mir damit, erst dann die Werte an den Charakter zu geben, wenn der Wert außerhalb von -0.025 und 0.025 liegt.
Mal gucken ob mir noch etwas besseres einfällt.

Neuanfang | was ist passiert | Startschuss

17 Aug.

Neuanfang

Warum Neuanfang wenn noch nicht einmal das erste Projekt fertiggestellt ist? Wenn man als Einzelgänger ein Spiel umsetzen möchte, dann ist das ein großer Schritt. Das Vorhaben darf man nicht unterschätzen. Mir war damals schon bewusst, dass es eine Menge Zeit braucht, so etwas umzusetzen. Trotzdem überwog in der Vergangenheit der Alltag den man nicht einfach ignorieren kann.
Meiner Ansicht nach kann ich nun einen Neuanfang machen. Warum?

was ist passiert

Privat ist natürlich eine menge Passiert. Auch wenn es nicht viel ruhiger geworden ist, ist es jetzt besser handelbar.
Zugegebener Maßen habe ich mein Projekt tatsächlich abgeschrieben und geistig an den Nagel gehängt. Später jedoch merkte ich, dass der Wunsch in mir, ein Spiel zu machen wieder lauter wurde.

Wieder etwas späte entwickelte ich eine neue Idee für das Spiel, was noch einmal stimmiger anfühlte.

Startschuss | Google Entwicklerkonto

Für mich war der endgültige Startschuss für die Entwicklung des Spiels, dass ich mir nun endlich ein Entwicklerkonto bei Google erstellt habe. Prinzipiell ist das nichts schwieriges, jedoch habe ich keinen anderen Weg gefunden die Entwicklergebühr zu bezahlen als über eine Kreditkarte. Ich habe immer versucht, das Geld über PayPal zu überweisen, aber das klappte nicht. Auch über den Google-Support kam ich nicht weiter.
Irgendwann habe ich die Gebühr über eine Kreditkarte bezahlt und musste mich im Anschluss Ausweisen (Mein Ausweis war zu dem Zeitpunkt nur noch wenige Wochen gültig). Zum Glück war ich bereits am nächsten von Google freigegeben.

Fleißarbeit Dokumentation

Von nun an bin ich wieder fleißig dabei meine Notizen für das neue Spiel zu überarbeiten und anzupassen. Vor allem halte ich mich an meine Vorgaben. Die Hauptvorgabe ist, egal welche 3D Objekte ich erstelle, sie sollen Stellvertretercharakter haben und auch erst einmal behalten. Bislang habe ich, teils unbemerkt, immer wieder sehr viel Detailarbeit in die Objekte einfließen lassen und das hielt auf.

Jetzt mache ich eine Tür mit zwei Rechtecken und fertig. Dann ab in UE. In eine Blueprint wird das schnell zu einem Objekt, das ich im Level platzieren kann und inzwischen geht die Tür auf und nach einer kurzen Wartezeit auch wieder zu. Ab zum nächsten Teilstück.

So geht es weiter.

Was tun wenn Deine Daten weg sind

25 Sep.

Meine persönliche Lösung

Jetzt habe ich mir so ein ambitioniertes Ziel gesetzt und arbeite über sehr viele Stunden, Tage… an meiner Idee, an den 3D-Objekten… Und auf einmal passiert etwas dummes und deine Arbeit ist plötzlich für immer weg. Zum gegenwärtigen Stand wäre das zwar noch nicht sehr viel, aber die ganze Energie und Freude mit ich die Sachen erstellt habe, .. verpufft.
Wie ein „Schlag in die Magengrube“.

Zum Glück ist mir das nicht passiert. Aufgrund der Vorbereitungen, die ich getroffen habe, sollte es auch nicht so schnell passieren. Denn ich hasse nichts so sehr wie, das, was ich einmal geschaffen habe noch einmal zu machen.

Also, warum bin ich mir so sicher, dass mir dieses Schicksal erspart bleibt.

  1. Wir haben uns schon vor einigen Jahren ein NAS von Synology geholt, aber lange Zeit unangeschlossen in der Ecke stehen gehabt. Diese habe ich wieder an den Start gebracht. Von Synoloy gibt es ein Tool (Drive Client), mit dem man seine zuvor konfigurierten Ordner auf den Rechner Synchron zu der Sicherung auf dem NAS hält.
    Also, jedes Mal, wenn ich ein Blend-File, oder eine Textur speichere wird es gleich im Anschluss auf mein Hausinternes NAS gesichert.
  2. Man kann von den Großen Tech-Firmen halten was man will, aber die kostenfreien Angebote sind doch schon ok. Von den diversen Anbietern habe ich mich mit Google angefreundet. Ein Account angelegt und die ersten 15 GB stehen einem kostenfrei zu Verfügung. Den Account habe ich schon seit Jahren und es ist noch jede Menge Platz. Auch von Google gibt es ein kleines Tool mit dem die Ordner bestimmt werden können, die automatisch in der Cloud synchronisiert werden.

Also, wann immer ich eine neue Fassung von meinen 3D-Modellen speichere, geht gleiche eine Kopie aufs hausinterne NAS und eine zweite Sicherung geht irgendwo auf der Welt in die Wolke.
Aus diesem Grund bin ich vor Datenverlust gesichert.

Ok, zwei Sachen zum Schluss:
Sicherlich ist eine der beiden Methoden völlig ausreichend vor Datenverlust zu schützen. Ich habe es gemacht weil wir die Sachen bereits hatten und wir sie so wieder nutzen können. Unsere Kinder haben jetzt auch einen Bereich auf der Synology und können ebenfalls dort Ihre Sachen ablegen.

Weil es hier gerade bei uns in Deutschland Thema bei Gericht gewesen ist. In diesem Artikel habe ich lediglich meine Lösung für die Datensicherung beschrieben. Dieser Artikel ist nicht als Werbung zu für eine bestimmte Firma zu verstehen. Weder für Synology noch für Google. Auch habe ich von keiner der beiden Firmen für diese private Meinung Geld erhalten..

Es führt kein Weg daran vorbei

14 Sep.

Blender und Normal-Maps

An sich halte ich Normal-Maps für eine spannende Sache. Als ich damals noch als 3D-Grafiker gearbeitet habe, kam der zweite von Half-Life raus. Ich kann mich daran noch erinnern, dass man eine Wand gezeigt hat, die aus vielen schiefen und verschobenen Platten bestanden hat und es hieß, sie besteht aus 20.000 Polygonen. Für damalige Verhältnisse ist das schon eine Menge.

Etwas später, als wir uns mit dem Thema weiter beschäftigt haben, fanden wir heraus, dass es sich um Normal-Maps gehandelt hat. Kurz gesagt ist es eine Methode die den Detailreichtum eines komplexen Meshes in eine besondere Textur abspeichert. Daraufhin kann man die Texture mit den Details nehmen und auf ein Mesh legen, dass nur noch über einen Bruchteil der komplexen Geometry verfügt als das Original.

Bislang habe ich schon eine Menge über Normal-Maps gelesen und auch tutorials gesehen, ich hatte jedoch nie etwas gehabt um es auch anzuwenden.

OK, das hat sich nun geändert. In Mobile Games machen Normal-Maps Sinn und ich werde mich damit nun verstärkt auseinandersetzen und Euch an meinen Fortschritten teilhaben lassen. Auch wenn das Thema schon lange kein Geheimnis mehr ist und es tonnenweise darüber im Internet zu lesen gibt, letztlich muss man seine Erfahrungen damit selber machen.

Ideen unter der Dusche

05 Sep.

Das Phänomen ist Euch sicherlich bekannt. Ihr steht unter der Dusche und so wie die Tropfen auf Euch niederprasseln feuern die Ideen wie Funken aus dem Kopf.

Ja ich war Duschen und ich hatte wieder Ideen. Eine Idee beschäftigte sich mit der Bedienungsanleitung und Übersetzung. Ich weiß, dass die Unreal Engine Mehrsprachigkeit unterstützt. Technisch habe ich mich damit zwar noch nicht befasst, aber da mache ich mir keine Sorgen.

Ein anderes Thema betrifft die Spielanleitung. Wer liest schon gerne Spielanleitungen, und dann noch auf einem Handy. Zumindest gehöre ich nicht zu den Vertretern. Ich erlerne die Spiele lieber während des Spielens. Nichtsdestotrotz gehört zu jeder Software eine Anleitung. Zudem hilft es mir selber dabei das Spiel weiter zu planen und dabei auch die Features festzuhalten.

Also werde ich hier in der nächsten Woche eine Art Wiki anfangen, somit nimmt das Spiel weiter Gestalt an.

Mehrsprachigkeit

Auch diese Seite möchte ich in weiteren Sprachen (zumindest auf Englisch) verfügbar machen. Vielleicht bekomme ich das sogar kurzfristig hin.

Das Spiel möge beginnen.

03 Sep.

zumindest die Entwicklung davon

Der Startschuss

Der Startschuss ist gefallen und der Entschluss im Kopf gefasst. Von nun an begebe ich mich auf meine längste Reise. Ich werde tatsächlich ein Spiel entwickeln. Die Idee(n) sind über die letzten Monate gereift und ich bin inzwischen selber davon überzeugt.

In den vergangenen Monaten habe ich natürlich mit dem Projekt, wie viele andere, begonnen, jedoch mehr in dem Bewusstsein das ich es, wie viele andere auch, an den Nagel hänge, oder vielmehr es sich automatisch an den Nagel hängt weil ich es nicht mehr weiterführe.

Warum sollte es dieses Mal klappen?

OK. Wessen Kopf sprudelt nicht von Zeit zu Zeit vor Ideen über und ist schwer begeistert davon. Man setzt sich dran, arbeitet eine gewisse Zeit daran und allmählich werden die Abstände größer und größer. Dadurch, dass die Zeitabstände immer größer werden entsteht auch ein Abstand zu der Idee und endet Schlussendlich sie auf dem Berg „begonnene Projekte die nicht fertiggestellt werden“. – Warum ist es dieses Mal anders?

Nun es besteht immer noch die Gefahr, dass auch dieses Projekt im Sande verläuft und auf dem Berg „unfinished Projects“ landet. Aber in den letzten Wochen habe ich gemerkt, dass ich einiges anders mache. Und zwar unbemerkt. Damit meine ich, dass es auf einmal automatisch passiert ohne großes bewusstes Vorhaben.
Beispielsweise habe ich in OneNote begonnen meine Ideen aufzuschreiben. Die Ideen zu strukturieren und weitere Kategorien anzulegen. Eine Kategorie hatte mehr und mehr den Charakter eines Blogs. Nachdem mir das aufgefallen ist, habe ich meine alte Webseite aktiviert und lagere diesen Part hier aus.

Das erste Mal also schaffe ich mir einen Überblick über mein Vorhaben.
Über diese Herangehensweise, die sich unbewusst und selbstständig entwickelt hat, bin vor allem ich selbst verwundert. Es drückt eine Ernsthaftigkeit aus.

Aus diesem Grund bin ich der Meinung, dass es dieses Mal mit meinem Spiel etwas wird.

Lass die Entwicklung beginnen.