SPIELE ENTWICKELN FÜR IPAD, IPHONE UND IPOD TOUCH - THOMAS LUCKA

Die Seite wird erstellt Till Wimmer
 
WEITER LESEN
SPIELE ENTWICKELN FÜR IPAD, IPHONE UND IPOD TOUCH - THOMAS LUCKA
IC
                           CKS HTIG
                         RÜ

                                  T
                     iOS 4

                    BE
SPIELE
ENTWICKELN
FÜR iPAD, iPHONE UND iPOD TOUCH

thomas LUCKA

EMPFOHLEN VON
SPIELE ENTWICKELN FÜR IPAD, IPHONE UND IPOD TOUCH - THOMAS LUCKA
Inhalt

1          Einleitung – Let there be … games! .......................................................................... 1
    1.1    Warum überhaupt Spiele für das iPhone programmieren? ...................................................... 1
    1.2    Willkommen in der Welt von Apple – das iPhone-Phänomen ................................................ 2
    1.3    Die iPhone-Family – Spezifikationen...................................................................................... 4
    1.4    Aller Anfang ist leicht … ........................................................................................................ 5

2          Grundlagen – Wie funktioniert das alles denn bloß? ................................................. 9
    2.1    Die Quelle der Macht – das Apple Dev Center ....................................................................... 9
    2.2    Xcode und das iOS SDK herunterladen und installieren ....................................................... 10
    2.3    Xcode-Vorlagen einsetzen..................................................................................................... 11
    2.4    Hello World I mit Konsolenausgabe ..................................................................................... 12
    2.5    Hello World II mit Text auf einer View-Instanz.................................................................... 20
    2.6    Keine Angst vor Objective-C – ein 15-Minuten-Schnellkurs................................................ 24
    2.7    Der Lebenszyklus einer App ................................................................................................. 31
    2.8    Breite Unterstützung: Universale Apps ................................................................................. 34

3          Spiele entwickeln – von 0 auf 180 ........................................................................... 51
    3.1    Wie funktionieren Spiele? ..................................................................................................... 51
    3.2    Das 2D-Koordinatensystem................................................................................................... 53
    3.3    Ein Beispielprojekt aufsetzen ................................................................................................ 55
    3.4    Zeichenkurs – einfache Formen rendern ............................................................................... 58
    3.5    Bilder einbinden, laden und anzeigen.................................................................................... 65
    3.6    Game Loop und Frames – die Bilder zum Laufen bringen.................................................... 72
    3.7    Clipping und Animationen .................................................................................................... 78
    3.8    Kollisionskontrolle, bitte!...................................................................................................... 91
    3.9    User-Input............................................................................................................................ 100
    3.10   Und jetzt alle(s) zusammen: GameManager und Sprite-Verwaltung................................... 110
    3.11   Zappp, Brzzz, Booom, Pennng! Hintergrundmusik und Sound-Effekte.............................. 133
    3.12   Datenspeicherung ................................................................................................................ 147
    3.13   Verbindung gesucht: Multiplayer-Spiele mit Game Kit und Game Center ......................... 151

                                                                                                                                                        VII
Inhalt

         4          OpenGL ES – der Turbo-Gang.............................................................................. 153
             4.1    Warum OpenGL ES? ...........................................................................................................153
             4.2    Was ist OpenGL ES, und wie ist es aufgebaut? ...................................................................154
             4.3    OpenGL ES – grundlegende Fragen.....................................................................................156
             4.4    Ein Template erstellen – OpenGL ES richtig einbinden.......................................................157
             4.5    Das OpenGL-Koordinatensystem ........................................................................................164
             4.6    Einfache Zeichenoperationen ...............................................................................................167
             4.7    Exkurs: Mathe-Plotter ..........................................................................................................173
             4.8    Und Bilder? Wie wär's mal mit Texturen!............................................................................175
             4.9    Ab in die Matrix: die Transformationsfunktionen................................................................188
             4.10   Animationen mit Textur-Clipping........................................................................................191
             4.11   Unendliche Weiten: Scrolling und Parallax-Scrolling..........................................................195
             4.12   Lassen wir's krachen: ein OpenGL ES-Shooter....................................................................204

         5          Die dritte Dimension: 3D-Spiele ............................................................................ 237
             5.1    Wie sind 3D-Spiele aufgebaut? ............................................................................................237
             5.2    Das Grundgerüst...................................................................................................................239
             5.3    Das 3D-Koordinatensystem .................................................................................................241
             5.4    Einfache Formen zeichnen ...................................................................................................242
             5.5    Texturierung von Flächen ....................................................................................................245
             5.6    Texturierung von 3D-Körpern..............................................................................................248
             5.7    Es werde Licht......................................................................................................................253
             5.8    3D-Modelle erzeugen, laden und einbinden.........................................................................257
             5.9    Weitere 3D-Modelle mit Textur...........................................................................................267
             5.10   Ego-Perspektive: Kamera erstellen und einsetzen................................................................271
             5.11   Spaceflight: ein 3D-Spiel entsteht ........................................................................................275

         6          Waiting round to be a millionaire ........................................................................... 307
             6.1    Das Tor zur Welt – iTunes Connect .....................................................................................307
             6.2    Testen, Testen, Testen: Aber wie kommt das Spiel auf mein Gerät? ...................................308
             6.3    Release und Distribution ......................................................................................................308
             6.4    Marketing-Pläne? .................................................................................................................310

         7          Literaturverzeichnis ............................................................................................... 311

         8          Register ................................................................................................................. 313

VIII
1
      1 Einleitung – Let there be … games!

1.1   Warum überhaupt Spiele für das iPhone programmieren?

      Auf den ersten Blick wirken iPhone, iPod touch und iPad nicht wie typische Gaming
      Devices: Es gibt keinen Joystick, ein Game Pad oder überhaupt irgendwelche Tasten (ab-
      gesehen vom Home-Button, dem Ein-/Aus-Schalter und dem Lautstärkeregler). Und den-
      noch sorgen Spiele mit für den größten Umsatz im App Store. 28% aller iPad-Nutzer
      gaben unlängst in einer Studie (Resolve Market Research, 2010) an, das Gerät
      hauptsächlich für Games zu verwenden.
      Dies ist umso erstaunlicher, wenn man bedenkt, dass der Spieleanteil im App Store nur
      knapp 17% ausmacht: Der Web-Katalog Apptism, der nahezu den kompletten Content des
      App Stores im Internet abbildet, listet im August 2010 insgesamt 213.292 Apps, davon
      lediglich 36.008 Spiele (http://www.apptism.com/).
      Sicherlich erschwert das Fehlen der klassischen Eingabemöglichkeiten das Spielen von
      typischen Genre-Vertretern wie zum Beispiel Jump’n’Runs oder Shoot’em Ups. Dennoch
      bietet die berührungsempfindliche Oberfläche der iOS-Geräte die Möglichkeit, einen feh-
      lenden Joystick oder ein fehlendes Game Pad zu emulieren: Beide Varianten kommen
      unter anderem im C64-Emulator von Manomio zum Einsatz (http://c64.manomio.com/).
      Trotzdem bleibt die Touch-Steuerung gerade bei Neuauflagen älterer Retro-Titel aus den
      80ern, die oft eine schnelle und präzise Reaktion des Spielers erfordern, den aus der Spiel-
      halle entlehnten Arcade-Controls unterlegen: Zu hakelig, zu ungenau ist die Touch-
      Steuerung, und ein Teil des Bildschirms wird zudem durch die virtuellen Kontrollmöglich-
      keiten verdeckt.

                                                                                                     1
1 Einleitung – Let there be … games!

         Abb. 1.1: Obere Reihe (v.l.n.r): Fieldrunners (Subatomic Studios), Canabalt (Semi Secret Software),
         Eliminate Pro (ngmoco, Inc.). Untere Reihe: Osmos (Hemisphere Games), Mr.AahH!! (PONOS), Isoto-
         pe (Affogato LLC).

         Aber genau in diesem Manko liegt auch die Herausforderung: Das Bedienkonzept von
         iPhone & Co. zwingt Spieleentwickler zum Umdenken, erfordert neue Ideen und innovati-
         ve Steuerungsmöglichkeiten. Gelungene Beispiele, die zeigen, wie man das Touch-Display
         und den Bewegungssensor für Spiele einsetzen kann, gibt es mittlerweile genug.1 Da die
         Spiele auf das iPhone iOS zugeschnitten sein müssen, sorgt die Plattform zwangsläufig für
         neue und einmalige Spielerfahrungen, die sich nicht ohne Weiteres auf andere Spielkonso-
         len übertragen lassen oder umgekehrt von diesen für das iPhone adaptiert werden können.

1.2      Willkommen in der Welt von Apple – das iPhone-
         Phänomen

         Am Anfang war … Snake! Snake? Der Weg vom ersten schwarz-weißen Handyspiel
         (Nokia 6110, 1997) bis hin zum iPhone ist gar nicht so lang: Bereits 2003 konnte man auf
         den ersten Nokia Smartphones 3D-Multiplayer-Spiele spielen und kurze Zeit später sogar
         erste Erfahrungen mit berührungsempfindlichen Displays oder Bewegungssensoren (teil-
         weise sogar emuliert über den Kamera-Input von Symbian-Geräten) sammeln. Aber erst
         das iPhone brachte die Summe der Teile geschickt zusammen und sorgte – verbunden mit
         einer griffigen Marketing-Kampagne („Es gibt für alles eine App.“) – für die nötige
         Marktdurchdringung. Ein einziges Gerät, das bereits eine vollständige Entwicklungsplatt-
         form mit mehreren Millionen Nutzern bietet – dies war ein Novum in der bis dahin durch
         zahlreiche Modelle stark fragmentierten mobilen Industrie.

         1Einen guten Überblick bieten Webzines wie zum Beispiel Touch Arcade (http://toucharcade.com/) oder
         Pocket Gamer (http://www.pocketgamer.co.uk/latest.asp?sec=7).

2
1.2 Willkommen in der Welt von Apple – das iPhone-Phänomen

Mittlerweile ist das erfolgreiche iPhone-Konzept auch auf nicht für Telefonie taugliche
Geräte übertragen worden, wie den MP3-Player iPod und das iPad. Damit stehen die
Apple-Geräte in direkter Konkurrenz zu dedizierten mobilen Gaming Devices wie Game-
Boy, Nintendo DS oder Sony PSP Portable.
Der digitale Vertriebsweg der Spiele über den App Store bietet Apple und natürlich auch
den Entwicklern eine viel kostengünstigere und schnellere Alternative zu den traditionellen
Game Cartridges oder Discs und dem Ladenverkauf. Man könnte behaupten, dass mehr
Freiheiten auch mehr Verantwortung erfordern, doch die Realität ist wohl eher, dass Apple
alle Geschäftsbereiche kontrolliert, um den Umsatz zu steigern. Diese Restriktionen kom-
men andererseits aber auch der Benutzerfreundlichkeit zugute:
„ Der Kauf neuer Spiele erfolgt ausschließlich über das Gerät selbst. Auch kostenlose
  Spiele können ausschließlich über den App Store installiert werden.
„ Der Installationsprozess ist komplett vor dem User verborgen (keine Popups oder In-
  stallationshinweise), lediglich ein Fortschrittsbalken unter dem App-Icon signalisiert
  den Download-Vorgang.
„ Entwickler brauchen nur einen einzigen Vertriebskanal zu beliefern.
„ Apple kontrolliert, welche Software in den App Store gelangt und welche nicht.
„ Da neue Software (offiziell) nur über den App Store verkauft wird, ist Apple am Um-
  satz beteiligt (derzeit 30% vom Kaufpreis einer App).
„ Apple bestimmt das Look & Feel des eigenen Shops.
„ Benutzer erhalten einen zuverlässigen und beständigen Einstiegspunkt, um nach neuer
  Software zu suchen.
Andere Hersteller bieten dagegen völlig offene Plattformen, wie zum Beispiel Nokia mit
dem Linux-basierten N900: Den Usern stehen hier vielfältige Wege offen, um neue Soft-
ware zu installieren, vom Ovi Store über unabhängige Drittanbieter bis hin zur Selbstin-
stallation. Aber auch die Entwicklungswerkzeuge sind nahezu frei wählbar – Apple hinge-
gen erlaubt nur Objective-C-basierte Apps, die wiederum nur mit der IDE Xcode auf ei-
nem Mac OS X-Rechner erstellt werden können.
Doch der Erfolg scheint Apple Recht zu geben, Apple-Produkte sind einfach Kult: Als das
iPhone 3GS im Juni 2009 in acht Ländern eingeführt wurde, wurden innerhalb einer Wo-
che 1,6 Millionen Geräte abgesetzt. Google verkaufte im gleichen Zeitraum lediglich
20.000 Einheiten seines Android-Handys Nexus One (Flurry 2010, http://blog.flurry.com).
Anfang 2010 wurden von GigaOM 58 Millionen aktive App Store-User verzeichnet (da-
von iPhone: 34 Millionen, iPod touch: 24 Millionen), die innerhalb eines Monats ungefähr
280 Millionen Apps herunterladen, ¼ davon bezahlter Content. Allein in der Weihnachts-
saison 2009/10 wurden jeden Tag 500 neue Apps von ungefähr 28.000 iOS-Entwicklern

                                                                                              3
1 Einleitung – Let there be … games!

         hinzugefügt.2 Mittlerweile dürfte die Zahl der Entwickler bei ungefähr 35.000 liegen, und
         durch dieses Buch kommen hoffentlich noch ein paar weitere dazu.

1.3      Die iPhone-Family – Spezifikationen

         Auch die Fragmentierung innerhalb der iPhone iOS-kompatiblen Geräte nimmt immer
         mehr zu. Jedes Jahr im Sommer erscheint eine neue iPhone-Version, und es ist nicht un-
         wahrscheinlich, dass Apple zukünftig neben dem iPad noch weitere neue Produktgattun-
         gen einführt.
         Die gute Nachricht ist, dass alle Geräte untereinander (bedingt) kompatibel sind, wenn Sie
         die jeweiligen Geräteeigenschaften berücksichtigen. Alle Beispiele dieses Buches sind
         selbstverständlich auf allen Geräten der iPhone-Familie lauffähig und intensiv mit unter-
         schiedlichen iOS-Versionen getestet worden.
         Aktuell lassen sich neun Geräte nach drei Gattungen unterscheiden:
         „ iPhone: iPhone (1st Gen), iPhone 3G, iPhone 3GS, iPhone 4
         „ iPod touch: iPod touch (1st Gen), iPod touch 2G, iPod touch 3G, iPod touch 4
         „ iPad: iPad (1st Gen)
         Abgesehen von iPad und iPhone 4 verfügen die Geräte über die folgenden gemeinsamen
         Eigenschaften:
         „ kapazitiver Multi-Touchscreen
         „ 320x480-Pixel-LCD-Screen, 18 Bit (262.144 Farben), 163 Pixel pro Inch
         „ Arbeitsspeicher (RAM): mindestens 128 MB eDRAM
         „ Flash-Speicher: mindestens 8 GB NAND
         „ Alle Geräte verfügen neben der Haupt-CPU über einen 3D-Grafikchip, der mindestens
           OpenGL ES 1.1 unterstützt.3
         „ Sensoren: Beschleunigungssensor (Accelerometer), Umgebungslichtsensor, Entfer-
           nungssensor (nur iPhone).
         „ WLAN 802.11b/g
         „ Mindestens Bluetooth 2.0+EDR (alle Modelle, außer 1st Gen iPod touch)

         2 Die Umsatzzahlen des App Stores dürften einen großen Anteil an der Erfolgsstory des iPhones ausma-
         chen. Unter http://www.distimo.com/appstores/ finden Sie einen Vergleich der vier großen Download-
         Stores (App Store von Apple, Ovi Store von Nokia, PlayNow von Sony Ericsson, Android Market von
         Google).
         3 Haupt-CPU: iPhone 3GS und iPod touch 3G: 833 MHz (underclocked auf 600 MHz), ARM Cortex-A8,
         andere Modelle: 620 MHz (underclocked auf 400–412 MHz) Samsung 32 Bit RISC ARM, außer iPod
         touch 2G, welches minimal schneller ist (underlocked auf 532 MHz). 3D-Grafik-CPU: iPhone 3GS und
         iPod touch 3G: PowerVR MBX Lite 3D GPU, die anderen Modelle laufen mit der minimal langsameren
         PowerVR SGX GPU.

4
1.4 Aller Anfang ist leicht …

      Das iPad verfügt darüber hinaus über ein 1024x768er-Display und iPhone 4 und iPod
      touch 4 über 960x640 Pixel. Alle drei Geräte laufen mit einem A4-Prozessor mit 1 GHz,
      sind also deutlich schneller als die übrigen Geräte. Während iPhone 3GS, iPod touch 3G
      und iPad bereits über 256 MB Arbeitsspeicher verfügen, stellen iPhone 4 und iPod touch 4
      komfortable 512 MB zur Verfügung.
      Alle Geräte lassen sich über iTunes kostenlos auf die jeweils neueste iOS-Version updaten.
      Wer dennoch unterschiedliche iOS-Versionen berücksichtigen möchte, findet im Apple
      Dev Center den „SDK-based Development“-Guide:
      https://developer.apple.com/iphone/prerelease/library/documentation/DeveloperTools/Con
      ceptual/cross_development/Introduction/Introduction.html
      Die Beispiele für dieses Buch wurden für iOS 4.x entwickelt und getestet, sind in den
      meisten Fällen aber auch abwärtskompatibel zu früheren iOS-Versionen. Entsprechende
      Hinweise finden Sie in den nachfolgenden Kapiteln.

1.4   Aller Anfang ist leicht …

      Was braucht man, um mit der Entwicklung von Spielen für das iPhone iOS anfangen zu
      können? Idealerweise würden wir ja zu gerne antworten: Das vorliegende Buch und sonst
      nichts! Andererseits dürfte jeder Leser über unterschiedliche Voraussetzungen verfügen,
      und wir wollen dieses Buch nicht mit redundanten Informationen füllen, die sich bereits an
      anderer Stelle zur Genüge finden lassen.
      Um die Beispiele in diesem Buch nachvollziehen zu können, sollten Sie zumindest Kennt-
      nisse in einer objektorientierten Sprache (Java, C#, C++) besitzen. Wenn Ihnen Begriffe
      wie Objekt, Vererbung, Klasse oder Methode spanisch vorkommen, dann greifen Sie viel-
      leicht vorher zu einem Java-Tutorial. Warum Java? Java ist zwar nicht die Sprache des
      iPhones, aber bestens geeignet, um die Grundlagen der Programmierung zu verstehen, und
      wird zu diesem Zweck auch als erste Sprache an den meisten Universitäten gelehrt. Tiefer-
      gehende OOP-Kenntnisse werden für dieses Buch allerdings nicht benötigt. Wir haben uns
      bemüht, die Quelltexte so einfach und übersichtlich wie möglich zu gestalten.
      Rudimentäre Programmiererfahrungen wären aber auch schon die einzigen Theoriekennt-
      nisse, die Sie mitbringen sollten. Da die meisten Leser durch das iPhone das erste Mal mit
      einem Mac oder Objective-C 2.0, der Sprache des Mac OS, in Berührung kommen dürften,
      haben wir einen kompakten Schnellkurs hinzugefügt, um alle Leser auf den gleichen Stand
      zu bringen. Sie werden merken, dass wir (absichtlich) nicht den gesamten Sprachumfang
      einsetzen, sodass sich die Grundlagen schnell verinnerlichen lassen. Daher setzen wir auch
      keine weiteren Kenntnisse über das iPhone iOS und dessen Frameworks voraus. Wir wer-
      den hier allerdings auch nicht in die Tiefe gehen und uns nur auf die für die Spiele-
      entwicklung wesentlichen Bestandteile konzentrieren. Wer ausufernde Erläuterungen der
      zahlreichen APIs, zur Bedienung von Xcode oder gar des Interface Builders und zur GUI-
      Gestaltung sucht, kann parallel zu einem der zahlreichen App-Entwicklungsbücher greifen.

                                                                                                       5
Sie können auch lesen