Para un juego 2D en el iPhone, ¿sería mejor usar OpenGL o CoreGraphics?

8

Estoy planeando desarrollar mi primer juego para iPhone, y quería saber si debería usar OpenGL o CoreGraphics para un juego en 2D. Un resumen de los beneficios también sería útil.

Editar: configure esto para el wiki de la comunidad ya que la respuesta será demasiado subjetiva

revs esde84
fuente

Respuestas:

5

Depende de lo que estés construyendo. Incluso puede salirse con la suya usando Core Animation si no es intensivo en gráficos (mis dos últimos juegos se basaron en aprovechar Core Animation).

Si planeas empujar muchos gráficos, te recomiendo Cocos2D para tu juego 2D. Está basado en OpenGL ES y hasta ahora realmente lo estoy disfrutando. La curva de aprendizaje ha sido relativamente suave.

  • Integrado Box2D o Chipmunk .
  • Manejo de escena
  • Ya se han incorporado algunos efectos (incluso para transiciones)
  • Sístema de partículas
  • Servidor de alta puntuación (CocosLive) que puede utilizar de forma gratuita
  • Soporte de representación de texto

Y mucho más. Lo descargaría y jugaría con algunas de las muestras que han incluido que demuestran gran parte de su funcionalidad.

David McGraw
fuente
1
+1 para cocos2d. Es una muy buena opción. Muchos juegos lo usan ahora: cocos2d-iphone.org/games
Colin Gislason
1

Desde mi experiencia, la mayoría de los juegos 2D en el iPhone están escritos en OpenGL ES. Su demo de juego en 2D también está escrita en OpenGL. Me gustaría ir con OpenGL, aunque solo sea porque es más probable que encuentres muchos más recursos para problemas relacionados con el juego en OGL en lugar de CoreGraphics.

También hay algunas características de nivel de sistema operativo que hacen que trabajar en OpenGL sea menos doloroso que en algunas otras plataformas. Por ejemplo, puede usar la clase NSString para renderizar en un contexto OpenGL y obtener soporte completo, dinámico y Unicode de inmediato.

Tétrada
fuente
1

En pocas palabras, se centran en diferentes propósitos.

CoreGraphics: composición y gráficos vectoriales. Si solo los necesita, CoreGraphics es una buena opción.

CoreAnimation: anima capas de objetos 2D.

OpenGL se encuentra debajo de esos dos (y CoreImage / CoreVideo, también). En virtud de ser de nivel inferior, le da un mayor grado de control. Y requiere que hagas más trabajo al implementar cosas.

Entonces, realmente, depende de lo que necesites hacer. Y tan pronto como esté considerando portar ese juego a otras plataformas, OpenGL parece mucho más atractivo, ya que es compatible en casi todas partes.

Rachel Blum
fuente