Bubble Physics Devlog #1

Hallo,
Ich habe lange nichts mehr geschrieben, also habt ihr natürlich ein bisschen etwas verpasst. Mittlerweile habe ich so einige Updates zu Bubble Phyiscs gemacht und es gibt nun sogar eine PC Version! Dar ich momentan große Probleme mit der Performance der Mobile-Version habe, ist die PC-Version viel neuer und hat 1 Map mehr. Solltet ihr Bubble Physics auf dem PC ausprobieren wollen, habe ich hier den Link zu meiner itch.io Seite. Itch.io ist eine Platform, auf der Spieleentwickler ihre Arbeit veröffentlichen können.

Ein Game in 2½ Stunden

Hallo Leute,
Vor drei Tagen habe ich versucht mit Unity ein Mobile-Spiel in 2 ½ Stunden zu entwickeln. Vorher hatte ich mir schon ein simples Spielkonzept überlegt.Der Spieler sollte mit einem Joystick eine langgezogene Kugel steuern. Mit dem anderen Joystick sollte er die Kugel und damit den an ihr befestigten Gewehrlauf( nur ein Zylinder ) drehen können. Außerdem sollte der Gewehrlauf kleine Kugeln schießen, wenn man den 2. Joystick benutzt.

Zuerst schrieb ich ein simples Movement-Script für den ersten Joystick. Für die Joysticks benutzte ich Joystick-Pack aus dem Unity-Assetstore. Dann erstellte ich das das Drehen bzw. Schießen des Spielers. Das war dann schon schwieriger. Vom Joystick-Pack habe ich die Daten als Richtungsvektor und Horizontale bzw. Vertikale Achse. Ich musste erst mal ein bisschen herumsuchen wie ich einen Richtungsvektor als Rotation für ein Objekt angebe. Schließlich schaffte ich es aber mit Quaternion.LookRotation.

Dann fragte ich danach ab, ob der Vektor nicht 0 beträgt und instanziere wenn ja eine kleine Kugel (mit Rigidbody-Komponente) am Lauf der Waffe und gebe ihr einen Schub nach vorn.

Die Kraftausübung hat leider irgendwie nicht funktioniert. Deshalb fallen die Kugeln einfach auf den Boden oder prallen aufeinander und erhalten dadurch eine leichte Kraft in beliebige Richtung.

Nun brauchte ich noch eine Map. Ich modellierte sie in Blender, indem ich einen Würfel nahm, seine Faces extrudierte, LoopCuts setzte und die neu entstandenen Faces wieder extrudierte. Dadurch entstand eine Art sehr offenen Labyrinth. Dann noch eine Fläche als Boden darunter und fertig.

Ich importierte die Map in Blender und ließ ein NavMesh erstellen. Dann nahm ich mir einen Zylinder und bereitete ihn als NavMeshAgent vor. Ich schrieb ein Script, das den Gegner einfach immer dem Spieler hinterherlaufen ließ.

Nun blieben mir noch 20 Minuten, inden ich das Sterben der Gegner und des Spielers sowie das Spawnen der Gegner entwickeln musste.

Zuerst schrieb ich ein Script, dass überprüft, ob ein Gegner den Spieler berührt. Wenn das der Fall ist, wird ein GameOverScreen angezeigt, auf dem der Spieler das Spiel neustarten kann.

Dann war das Spawnerscript an der Reihe. Dieses sollte auf leeren Objekten in der Szene arbeiten und alle 15 Sekunden einen Gegner instanzieren. Dabei wird nach jedem Spawn die Zekt bis zum nächsten Spawnen um eine Sekunde verkürzt. Später hatte ich das Problem, dass der original Gegner wenn vom Spieler beseitigt wurde, nicht mehr instanziert werden konnte. Dafür hätte man sicherlich eine schöne Lösung finden können ( zBs. mit Prefabs) aber dar ich unter Zeitdruck war erstellte ich einfach einen Würfel unter der Map und Stellte das Original darauf. Nach einer Weile kam das Problem wieder, weil scheinbar ein paar Kugeln durch den Boden rutschen. Also setzte ich noch einen Würfel über das Original und das Problem war gelöst. Dar ich es in 2 ½ Stunden nicht mehr geschafft habe den Spieler anzufangen, wenn er von der Map fällt, kann man das Original unter der Map immer noch sehen, wenn man herunter fällt.

Das Sterben der Gegner war eine schwierige Angelegenheit, denn ich musste überprüfen ob irgendeine Kugel mit irgendeinem Gegner kollidiert. Dafür müsste ich eigentlich eine Liste mit allen Kugeln oder mit allen Gegnern machen. Ich stand aber unter starkem Zeitdruck. Ich 3Minuten würde ich das nie schaffen. Dann fiel mir auf, dass alle instanzierten Kugeln Bullet Clone heißen. Ich fügte dem Gegnerscript das eine Methode hinzu, die alle Kollisionen durchgeht und guckt, ob der Name des kollidierenden Objekts Bullet enthält. Wenn ja zerstört sich der Gegner selbst.

Leider funktionierte die Selbstzerstörung nicht. Unity Objekten liegt scheinbar nicht viel am Tod. Ich löste das Problem, indem ich im Bulletscript abfragte, ob ein Objekt berührt wird, das Enemy im Namen trägt und gegebenenfalls auch die Zerstörung des Gegners übernimmt.

Endlich wieder Visual Studio

Hallo Leute,
Vor Monaten habe ich ja begonnen mit Visual-Basic zu programmieren. In letzter Zeit habe ich zu VB allerdings nichts mehr veröffentlicht. Das lag daran, dass Visual Studio mir erklärte, dass mein 30Tage Testzugang nun vorbei ware und ich ab nun ein Microsoft Konto brauche. Ich habe mich dann dazu entschieden KEIN Microsoft Konto anzulegen ( Aus Datenschutzgründen ) Das war eine schwere Entscheidung, da Visual Studio mit seinem ganzen Unter-Die-Arme-Greifen unglaublich praktisch ist. Somit hatte ich lange keinen Kontakt mit Visual-Studio.

Im Sommer bin ich auf das Gymnasium gekommen. Dieses Gymnasium nutzt Microsoft 365 für alle Schüler und Lehrer. Grundsätzlich ist das extrem praktisch, dar somit jeder an jedem Smartboard oder PC seine Daten abrufen kann.

Nun habe ich einfach mal probiert mich in Visual Studio mit meinem Schullkonto einzuloggen. Es hat funktioniert! Wow, was für eine Erleichterung. Nebenbei habe ich jetzt auch noch den perfekten Code-Editor für Unity.

Mit VB werde ich wahrscheinlich trotzdem nichts mehr machen, weil ich jetzt einfach aus der Übung bin und mit C# viel besser umgehen kann.

Unnoticed Devlog #1

Hallo Leute,
Ich habe mir gedacht, ich könnte doch Devlogs zu meinem Projekt Unnoticed schreiben. Hier ist der Beginn dieser Serie.

Nachdem ich hier die erste Version veröffentlicht habe, dachte ich, dass ich das Spiel nochmal neu aufsetzte. Ich wollte mehrere Level haben, die alle in eine Open World implementiert sind.

Vor zwei Tagen habe ich mit dem Unity-Asset MapMagic2 herumgespielt. Ich merkte aber schnell, das die dabei entstandenen Maps zu realistisch waren. Erstens hatte mein PC Probleme damit und zweitens müsste ich dann auch die Gebäude in realistisch designen, wozu ich wahrscheinlich nicht in der Lage wäre.

„Unnoticed Devlog #1“ weiterlesen