Réponses:
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.
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.
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.
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.