SPIELE ENTWICKELN FÜR IPAD, IPHONE UND IPOD TOUCH - THOMAS LUCKA
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
IC CKS HTIG RÜ T iOS 4 BE SPIELE ENTWICKELN FÜR iPAD, iPHONE UND iPOD TOUCH thomas LUCKA EMPFOHLEN VON
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