Monat: April 2017

Unity Hero Spielvorstellung – Mein erstes Projekt mit Unity3D

Unity Hero Spielvorstellung – Mein erstes Projekt mit Unity3D

Unity Hero – mein erstes Projekt in Unity

Spielvorschau

 

Der Anfang

Nach ein paar Tutorials und der halbherzigen Lektüre eines Buches aus der Uni-Bibliothek wollte ich direkt mit einem eigenen Projekt in Unity loslegen.
Meine erste Projektidee entstand mehr oder weniger während ich im integrierten Asset Store interessante Elemente für ein zukünftiges Spiel suchte.
Viele Objekte die mich an eine Art Dungeon Spiel erinnerten, erweckten meine Aufmerksamkeit. Also entschloss ich mich etwas in der Richtung zu machen. Ein großer Dungeon, ein einsamer Held und verdammt viele Monster – so ungefähr war der grobe Plan für das Ganze.
Ich ging relativ unbefangen an das Vorhaben heran und legte gleich los (eventuell ein Fehler).

Die Spielfigur

Ich schnappte mir einen Helden aus dem Asset Store, schrieb ein Script um ihm das laufen beizubringen, fügte eine Waffe und eine Schussfunktion hinzu. Alles sag zwar noch nicht perfekt aus, aber ich hatte eine kleine Figur die durch meine Welt laufen und schießen konnte.

Der Held im Spiel
Der Held in Unity Hero – Ein Holzfäller mit Pistole

Monster

Wo ein Held ist müssen natürlich auch Monster sein! Deshalb machte ich mich als nächstes an das erstellen von Gegnern. In Unity gibt es die NavAgent Komponente mit der man 3D-Modelle einfach dazu bringen kann, immer dem Spieler zu folgen. Ist der Spieler in einer bestimmten Reichweite, so kann das Monster ihm Schaden zufügen. Schießt man und trifft ein Monster, so muss das natürlich verletzt werden. Dieses Verhalten setzte ich in einem weiteren Script um.

Ein Monster allein ist natürlich nicht sonderlich interessant, deshalb musste eine Art Spawn-Algorithmus her. Das Spiel sollte in Runden verlaufen, d.h. also in Runde 1 werden 10 Monster gespawnt, in Runde 2 15 usw.. Diese Funktionalität musste in einem weiteren Script untergebracht werden.
Monster Unity Hero

Leveldesign

Nun begann ich mit meinem Lieblingsteil der Entwicklung – dem Level design. Ich hatte ja schon im Vorfeld einige Elemente aus dem AssetStore heruntergeladen und würfelte diese nun irgendwie zu verschiedenen Dungeon-Räumen zusammen. Das ganze ist immer ein bisschen wie Minecraft – man hat verschiedene Bauteile zur Verfügung und baut, was einem in den Sinn kommt. 😀 Hier ein paar Screenshots aus dem Projekt.
Unity Hero Leveldesign

Unity Hero Leveldesign

Unity Hero Leveldesign

Unity Hero Leveldesign
Das Ganze fand ich schon echt stark – was wohl großteils an den ganzen tollen, kostenlosen Assets lag. 😀

Was jetzt an Schwierigkeiten auf mich zukam und warum ich das Projekt letzten Endes nicht fertiggestellt habe, erfahrt ihr im nächsten Artikel. Der ist sogar schon erschienen und hier zu finden: Unity Hero Teil 2

Grundlagen für den Einstieg in Unity – Die Basics

Grundlagen für den Einstieg in Unity – Die Basics

Grundlagen

Was brauche ich um in Unity3D richtig loszulegen?

Die Spieleentwicklung umfasst eine Vielzahl an Disziplinen und erfordert verschiedenste Kenntnisse. Ich möchte hier kurz einen Leitfaden für die Einarbeitung in Unity3D darlegen. Das heißt, das du mit diesen Materialien die Grundlagen des Programmierens erlernen kannst und einen breiten Überblick über die Unity Engine vermittelt bekommst. Dieser kleine Leitfaden umfasst jedoch nicht das designen von 3D-Models und anderen Assets.

Ein guter Gesamtüberblick

Als ich anfing mich mit Unity zu beschäftigen lieh ich aus der Uni-Bibliothek „Spiele entwickeln mit Unity 5“ von Carsten Seifert aus. Das Buch verschafft einen tollen Überblick zum Thema Unity und bietet gleichzeitig eine Einführung in die Programmierung mit C#.

Weiterhin kann ich die Videos auf dem Unity Youtube Channel wärmstens empfehlen. Hier wird alles sehr ausführlich und langsam erklärt (leider auf Englisch)
https://www.youtube.com/user/Unity3D

Auch die Online Dokumentation von Unity kann sich sehen lassen – hier findet man zu nahezu allem eine Antwort. Oft gibt es Beispiele in Form von Programmcode und alles wird genau erklärt.
https://docs.unity3d.com/Manual/index.html

Programmierung – Learn to write code!

Wer komplexere Spiele programmieren will kommt auch heute kaum um das erlernen einer Programmiersprache herum. In der Unreal Engine gibt es zwar eine grafische „Programmiersprache“, diese eignet sich jedoch meiner Ansicht nach weniger gut zum modellieren komplexer Sachverhalte.
Programmieren lernen kann sehr frustrieren sein, aber es lohnt sich!
In Unity gibt es die Möglichkeit zwischen JavaScript und C# zu wählen. Es hat sich aber mehr und mehr durchgesetzt Skripte in Unity mit C# zu schreiben.
Die Grundlagen von C# kannst du zum Beispiel hier lernen:
C# lernen Youtube

Wie alles begann Teil 2 – ThreeJS und Unity3D

Wie alles begann Teil 2 – ThreeJS und Unity3D

Wie alles begann Teil 2 – ThreeJS und Unity3D

ThreeJS

Alles nahm ein bisschen mehr Fahrt auf, als ich das JS Framework ThreeJS entdeckte. Eine Library von MrDoob die einem erlaubt 3D-Szenen im Browser darzustellen. Ich war unglaublich beeindruckt von den Sample-Scenes in ThreeJS und wollte mich direkt daran machen irgendwas cooles zu „entwickeln“. Dabei sind zwei Ideen von mir umgesetzt worden, d.h. es gibt eine Art Prototyp, der noch nichts mit einem marktreifem Spiel zu tun hat.

Space Jump

Das erste Spiel ist eine Art Endless-Runner in dem es darum geht von Plattform zu Plattform zu springen. Hier ein Bild und ein Link zum unfertigem Projekt.
SpieleSpace Jump jetzt
ThreeJS erstes Spiel

Minesweeper / Threesweep

Das zweite Spiel ist ein 2D – Minesweeper in einer 3D-Welt. (LINKS hier). Hier habe ich die meiste Zeit damit verbracht mir über den Minen-Algorithmus den Kopf zu zerbrechen. Hierbei war es am schwersten herauszufinden, wie viele Minen nun tatsächlich im Umfeld versteckt sind. Am Ende hat aber die Umsetzung mehr oder weniger erfolgreich geklappt.

Das entwickeln mit ThreeJS war im allgemeinen ziemlich mühsam, denn nach jeder Änderung musste ich die Website neu laden und das Spiel neu starten. Gab es einen kleinen Fehler im Quellcode, startete direkt die komplette Anwendung nicht. Nett für kleinere 3D-Anwendungen im Netz, aber nicht das richtige für einen sanften Einstieg in die Spielentwicklung.

Endlich Unity – Warum nicht schon früher?

Durch Zufall entdeckte ich damals Unity3D und war von der Engine sofort hell auf begeistert. Das war genau das, was ich immer gesucht hatte. Einfach gehaltenes User Interface und mit vielen coolen Features. Es gibt einen 3D-Editor der aktuellen Szene, man kann im laufenden Spiel Skripte verändern oder Dinge bearbeiten und hat viele Möglichkeiten sein Projekt übersichtlich zu organisieren.

Das erste Projekt

Meine Begeisterung mündete natürlich in einem neuen Projekt, eine Art Dungeon-Shooter in dem es darum geht sich durch die einzelnen Räume eines endlos großen Dungeons zu kämpfen und seine Skills dabei zu verbessern (LINK ZUR PROJEKTVORSTELLUNG?). Die Assets habe ich mir alle aus dem Unity Assetstore geholt und dann alles nach meinen Vorstellungen zusammengebaut. Mein Ziel war dabei, das ich die App abschließend im iOS Appstore und Google Playstore veröffentlichte. Das Ziel war für mich damals in weiter Ferne, aber ich hatte mir fest vorgenommen es zu erreichen. Leider musste ich nach einiger Zeit feststellen das das Projekt mir über den Kopf zu wachsen schien. Ich baute viele neue Features ein und hatte eine Menge Ideen, aber verlor am Ende mehr oder weniger den Überblick. Deshalb entschloss ich mich dafür, das Projekt fürs erste Beiseite zu legen und mit einem einfacherem Projekt Erfahrung zu sammeln. Das war im August 2016.

Wie alles begann Teil 1 – Webentwicklung und Spieleentwicklung mit JS

Wie alles begann Teil 1 – Webentwicklung und Spieleentwicklung mit JS

Spiele entwickeln war schon seit langer Zeit ein Thema das mich sehr interessiert hat. Ich hielt es aber lange Zeit für nahezu unmöglich mein eigenes Spiel zu entwickeln und auch entsprechend zu veröffentlichen. Meinen Weg hin zur Spieleentwicklung möchte ich gerne in diesem und dem folgendem Artikel schildern.

Java programmieren – Der Anfang

Im Schulunterricht ab der 11. Klasse kam ich dann das erste Mal mit Java-Programmierung in Berührung. Außerhalb der Schule probierte ich auch zuhause ab und an ein wenig herum und bastelte meine ersten kleinen „Programme“. Eines war zum Beispiel ein kleiner Portorechner. Man konnte die Maße für sein Paket eingeben und bekam die Info, wie viel man für das Paket bezahlen müsste. Hier könnt ihr das kleine Programm anschauen. Jeder hat mal klein angefangen, also bitte keine all zu heftige Kritik 😀
Github Dhl.java
Erstes Java-Programm in Eclipse Spieleentwicklung

Webentwicklung / Spieleentwicklung mit JavaScript

Nach einer Weile begann ich mich dann eher das Entwickeln von Websites zu interessieren. Ich lernte die Basics in CSS, HTML, PHP und Javascript und bastelte an einer eigenen Website. Irgendwann kam ich auf die Idee ein kleines Browserspiel zu entwickeln. Für mich war das damals schon eine ziemlich coole Sache und ich hab mich riesig gefreut als der kleine Hase endlich laufen gelernt hatte und die Möhren essen konnte.
Das Ganze funktioniert auf Basis von Javascript. Mit ein bisschen CSS und HTML als Grundgerüst habe ich dann die einzelnen Grafikobjekte angeordnet. In Javascript kann man einfach die Bewegungssteuerung des Handys nutzen und auf bestimmte Events wie Drehungen reagieren. Auch hier sollte man den kleinen Hasen mit etwas Geschick durch neigen seines Handys bewegt bekommen. 😉
Alles natürlich nicht sonderlich weltbewegend, aber für mich war das schon eine ziemlich coole Sache so etwas auf die Beine gestellt zu haben.
Jump Rabbit Jump – Spielen
Labyrinth Spiel Javascript Spieleentwicklung

TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste