Pour un jeu 2D sur iphone, est-ce que je ferais mieux d'utiliser OpenGL ou CoreGraphics?

8

Je prévois de développer mon premier jeu iPhone et je voulais savoir si je devrais utiliser OpenGL ou CoreGraphics pour un jeu 2D. Un aperçu des avantages serait également utile.

Modifier: définissez cela pour le wiki de la communauté car la réponse sera trop subjective

esde84
la source

Réponses:

5

Cela dépend de ce que vous construisez. Vous pouvez même être en mesure de vous en sortir en utilisant simplement Core Animation si cela ne demande pas beaucoup de graphisme (mes deux derniers jeux étaient basés sur le fait de profiter de Core Animation).

Si vous prévoyez de pousser beaucoup de graphiques, je recommanderais fortement Cocos2D pour votre jeu 2D. Il est basé sur OpenGL ES et jusqu'à présent, je l'apprécie vraiment. La courbe d'apprentissage a été relativement fluide.

  • Box2D ou Chipmunk intégré .
  • Gestion de scène
  • Beaucoup d'effets déjà intégrés (même pour les transitions)
  • Système de particules
  • Serveur High Score (CocosLive) gratuit à utiliser
  • Prise en charge du rendu de texte

Et beaucoup plus. Je le téléchargerais et jouerais avec certains des échantillons qu'ils ont inclus, qui démontrent une grande partie de ses fonctionnalités.

David McGraw
la source
1
+1 pour cocos2d. C'est une très bonne option. Beaucoup de jeux l'utilisent maintenant: cocos2d-iphone.org/games
Colin Gislason
1

D'après mon expérience, la plupart des jeux 2D sur iPhone sont écrits en OpenGL ES. Leur démo de jeu 2D est également écrite en OpenGL. J'irais avec OpenGL, ne serait-ce que parce que vous êtes plus susceptible de trouver beaucoup plus de ressources pour les problèmes liés au jeu dans OGL au lieu de CoreGraphics.

Il existe également des fonctionnalités au niveau du système d'exploitation qui rendent le travail dans OpenGL moins pénible que sur quelques autres plates-formes. Par exemple, vous pouvez utiliser la classe NSString pour effectuer un rendu dans un contexte OpenGL et obtenir une prise en charge Unicode complète et dynamique dès le départ.

Tetrad
la source
1

En un mot, ils se concentrent sur différents objectifs.

CoreGraphics: Compositing et graphiques vectoriels. Si vous en avez juste besoin, CoreGraphics est un bon choix.

CoreAnimation: animez des couches d'objets 2D.

OpenGL se trouve en dessous de ces deux (et CoreImage / CoreVideo, aussi). En raison de son niveau inférieur, il vous donne un plus grand degré de contrôle. Et vous oblige à faire plus de travail lors de la mise en œuvre des choses.

Donc, vraiment, cela dépend de ce que vous devez faire. Et dès que vous envisagez de porter ce jeu sur d'autres plates-formes, OpenGL semble beaucoup plus attrayant, car il est pris en charge à peu près partout.

Rachel Blum
la source