Würde ich für ein 2D-Spiel auf dem iPhone besser OpenGL oder CoreGraphics verwenden?

8

Ich habe vor, mein erstes iPhone-Spiel zu entwickeln, und wollte wissen, ob ich OpenGL oder CoreGraphics für ein 2D-Spiel verwenden soll. Ein Überblick über die Vorteile wäre ebenfalls hilfreich.

Bearbeiten: Legen Sie dies für das Community-Wiki fest, da die Antwort zu subjektiv ist

esde84
quelle

Antworten:

5

Es hängt davon ab, was Sie bauen. Möglicherweise können Sie sogar mit Core Animation davonkommen, wenn es nicht grafikintensiv ist (meine letzten beiden Spiele basierten darauf, Core Animation zu nutzen).

Wenn Sie vorhaben, viele Grafiken zu veröffentlichen, würde ich Cocos2D für Ihr 2D-Spiel wärmstens empfehlen . Es basiert auf OpenGL ES und bisher macht es mir wirklich Spaß. Die Lernkurve verlief relativ reibungslos.

  • Integrierte Box2D oder Chipmunk .
  • Szenenmanagement
  • Nicht wenige Effekte sind bereits eingebaut (auch für Übergänge)
  • Partikelsystem
  • High Score Server (CocosLive), den Sie kostenlos nutzen können
  • Unterstützung für die Textwiedergabe

Und vieles mehr. Ich würde es herunterladen und mit einigen der Beispiele spielen, die sie enthalten haben, die einen Großteil ihrer Funktionalität demos.

David McGraw
quelle
1
+1 für cocos2d. Es ist eine sehr gute Option. Viele Spiele verwenden es jetzt: cocos2d-iphone.org/games
Colin Gislason
1

Nach meiner Erfahrung sind die meisten 2D-Spiele auf dem iPhone in OpenGL ES geschrieben. Ihre 2D-Spieldemo ist ebenfalls in OpenGL geschrieben. Ich würde mich für OpenGL entscheiden, schon allein deshalb, weil Sie in OGL eher viel mehr Ressourcen für spielbezogene Probleme finden als in CoreGraphics.

Es gibt auch einige Funktionen auf Betriebssystemebene, die das Arbeiten in OpenGL weniger schmerzhaft machen als auf einigen anderen Plattformen. Sie können beispielsweise die NSString-Klasse verwenden, um in einen OpenGL-Kontext zu rendern und von Anfang an vollständige, dynamische Unicode-Unterstützung zu erhalten.

Tetrad
quelle
1

Kurz gesagt, sie konzentrieren sich auf verschiedene Zwecke.

CoreGraphics: Compositing und Vektorgrafiken. Wenn Sie nur diese benötigen, ist CoreGraphics eine gute Wahl.

CoreAnimation: Animieren Sie Ebenen von 2D-Objekten.

OpenGL befindet sich unter diesen beiden (und auch CoreImage / CoreVideo). Durch die niedrigere Stufe erhalten Sie ein höheres Maß an Kontrolle. Und erfordert, dass Sie bei der Implementierung mehr Arbeit leisten.

Es hängt also wirklich davon ab, was Sie tun müssen. Und sobald Sie überlegen, dieses Spiel auf andere Plattformen zu portieren, sieht OpenGL viel attraktiver aus, da es praktisch überall unterstützt wird.

Rachel Blum
quelle