Per un gioco 2D su iPhone dovrei usare OpenGL o CoreGraphics?


8

Sto pensando di sviluppare il mio primo gioco per iPhone e volevo sapere se avrei dovuto usare OpenGL o CoreGraphics per un gioco 2D. Sarebbe utile anche uno schema dei benefici.

Modifica: impostalo per il wiki della community poiché la risposta sarà troppo soggettiva

Risposte:


5

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.

  • Box2D integrato o Chipmunk .
  • Gestione della scena
  • Alcuni effetti già integrati (anche per le transizioni)
  • Sistema di particelle
  • High Score Server (CocosLive) che puoi usare gratuitamente
  • Supporto per il rendering del testo

E altro ancora. Lo scaricarei e giocherei con alcuni dei campioni che hanno incluso che dimostrano gran parte della sua funzionalità.


1
+1 per cocos2d. È un'ottima opzione. Molti giochi lo usano ora: cocos2d-iphone.org/games
Colin Gislason,

1

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.


1

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.