Spiele entwickeln und die Herangehensweise

  • Antworten:13
OverBurned
  • Forum-Beiträge: 49

27.02.2015, 08:19:01 via App

Hallo Community,

Ihr kennt sicherlich alle so Spiele wie 2048, 1010! oder Flappy Birds. Ich würde gerne lernen wie man so etwas programmiert und vor allem die Grafiken darstellt. Dabei sollen die eben genannten Spiele aber nur grobe Beispiele sein. Mir geht es hauptsächlich um die Grundlagen, die man für die Programmierung braucht und wie das ganze mit der graphischen Darstellung funktioniert.

Was sollte ich dafür eurer Meinung nach lernen oder was währe die beste Herangehensweise?

LG

Antworten
Gelöschter Account
  • Forum-Beiträge: 95

27.02.2015, 10:37:48 via App

das würde mich auch sehr interessieren :)
hoffendlich bekommst du schnell ne antwort :-)

Antworten
Leon R.
  • Forum-Beiträge: 2.683

27.02.2015, 11:39:10 via App

Um Grundlagen zu verstehen kann ich dir die Bücher "Android Programmierung für Dummies" und "Java ist nicht nur eine Insel" ans Herz legen.
Grundsätzlich sollte man sich vor der Programmierung von Android mit Java beschäftigt haben. Ist die Programmiersprache auf der Android aufbaut.

For every action, there is an equal and opposite reaction.

Antworten
OverBurned
  • Forum-Beiträge: 49

27.02.2015, 12:36:23 via App

die generellen Grundlage kann ich schon :)
auch bei Java hab ich einige Kenntnisse! Aber wie geht der ganze graphische Teil und zb bei 2048 das mit dem verschieben? weil man ja nicht auf einen Button klickt

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

27.02.2015, 13:23:43 via Website

Der graphische Teil wird hauptsächlich in xml geschrieben. Da findest du bei allen "Einsteiger" Tutorials für Android etwas.
In Android Studio (auch in Eclipse) kann man dann einfach Elemente (wie z.B. Buttons, Textfelder, Eingabefelder,...) auf ein Layout ziehen und daraus wird dann eine xml Datei "generiert". Um das ganze Design aber nach den eigenen Wünschen besser gestalten zu können, sollte man schon verstehen was da in der xml Datei steht und was man das wie bearbeiten kann (ist auch gar nicht so schwer).

Bei dem Verschieben, würde ich mal so tippen, ist ein OnTouchListener auf dem Layout und je nachdem wie man dann wischt wird das Layout verändert.

— geändert am 27.02.2015, 13:24:44

Antworten
OverBurned
  • Forum-Beiträge: 49

27.02.2015, 17:22:46 via App

Kennst du ein gutes Tutorial um den Kram mit xml zu lernen?

Antworten
Jim Jupiter
  • Forum-Beiträge: 36

01.03.2015, 16:19:33 via Website

Uwe Post - Spieleprogrammierung mit Android Studio: Programmierung, Grafik & 3D, Sound, Special Effects (Galileo Computing) / 2014

34,90 Euro

Vielleicht ist das ja die richtige Lektüre, um mal reinzuschnuppern.

— geändert am 01.03.2015, 16:21:08

Antworten
Jim Jupiter
  • Forum-Beiträge: 36

04.03.2015, 21:06:37 via Website

Oder was englisches

Learning Java by building Android Games - John Horton

Antworten
Nils W.
  • Forum-Beiträge: 3

05.03.2015, 11:58:52 via Website

Also ich bin auch noch relativ neu in der Thematik - vor allem bezogen auf Apps-Programmierung.
Ich habe mich auch recht lange dafür interessiert und jetzt vor einer Woche meine erste App veröffentlicht
(Evolute - play.google.com/store/apps/details?id=com.crowgames.evolute.evolute).

Wenns um grafisches geht, dass die Grenzen von Knöpfen und Bildern übersteigt (z.B. FlappyBird oder eben Evolute), solltest du dir OpenGL (ES) beibringen.
OpenGL ist was grafisches angeht ultimativ mächtig - ist leider deswegen aber auch etwas schwieriger rein zu kommen.

Ich persönlich besitze OpenGL ES 2 - A Quick-Start Guide von Kevin Brothaler. Das Buch hilft aber vor allem meiner Meinung nach von OpenGL auf OpenGL ES umzusteigen. Mein Weg war erstmal mit OpenGL am PC zu experimentieren (das ist eine einfachere Umgebung) und dann nach einer Weile mich bei Android an die GLSurfaceView zu wagen. Ich würde es auch so empfehlen.

Prinzipiell lernt man das aber auf jeden Fall nicht von heute auf morgen - meine ersten Versuche habe ich noch 100%ig mit Canvas gemacht... und da stecken viele Stunden Arbeit drinnen. Wenn man sich Evolute anschaut, wirkt das ja noch recht einfach, aber das waren (zumindest für mich) 4 Monate Arbeit...

Also das wichtigste ist viel herumexperimentieren und sich nicht entmutigen zu lassen ;)

EDIT:
Mir ist gerade gekommen: Es gibt hier auf Android Pit auch eins der besten und ausführlichen Tutorials, die ich zu dem Thema kenne. Mir persönlich aht das sehr geholfen:
https://www.nextpit.de/de/android/wiki/view/Spieleentwicklung_101

— geändert am 05.03.2015, 12:07:36

Antworten
Sven R.
  • Forum-Beiträge: 1.904

05.03.2015, 16:58:04 via App

Omg!

  1. Vielen Dank für den Link! Ich wusste nicht, dass das AndroidPit Wiki doch so gute Beiträge hat.
  2. Scheiße ist OpenGL kompliziert! Ich habe mir das schon mal angeguckt. Darum die Frage: Ist es lohnenswerter OpenGL zu verwenden als einfach ein normales Canvas?

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Nils W.
  • Forum-Beiträge: 3

05.03.2015, 20:13:49 via Website

Also das hängt ganz davon ab was du machen willst - meiner Erfahrung nach kann man schon sehr interessante Dinge mit Canvas machen, aber zwei große Dinge hindern einen in vielen Fällen daran was wirklich schönes draus zu machen:
1) Die Performance ist nicht gerade optimal - eigentlich ist es halt für nen Spiel nicht unbedingt ausgelegt
2) Die Möglichkeiten sind sehr beschränkt - das höchste der Gefühle ist da noch Bilder zu zeichnen (und auch das hat schon die ein oder andere Tücke)

Wenn du fragst ob es sich lohnt OpenGL zu verwenden, dann würde ich auf jeden Fall ja sagen. Hast du ersteinmal halbwegs verstanden wie Open GL funktioniert, stehen dir wirklich alle Türen offen - du kannst wirklich so gut wie alles umsetzen, was du dir vorstellen kannst.
image
image

Hier zwei Beispiele aus der App - die ich da gemacht habe:
1) den ganzen Bildschirm invertieren, eine Regenbogen-Farbraumverschiebung, den Bildschirm schwabbeln lassen und das gesamte Bild semi transparent Spiegeln und das ganze mit vieleicht 20 Zeilen OpenGL Shader Code
2) den Bildschirm zersplittert wirken lassen: 4 Zeilen Code im Shader

Also meiner Meinung nach ist OpenGL - wenn man es durchsteigt unglaublich mächtig und lohnenswert :D

Antworten
Sven R.
  • Forum-Beiträge: 1.904

05.03.2015, 20:39:01 via App

Ok, geil. Mich hat nur die Darstellung des Dreiecks im Tutorial erschrocken. Allerdings würde ich dann doch eher eine Engine nehmen (zb. Libgdx)

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
Nils W.
  • Forum-Beiträge: 3

05.03.2015, 21:59:22 via Website

Ja OpenGL (2+) - hat sozusagen eins der anstrengendsten Hello-Worlds, die ich kenne :) Da muss man sehr viel erstmal einrichten ...
Mit Engines habe ich keine Erfahrungen - sieht aber tatsächlich sehr interessant aus - vlt schaue ich mir da auch mal eine an :D

Antworten