• Game Play Programming GDevelop mit JavaScript

    • Liebe Schüler*innen, 
      herzlich willkommen zum nächsten Themenkapitel - Game Play Programming. In den kommenden Lerninhalten werden wir die technische Umsetzung der ermittelten Spielemechaniken und gestalteten Grafiken in der Open Source Game Engine GDevelop vornehmen.
      Hier geht's zu Engine: Free and Easy Game-Making App | GDevelop

      Gameplay Programmierung ist der technische Teil der Spieleentwicklung und bezeichnet den Programmiervorgang mit einer "Game Engine".
      Eine Game Engine ist ein spezielles Programm, welches zur Entwicklung von Computerspielen entwickelt wurde, Grundfunktionen und eine Benutzeroberfläche bereitstellt und dadurch die Spieleprogrammierung vereinfacht. 

      Die Wahl der geeigneten Spiel-Engine erfolgt anhand einer Vielzahl technischer Kriterien. So sind manche Engines besonders gut für den Einsatz von  3D Grafiken optimiert, andere Engines haben einen besseren Funktionsumfang im Rahmen der 2D- Grafik oder sind auf spezielle Betriebssystem (Xcode für MacOS, Umgebungen (z.B. WebGL) oder Spielekonsolen optimiert . Auch das angestrebte Computerspielgenre  spielt eine entscheidende Rolle, da die technischen Anforderungen sich von Spielgenre zu Genre unterscheiden können. Für diesen Kurs haben wir uns für den Game Engine GDevelop entschieden. Diese Engine bildet einen guten Funktionsumfang ab und erleichtert mit einer einfachen Bedienbarkeit den Einstieg ins Thema Spieleentwicklung.

      GDevelop läuft zudem direkt im Browser, d.h. auf jedem Gerät, mit dem du ins Internet kommst.
      Möchtest Du jedoch eigene Assets (also Grafiken und Sounds) verwenden, musst Du die Desktop Version herunterladen, da dies in der Onlineversion noch nicht möglich ist.

      Ist die Engine erst einmal geöffnet, kannst du auch offline weiterarbeiten. Die deutsche Version befindet sich allerdings noch in der Entwicklungsphase d.h. es gibt einige englische Begriffe welche Du hier kennenlernen wirst (wir haben uns bemüht die wichtigsten Begriffe im Glossar zu erläutern. Tauchen dennoch eurerseits Unklarheiten auf, schickt uns gerne eure Fragen im Q&A Forum des Kurses.

      GDevelop ist kostenlos und Open Source. Das heißt Du kannst die Engine kostenlos verwenden und Deine Spiele sogar verkaufen. Wenn Du ganz tief einsteigen willst, kannst Du die Engine sogar weiterentwickeln und eigenen Funktionen und Erweiterungen der Community bereitstellen.

    • Icon Textseite
      Getting started: GDevelop kennenlernen


      In dieser Tutorialserie entwickeln wir einen Endless Runner in GDevelop mit JavaScript. Dabei lernst Du Grundlagen des Programmierens von JavaScript in GDevelop.
      Wir schauen uns den Sytax an, lernen die Klassen und Funktionen von GDevelop zu verwenden sowie den Umgang Variablen und Funktionen und gehen auf Objekt Orientierte Programmierung ein.


      In diesem ersten Lernvideo stellt euch Patrick die Game Engine GDevelop vor. Hierfür bitten wir euch die Webseite https://gdevelop.io/ zu öffnen und euch einen Überblick über das Angebot der Internetseite zu verschaffen. Dort werdet ihr vieles spannendes zum lesen, lernen und spielen entdecken. Patrick wird euch die einzelnen Möglichkeiten der Seite in seinem Video ebenfalls noch einmal Schritt für Schritt vorstellen.

    • Icon Textseite
      Getting started: GDevelop kennenlernen

      In dem Tutorial behandeln wir die Tasteneingaben des Spielers und reagieren auf diese.

      Außerdem werfen wir einen kurzen Blick auf die Dokumentation von GDevelop und wie wir Funktionen finden und anwenden.
      Darüber hinaus schauen wir uns die Konsolenausgabe von Objekten einmal genauer an und was wir darin finden und herauslesen können.

    • Icon Textseite
      Animation Control

      In dem Tutorial ändern wir die Animationen unseres Players per JavaScript und verknüpfen Bedingungen, so dass wir Kontrolle darüber haben, wie sich unser Character in der Luft, im Sprung oder am Boden verhält.

    • Icon Textseite
      Timer and Create Object

      Damit wir bei unserem Endless Runner auch endlos rennen können, müssen wir unser Level dynamisch erstellen. Hierzu erstellen wir in diesem Tutorial zeitgesteuert neue Plattformen in unserer Szene und weisen Ihnen dynamisch eine Position zu.

    • Icon Textseite
      Add Force and Global Variable

      Damit wir bei unserem Endless Runner auch endlos rennen können, müssen wir unser Level dynamisch erstellen. Die nun dynamisch erstellten Plattformen müssen sich nun noch auf uns zu bewegen, damit wir ein fortlaufendes Level haben. Die Geschwindigkeit der Plattformen soll über eine Globale variable steuerbar sein.

    • Icon Textseite
      Function to create dynamic platforms

      Funktionen können sehr hilfreich sein, um teile unseres Codes wieder zu verwenden und damit sowohl die Lesbarkeit wie auch die Wartbarkeit zu erhöhen. Der Code für das dynamische Erstellen von Plattformen soll deshalb in eine Funktion gepackt werden.
      Weiter soll die Plattform nun außerhalb unserer Sichtbereichs und in unterschiedlichen Größen erstellt werden.

    • Icon Textseite
      Camera Setup

      Bisher haben wir nur eine statische Ansicht unseres Levels. Unser Player Character kann also einfach aus dem Sichtfeld herausspringen. Darum kümmern wir uns nun um die Kamera, damit diese unserem Charakter folgt.

      Da wir das Level dynamisch erstellen und es sich auf uns zubewegt, verhindern wir anschließen, dass sich unser PC nach links oder rechts bewegen kann. Der Eindruck der Bewegung erfolgt nur durch die sich von selbst bewegenden Plattformen.

    • Icon Textseite
      Object Groups

      Da wir einige Plattformen nicht per Code erstellt, sondern manuell in unserem Level platziert haben, bewegen sich diese aktuell noch nicht von der Stelle. Wir müssen die Bewegung per Code hinzufügen. Um das unabhängig davon zu machen, wie viele Plattformen wir in der Szene haben, erstellen wir eine Objekt Gruppe und weisen die Kraft bzw. Bewegung allen Objekten der Gruppe in unserer Szene per Skript zu.

    • Icon Textseite
      Random timer for platforms

      Bisher wurde Plattformen statisch in einm festen Zeitabstand gespawned. In diesem Tutorial ändern wir nun den Timer für die Plattformen, so dass er Plattformen in zufällige in zufälligen Zeitabständen generiert.

    • Icon Textseite
      Double Jump

      Damit wir auch weiter entfernte Plattformen erreichen können und um etwas die Dynamik und Möglichkeiten unseres Spiels zu erweitern verleihen wir unserem Charakter die Fähigkeit mehrfach in der Luft zu springen. Bei einem zweiteren Sprung in der Luft, sprechen wir vom Double Jump.

    • Icon Textseite
      Fallout and Restart / Background

      In diesem Tutorial sorgen wir dafür, dass das Spiel neu startet, wenn wir unglücklich springen, alle Plattformen verfehlen und herunterfallen. Da sich die Position der Plattformen an unserem Spieler orientiert können wir keine unsichtbare Barriere hierfür verwenden und nutzen stattdessen erneut einen Timer. Außerdem fügen wir auch einen Hintergrund in unser Spiel ein.

    • Icon Textseite
      Score + Timer

      Damit wir unsere Fähigkeiten messen und vergleichen können benötigen wir in Wertungssystem, einen Score. Der Score soll in dem Fall ein Timer sein, der unsere Spielzeit aufzeichnet und diese für uns in einem Textfeld ausgibt.

    • Icon Textseite
      Collisions

      Für die Interaktion mit Objekten im Spiel, wie beispielsweise das Einsammeln von Münzen, ist es notwendig Kollisionen zu erkennen. Wir bauen die notwendigen Funktionen und ein System ein, um Kollisionen mit mehreren unterschiedlichen Objekten zu erkennen, zu unterscheiden und darauf zu reagieren.
      Wir fügen hierfür unserem Spiel Münzen zum Einsammeln sowie einen Gegner hinzu. Beide sollen am Ende zufällig auf unseren Plattformen gespawned werden
      .

    • Icon Textseite
      Build a menu

      Um das Spiel vernünftig starten, neu starten und beenden zu können bauen wir in diesem Tutorial bauen wir ein einfaches Menü dafür. Wir verwenden dabei für die Buttons das Bitmap Texte Objekt und Layer zur Gruppierung sowie um das Ein- und Ausblenden zu steuern.

    • Icon Textseite
      Objects and multiple scripts

      Bisher hat sich unsere ganze Entwicklung in einem Skript abgespielt. Für komplexere Spiele wird es hilfreich sein, weitere Skripte zu erstellen und einzubinden auch um das Spiel Wartbar und erweiterbar zu halten. Den Zugriff auf diese Skripte stellen wir über Objekte her.

      in diesem Tutorial werden wir die UI in ein separates Skript auslagern.

    • Icon Textseite
      Export and publish for the web

      Wenn unser Spiel so weit ist, dass man es spielen kann, wollen wir es veröffentlichen.
      Ein Weg hierfür ist ein Export und Build fürs Web, welchen wir dann auf der Plattform itch.io veröffentlichen
      .