Risposte:
Dipende da cosa stai costruendo. Potresti anche essere in grado di cavartela semplicemente usando Core Animation se non è ad alta intensità grafica (i miei ultimi due giochi erano basati sul trarre vantaggio dall'animazione Core).
Se hai intenzione di spingere molta grafica, consiglio vivamente Cocos2D per il tuo gioco 2D. È basato su OpenGL ES e finora mi sto davvero divertendo. La curva di apprendimento è stata relativamente regolare.
E altro ancora. Lo scaricarei e giocherei con alcuni dei campioni che hanno incluso che dimostrano gran parte della sua funzionalità.
Dalla mia esperienza, la maggior parte dei giochi 2D su iPhone sono scritti in OpenGL ES. La loro demo del gioco 2D è anche scritta in OpenGL. Andrei con OpenGL, anche solo perché hai maggiori probabilità di trovare molte più risorse per i problemi relativi al gioco in OGL anziché in CoreGraphics.
Ci sono anche alcune funzionalità a livello di sistema operativo che rendono il lavoro in OpenGL meno doloroso rispetto ad alcune altre piattaforme. Ad esempio, è possibile utilizzare la classe NSString per eseguire il rendering in un contesto OpenGL e ottenere il supporto Unicode completo e dinamico.
In breve, si concentrano su scopi diversi.
CoreGraphics: Compositing e grafica vettoriale. Se hai solo bisogno di quelli, CoreGraphics è una buona scelta.
CoreAnimation: anima i livelli di oggetti 2D.
OpenGL si trova al di sotto di questi due (e anche CoreImage / CoreVideo). In virtù del livello inferiore, ti dà un maggior grado di controllo. E richiede di fare più lavoro quando si implementano le cose.
Quindi davvero, dipende da cosa devi fare. E non appena stai valutando il porting di quel gioco su altre piattaforme, OpenGL sembra molto più attraente, poiché è supportato praticamente ovunque.