Spieleentwicklung mit SpriteKit Teil 1

Da die iOS Plattform (iPhone und iPad) immer mehr als Spieleplattform genutzt wird, hat Apple sich nicht lumpen lassen und mehrere Möglichkeiten, Spiele zu programmieren in ihr Cocoa-API eingebaut. Diese können im gesamten Apple-Universum, ausgehend vom iPhone über iPad, Mac und Apple TV genutzt werden. 

Es gibt drei eigene Bereiche dafür: SpriteKit für 2D- und Fake-3D Spiele, SceneKit für 3D Spiele und Animationen und Metal als Low Level um direkt an die Grafikplattform zu gehen. 

Hier wollen wir uns nur mit SpriteKit beschäftigen. Wer schon mal einen C64 besessen hat, weiß, was Sprites sind: Kleine Grafiken, die als Spielfiguren dienen. Während der C64 offiziell nur 8 solcher Sprites in fester Größe (Findige Programmierer holten wesentlich mehr Sprites aus der Kiste heraus) anbot, hat man mit SpriteKit fast unbegrenzte Anzahl und Größe zur Verfügung. 

Dazu der Komfort von Xcode, Swift und modernen Computern. 

Erste Schritte in SpriteKit

Natürlich muss man sich in SpriteKit einarbeiten. Sicher ist es zwar keine Spieleentwicklungsumgebung wie Unity oder Unreal, aber es kann schon eine ganze Menge von zu Hause aus. Beispielsweise Physik. 

Im Gegensatz zum UIKit (dem Nachfolger der alten Cocoa-UI-Klassen) ist die Model-View-Controller Pragmatik nicht zwingend, aber hilfreich. 

Um zu starten, öffnet man Xcode und legt ein neues Projekt vom Type Game an. Dann geben Sie wie üblich einen Namen für Ihr Projekt an, stellen sicher, dass SpriteKit ausgewählt ist. Dann wählen Sie den Platz auf Ihrer Platte und legen es an. 

Das ausgewählte Projekt kann sofort gestartet werden. Spielen Sie mit dem Programm ein wenig herum, und schließen es dann wieder. 

Nun schauen wir uns die Anatomie eines SpriteKit Spieles an. 

Anatomie eines SpriteKit-Spieles

Wie so oft werden mehrere Dateien erzeugt. 

  • App Delegate – enthält alle Funktionen für das sichere Initialisierung des Programms.
  • Zwei Scene-Dateien, die ähnlich wie die Interface Builder Dateien funktionieren. Kümmern wir uns später darum.
  • GameScene Swift-Datei. Hier passiert die Magie.
  • ViewController - Lädt die Scene-Datei und zeigt diese an. 
  • Assets - Hier kommen die Bilder, Sounds und das Icon hin.
  • Main - Einfache IB-Datei

Während der ViewController und der AppDelegate inhaltlich nicht viel neues bringen, sind die anderen Dateien interessanter. 

Die Scene-Dateien sind eine Art einfacher Level-Editor, der aber nicht so vielseitig ist, wie es von Spieleentwicklungsumgebungen gewohnt ist. Dafür, das man Entwicklungsumgebungen wie Unity oder Unreal teuer bezahlen muss, wenn man ein Spiel veröffentlichen will, ist man hier mit 99 EUR pro Jahr (nur iOS, WatchOS und TVOS bzw. iPadOS) doch recht günstig dabei. Für macOS-Software benötigen Sie nur einen Account, wenn Sie die Software vertreiben wollen und daher signieren und notarisieren müssen. 

Zum Programmieren benötigen Sie ausser Grundkenntnissen in Swift (ganz Mutige können hier auch mit Objective-C ankommen) eigentlich nur einen einigermaßen aktuellen Mac. 

In der nächsten Ausgabe werden wir uns mal die Gamescene ansehen und einige Sprites erzeugen.