Simples Spiel entwickeln

Hallo,
ich wuerde gerne ein simples Spiel entwickeln.
Nur haette ich ein paar Fragen die ich unten aufreihen werde.

  1. Welche Gameengine empfiehlt sich fuer 2d Spiele?
  2. Warum soll man Sprites nutzen wenn man auch Imagee benutzen kann? Bzw gibt es einen Unterschied?
  3. Welche Bildgroesse sollen Objekte haben? Denn bei zu vielen grossen Images wird ja das Spiel recht gross.

Hallo,

  1. Das kommt drauf an, was dein Spiel machen soll, geht es nur um ein Spiel es geht. Ist es rein Text basiert, kannst du es einfach mit der layout.XML Datei gestalten. Ist es ein 3D Spiel mit komplizierter Physik,… sollte es eine Performante 3D-Engin sein. Willst du einfach nur 2D Objekte auf dem Bildschirm darstellen, kann man das einfach mit Canvas machen. Man muss dann halt seine eigene Kollisionserkennung, Physik (bei z.B. Jump&Run) erstellen. (Ansonsten einfach mal googlen)
  2. Das ist dir Überlassen, kannst dein Objekt Sprit nenne, dieses beinhaltet dann das Image, sowie Informationen wo es auf dem Bildschirm dargestellt werden muss
  3. Auch das ist dir überlassen, ich persönlich würde so klein wie möglich, jedoch so groß wie nötig die Bilddateien machen.
    Nur 11 Pixel Dateien sind nicht wirklich gut zu erkennen (immer nur ein Farbtupfer) 4k4k Bilder können sicherlich nicht komplett auf deinem Android Bildschirm dargestellt werden und werden dann wahrscheinlich zur Darstellung verkleinert (können also gleich kleiner sein)

Ich hab zwar noch nicht soviel mit Spielen gemacht (für Android noch gar nichts), aber wenn einen die Richtung empfielt, dann würde ich direkt auf eine Engine setzen. Für meine kleinen Projekte nutze ich dafür gerne Unity3D (auch Android-Fähig und ebenso für 2D-Games geeignet. Hatte damit mal ein einfaches 2D-Game of Life umgesetzt).

Speziell für für 2D gibt es Slick2D.

Ist es auch möglich Slick2D ganz normal bei Android zu verwenden?

Ich hab zwar selbst noch nicht wirklich was damit gemacht, aber mit libgdx soll die Portierung zu anderen Plattformen relativ einfach sein.
Hab aber wie gesagt bisher noch keine eigenen Erfahrungen damit.

Zu 3: Ich denke über die Größe der Bilder musst du dir nicht allzu viele Gedanken machen. An Speicher mangelt es nur selten, und ein “simples” Spiel wird wohl nicht mehr als 10MB (die niemanden großartig jucken) einnehmen…

Schon mal Android programmiert? Das ist und war immer schon ein Thema

Früher gab es ein 64MB RAM Limit per App - keine Ahnung ob das noch stimmt. Der Standard mit dem man rechnen darf für eine App sind 16MB. Kann natürlich mehr sein, aber das ist von Device zu Device unterschiedlich. (Kann hiermit abgefragt werden.) Bei der Fragmentierung von Android ist’s schon ein Kunststück keine Probleme mit dem Speicher zu bekommen. Und natürlich spielt da auch die Größe der Bilder eine Rolle.

Abgesehen davon, dass viele Benutzer - je nach Größe der App - abspringen bevor sie, sie herunter geladen haben.

Ich würde gerne die AndEngine benutzten. (AndEngine GLES2) Nur habe ich das Problem, dass ich nicht die richtigen Dateien finde damit ich die Lib einfügen kann. Wenn ich es runterlade sind unter dem Ordner “Libs” nur .so Dateien und ich kann damit nichts anfangen, weil ich es bis jetzt immer nur mit .jar Dateien gemacht habe.
Ich hoffe ich könnt mir weiterhelfen…

so-Dateien sind das Linux-Äquivalent zu DLLs, und werden (natürlich nur unter Linux) von manchen jars benötigt

@Tomate_Salat :
Seit wann unterstützt Unity3D Java?

[QUOTE=Krypton]@Tomate_Salat :
Seit wann unterstützt Unity3D Java?[/QUOTE]

Tut es nicht (stimmt, hätte ich dazu schreiben sollen). Hatte mit vorher auch andere Engines angeschaut gehabt (JMonkey z.B allerdings hatte ich damals nicht den Fokus auf mobile Entwicklung), aber für den Anfang war mir Ergebnisorientiertes Lernen wichtiger. Und da kommste mit einer GameEngine wie Unity3D einfach schneller zu irgendwas (bei Unity3D laufen Sachen halt out-of-the-box, was du bei java-engines selber codieren musst [zumindest so nach dem was ich bisher gesehen hab]). Als Sprachen hast du dort C#, JavaScript und BOO zur auswahl (ich hab mich für C# entschieden).

Wenn du unbedingt Java verwenden möchtest (war bei mir am Anfang nicht anders ;)), dann wird Unity3D wohl nichts für dich sein.