Unity, DeltaTime, FixedTimestamp und wie man sich selbst reinlegt

Viel zu lange sass ich jetzt an einem Problem, dass ich gerne mit euch teilen möchte. Es geht wieder um das „SpaceshipInTrouble“-Projekt, genauer gesagt um die Steuerung des kleinen Raumschiffes. Hierzu habe ich zwei „analoge Joysticks“ eingebaut (die Knöpfe links und rechts auf dem Screenie). Über den linken steuert man das Schiff, über den rechten kann man die Schuss-Richtung bestimmen. spaceship_progress_01

Um dem Spieler ein angenehmeres und „realistischeres“ Spielverhalten zu ermöglichen, soll das Raumschiff nicht sofort beim Bewegen des Joysticks auf Maximalspeed sein, sondern langsam auf eine Maximalgeschwindigkeit hin beschleunigen. Gleichzeitig soll bei einem Richtungswechsel oder bei einem Stoppen der Beschleunigung das Raumschiff noch ein wenig in die alte Richtung weiterdriften. Trägheit for the win. Weiterlesen

New Project: Spaceship in trouble!

Endlich ist es wieder so weit, ein neues Projekt steht in den Startlöchern! „Spaceship in trouble!“ schwirrt zwar schon seit einer Weile im Raum herum, aber so wirklich vorwärts ging es da die letzten Wochen nicht. Ursprünglich wollte ich das Projekt in HTML5 mit JavaScript, bzw. dann später TypeScript umsetzen, um zu demonstrieren, dass die Web-Technologien durchaus spieletauglich sind (github). Im Laufe des Projektes hat sich dies zwar mehr als bestätigt (die FPS auf den verschiedenen Umgebungen waren dank CocoonJS sehr zufriedenstellend), dennoch bin ich zu einem möglicherweise anderem Schluss gekommen, als ursprünglich beabsichtigt…

Weiterlesen

Eine Einführung in ThreeJS

Bei ThreeJS handelt es sich um ein 3D-Framework, welches mit Hilfe von WebGL die Darstellung von 3D-Grafiken im Browser und auf mobilen Endgeräten ermöglicht und gegenüber dem „reinen“ WebGL stark vereinfacht. Es sind keine Kenntnisse über OpenGL und Shadinglanguages mehr nötig, man erhält einen kompletten Szenengraphen und das Ganze ist mittlerweile auch brauchbar schnell.

Im Rahmen der Adventsaktion auf dem Mayflower-Blog habe ich ThreeJS einen Artikel gewidmet, in dem die Basics erklärt und an einem Beispiel erläutert werden. Sehr empfehlenswert auch der Teil über CocoonJS, einem Hybrid-App-Framework, welches Hardwarebeschleunigtes WebGL in Google Play Store, Apple App Store usw. bringt.

Auf dem Mayflower-Blog weiterlesen…

Jede Menge Assets und ein neues Arbeitsgerät

Wie Ihr sicher schon gemerkt habt war es die letzten Tage recht still im Blog. Im Hintergrund habe ich das Repository aufgeräumt und die ganzen Assets aus-/aufgebessert (die Lernkurve beim Bedienen von Wings3D und Blender ist diesmal immens. Komisch, dass ich da früher nie mit zu Recht kam).

Außerdem ist endlich mein neuer Arbeitslaptop gekommen und ich bin jetzt stolzer Besitzer eines Fallobst-Geräts. Fühlt sich bislang seeehr gut an, und ich habe auch mal einen Blick auf Cheetah3D gewagt. Scheint mir eventuell eine gute Alternative zu Wings3D/Blender zu sein, aber das bleibt noch abzuwarten.

Viel mehr mag ich heute gar nicht berichten. Seid gespannt auf das Wochenende, da gibt es dann bestimmt wieder Videos oder zumindest ein paar Screenshots :).

LDRZ Fortschritt #8: Von allem etwas mehr :)

Diesmal habe ich mir mal ein paar Minuten genommen, um den Level ein wenig zu vergrößern, mit einer kleinen Galerie zu versehen und weitere Monster zu platzieren. Auch hat der Dungeon-Innenarchitekt zugeschlagen und überall schöne Fackeln aufgehängt. Doch seht selbst:

Warum ich hier dann bereits an erste Performancegrenzen gestoßen bin, und wie ich diese gelöst habe? Lest selbst…

Weiterlesen

LDRZ Fortschritt #7: Swordtrail, Sterbliche Gegner, Musik, …

Im heutigen Fortschrittsvideo kommen viele Dinge zusammen :)! Doch schaut selbst:

Neben coolen Sword-Trails für die Special-Attack habe ich mir auch Hintergrund-Musik aus dem Unity-Asset-Store gezogen, das Schwert in Flammen gehüllt, und die Gegner können auch endlich sterben *muhahaha*. Im Folgenden beschreibe ich wieder kurz die entstandenen Probleme und die gefundenen Lösungen :)…

Weiterlesen

LDRZ Fortschritt #6: Knockback! Die erste special attack!

Getreu dem Motto ein Video sagt mehr als tausend Worte, diesmal zuerst das Vid:

Wie ihr schon sehen könnt, es gibt die erste coole Attacke :)! Ihr glaubt gar nicht, wie viel Spaß es macht, die Skelette durch die Gegend zu werfen, nachdem wir immer noch keine andere Möglichkeit haben, uns zu wehren. Wenn ihr wissen wollt, wie das ganze umgesetzt ist, lest den kompletten Beitrag…

Weiterlesen

LDRZ Fortschritt #5: Gegner Highlight bei MouseHover

Mini-Sonntags-Morgen-Update :). Die Gegner lassen sich nun via Maus hovern. Wie ist’s gelöst? Ziemlich einfach mit Sphere-Collidern auf einem „MouseHoverLayer“, die auf isTrigger stehen, damit sie die Skelette in ihren Kollisionen nicht beeinflussen. Von der Kamera ein RayCast auf den Layer, wenn ein Objekt gefunden wird bekommt es „onMouseHoverStart“ bzw. „onMouseHoverEnd“ gesendet. Entsprechend verändert es dann seine mainColor von dunkelgrau auf hellgrau 🙂 -> fertig.

Glücklich bin ich mit der Variante für die Zukunft noch nicht, da die Collider vermutlich über die Maße Ressourcen verschlucken, aber bislang läuft’s ohne Probleme. Seht selbst:

Diesmal gibt’s keine weiteren Details zum Beitrag 🙂 nächstes mal wieder!

MayDay und MayRogue

Heute habe ich auch mal wieder am #MayDay teilgenommen. Eine wirklich tolle Idee meines Arbeitgebers (Mayflower GmbH), den Mitarbeitern alle zwei Wochen an einem Freitag Zeit für eigene Projekte einzuräumen. So kann man mal aus seinem eigenen Suppenteller hinaus und über den Tellerrand schauen, und das optimaler weise auch noch mit Kollegen, mit denen man nicht jeden Tag zu tun hat. Das fördert den Teamgeist, schafft neues Know-How in vielerlei Bereichen und bringt allerlei interessante Projekte zu Tage…

Weiterlesen