Spieleentwicklung für Android 101

  • Antworten:33
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 79

08.01.2010, 16:29:34 via Website

Hi,

Im Wiki von AndroidPIT gibts jetzt ein neues Tutorial welches noch in der Entstehung ist. Es bietet eine Einführung in das Thema Spieleprogrammierung und umfasst folgende Inhalte:

* Allgemeines zur Spielentwicklung
* Eingabe über Touch-Screen und Accelerometer
* OpenGL
* Sound & Musik
* Space Invaders Clone

Ihr könnt es hier finden. Begleitend zum Tutorial gibt es auch jede Menge Code. Dieser wird bei Google Code gehosted und ist unter der Addresse http://code.google.com/p/android-gamedev/ erreichbar. Zum herunterladen des Codes benötigt ihr einen SVN Client. Für Windows funktioniert das ganze so:

Einen SVN Client für windows bekommst du unter http://tortoisesvn.net/downloads. Dieser installiert Explorer Extensions. Hast du ihn fertig installiert gehst du am besten in ein neues Verzeichnis im Windows Explorer, klickst mit der rechten Maustaste und wählst "SVN Checkout" aus dem Menü. Ein neuer Dialog öffnet sich. Hier musst du bei URL Repository "http://android-gamedev.googlecode.com/svn/trunk/" angeben und kannst eine Zeile darunter das Zielverzeichnis definieren. Schließlich auf OK drücken und der sogenannte Checkout sollte beginnen. Dabei wird von Googles Server die aktuellste Version des Tutorial Codes heruntergeladen. Sollte im weiteren Verlauf der Code von mir erweitert werden so "commite" ich diesen wieder auf den Server. Du kannst dir dann den neuesten Code ganz einfach holen: Windows Explorer auf, rechter Mausklick auf das Verzeichnis in das du den Code ausgechecked hast und SVN Update auswählen. Das war's auch schon.

Viel Spass und gutes gelingen bei euren Spieleunternehmungen!

— geändert am 08.01.2010, 16:31:25

Antworten
  • Forum-Beiträge: 79

08.01.2010, 19:20:14 via Website

Neuestes Update erklärt folgende Dinge:

* Klassen für Meshes und Texturen
* Projektionen
* Kamera & Z-Buffer

Die Kapitel Projektionen und Kamera & Z-Buffer sind wahrscheinlich harte Brocken. Ich bitte euch inständig um Feedback damit ich sie eventuell verbessern kann. Da mir all die Dinge schon lange in Fleisch und Blut übergegangen sind habe ich ws. den Blick für das wesentliche nicht mehr.

Als nächstes kommen im OpenGL Kapitel noch:

* Licht & Schatten
* Transformationen

Damit sollte das Thema OpenGL dann gegessen sein. Das Kapitel Sound und Musik wird relativ kurz sein da dies unter Android extrem einfach funktioniert womit ich dann am Wochenende noch hoffentlich auf das Kapitel Space Invaders kommen werde. Als kleine Überraschung: Wir werden es in 3D machen :)

Schön wäre es wenn mir jemand orthographisch unter die Arme greifen könnte. Ich hatte noch nicht die Zeit Korrektur zu lesen, das Ding wird also vor Fehlern nur so strotzen (entgegen der Richtlinien des Wiki, mea culpa).

— geändert am 08.01.2010, 19:22:19

Antworten
  • Forum-Beiträge: 79

09.01.2010, 01:12:00 via Website

Die Kapitel Licht & Schatten und Transformationen ist abgeschlossen. Damit ist passend zum Wochenende das OpenGL Kapitel weitestgehend abgeschlossen.

Als nächstes:

* Obj Dateien laden
* SoundPool und MediaPlayer

Beides kurze Kapitel, dann geht's los mit Space Invaders.

— geändert am 09.01.2010, 15:14:26

Antworten
  • Forum-Beiträge: 79

10.01.2010, 01:26:00 via Website

Das Obj Datei Lade Kapitel ist fertig, war auch recht kurz da ich nicht erkläre wie das Format ausschaut sondern nur wie man die Helper Klasse verwendet. Link zum Format gibts im Artikel, für die die selbst einen Loader schreiben will. Ein kleiner Screenshot. Meine Modelierfähigkeiten sind leider etwas begrenzt :)

Antworten
  • Forum-Beiträge: 79

10.01.2010, 13:17:41 via Website

Das Kapitel SoundPool und MediaPlayer ist fertig. Entsprechende Beispiele gibts natürlich im Google Code Repository. Viel Spass damit. Als nächstes

Space Invaders!

Antworten
  • Forum-Beiträge: 79

13.01.2010, 15:17:19 via Website

Nach einer kleinen Pause habe ich das Schreiben am Tutorial wieder aufgenommen.

Ein kleiner neuer Teil ist dazu gekommen: Text Rendering. Ähnlich wie bei Obj-Meshes laden und zeichnen erkläre ich den Prozess nur im Überblick, bei mehr Interesse verweise ich auf den Source selbst der eh relativ klein ist.

Antworten
  • Forum-Beiträge: 699

13.01.2010, 16:12:24 via Website

Da du hier ja bisher noch keine Antwort bekommen hast:

Ich finde toll was du da machst auch wenn ich leider nicht programmieren kann :(
Hoffe dass einige was damit anfangen können!

Antworten
  • Forum-Beiträge: 79

14.01.2010, 01:12:11 via Website

Danke für die netten Worte :)

Ich habe das Spiel jetzt einmal fertig programmiert. Das APK mit allen Beispielen und dem Spiel findet ihr unter http://file-pasta.com/file/975061035/android-gd.apk. Ich konnte es jetzt nur auf Droid und Hero testen, die Performance wird auf G1 und ähnlichem nicht sonderlich sein. Auch muss ich die Sleep Rate im OnTouch Event noch ein wenig raufsetzen. Ansonsten werd ichs aber so belassen.

Antworten
  • Forum-Beiträge: 79

14.01.2010, 16:22:05 via Website

Die ersten Kapitel des Abschnitts Space Invaders sind fertig. Es umfasst die Analyse des Originals, die Definition des Spielfelds des Clones sowie eine detailierte Beschreibung aller Klassen der Simulation.

Es folgen noch die Kapitel zum Rendering der Simulation, dem Aufbau des Game Loops sowie die Organisation der 3 Screen Spiel Start, Game und Game Over. Damit sollte das Tutorial dann abgeschlossen sein.

Wie immer bin ich für Feedback dankbar. Fragen und Beschwerden an mich!

Antworten
  • Forum-Beiträge: 79

15.01.2010, 15:11:42 via Website

Jetzt sind auch die Kapitel zum Space Invaders Clone fast fertig. Einzig das Kapitel zur letzten Activity fehlt noch. Das kann ich erst heute am Abend fertig stellen. Ich werde das ganze dann auch noch auf Englisch übersetzen. Wenn sich jemand als Lektor anbieten würde wäre ich sehr erfreut :). Die englische Version werde ich dann auch ins Wiki stellen so das nicht gegen Richtlinien verstößt.

— geändert am 18.01.2010, 13:44:26

Antworten
  • Forum-Beiträge: 79

18.01.2010, 13:39:21 via Website

Das Tutorial ist jetzt fertig. Ich werde vll. den einen oder anderen Teil im Verlauf der nächsten Wochen noch ein wenig verfeinern. Feedback, Korrekturen und Drohungen an mich! Auch wäre es interessant wenn soviel wie möglich Menschen das Spiel auf ihren Geräten ausprobieren und hier Rückmeldung erstatten ob und wie gut es funktioniert. Ich habe "nur" ein Hero und ein Milestone sowie den Emulator, kann also auch nur darauf testen.

Ein APK des ganzen kann unter http://android-gamedev.googlecode.com/files/android-gamedev-1.1.apk heruntergeladen werden.

— geändert am 18.01.2010, 16:12:57

Antworten
  • Forum-Beiträge: 79

28.01.2010, 21:52:41 via Website

Ich erlaub mir an dieser Stelle auch noch schnell Werbung für meinen Blog zu machen. Zu finden ist der unter http://www.badlogicgames.com. Der ist auf Englisch geschrieben und wird in den nächsten Wochen mit einer Unmenge an weiteren Game Development Artikeln gefüllt werden. Wenn es auch unter euch Schreiber gibt die dort mitmachen wollen einfach bei mir melden.

Over and out.

Antworten
  • Forum-Beiträge: 42

11.03.2010, 00:09:24 via Website

Klasse Arbeit !

Für Einsteiger hätte ich zwar erstmal mit 2D angefangen, aber wer vor hat Spiele zu entwicklen, wills ja auf die harte Tour B)

Antworten
  • Forum-Beiträge: 16

09.04.2010, 11:32:16 via Website

Gefällt mir auch gut was du machst.
Auch wenn mir dazu das technische verständnis fehlt und ich deswegen nichts programmieren kann, so spiele ich doch gerne mal etwas zur Kurzweile.

Antworten
  • Forum-Beiträge: 1

22.04.2010, 15:28:48 via Website

Hammer!

Werde zwar ewig brauchen bis ich da durch bin, aber genau was ich gesucht habe!

Danke!

Antworten
  • Forum-Beiträge: 337

24.04.2010, 13:36:44 via Website

Richtig cool.
Werd mich mal die Tage dadurch arbeiten damit ich zumindestens mal ne Idee habe wie man solche Spiele programmiert ;)

Danke dir.

Antworten
  • Forum-Beiträge: 467

06.10.2010, 19:12:28 via Website

Mal ne frage, weil wenn ich z.b. in wings3d (wie in deinem objsample) etwas baue und dann das auch das zugehörige png bild scpeichere wird in wings 3d alles richtig angezeigt mit farben und so wie ich halt die bild datei editiere! dann speichere ich die .wings ab und dann noch über 'export selected' dann wird mir in meiner app alles komplett versetzt mit den farben dargestellt z.b da wo die farbe von dem einem eck ist ist etwas komplett anderes! was mache ich falsch?
sorry wenn das nicht so direkt hier rein passt!

"Hard work beats talent, when talent fails to work hard"

Antworten
  • Forum-Beiträge: 63

17.11.2010, 22:40:09 via Website

Hallo Mario,

ich habe mir deine Quelltexte downgeloaded und in meinem HTC Legend 2.1 laufen lassen.
Schon bei dem Beispiel Triangle Sample wird kein weißes Dreieck erzeugt. Stattdessen ein bunter Mix aus Pixeln über den gesamten Bildschirm.
So, als wäre da eine Methode nicht aktuell oder aber die Library. Bei den anderen Beispielen ist es genau so.
Auch funktioniert das Spiel nicht. Denn das eigene Raumschiff - das ja im
Vordergrund sein sollte - schwebt im Hintergrund. Irgendwas liegt da mit der Grafik im Argen.

Gibt es von deinen Quelltexten auch eine aktuelle Fassung oder eine überarbeitete.

Besten Dank
Duckemai

Antworten
  • Forum-Beiträge: 180

30.11.2010, 13:49:47 via Website

Duckemai

Schon bei dem Beispiel Triangle Sample wird kein weißes Dreieck erzeugt. Stattdessen ein bunter Mix aus Pixeln über den gesamten Bildschirm.
Duckemai
Versuch mal das bei jedem zeichnen am Anfang der Methode:
1//Löscht den Bildschirm
2gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
3
4//Sagt openGL wie groß die fläche zum zeichnen ist
5gl.glViewport( 0, 0, activity.getViewportWidth(), activity.getViewportHeight() );

Und vielen vielen Dank an Mario für dieses Turorial. Ich hab erst heute diesen Beitrag gefunden und das Tutorial schon vor ein paar Monaten. Ich wollte schon lange openGL lernen und letzten Sommer hab ich mich dann Dank diese Tutorials drüber getraut :grin: Es ist wirklich ein sehr gutes Tutorial. Werd auch bald ein Spiel veröffentlichen, dass ich mit openGL geschieben hab :D

Antworten

Empfohlene Artikel