Para um jogo 2D no iphone, eu usaria melhor o OpenGL ou CoreGraphics?

8

Estou planejando desenvolver meu primeiro jogo para iPhone e queria saber se devo usar o OpenGL ou CoreGraphics para um jogo em 2D. Um resumo dos benefícios também seria útil.

Editar: defina isso para o wiki da comunidade, pois a resposta será muito subjetiva

esde84
fonte

Respostas:

5

Depende do que você está construindo. Você pode até conseguir usar apenas o Core Animation se não for intensivo em gráficos (meus últimos dois jogos foram baseados em aproveitar o Core Animation).

Se você planeja enviar muitos gráficos, eu recomendo o Cocos2D para o seu jogo em 2D. É baseado no OpenGL ES e até agora estou gostando muito. A curva de aprendizado tem sido relativamente suave.

  • Box2D ou Chipmunk integrado .
  • Gerenciamento de cena
  • Alguns efeitos já incorporados (mesmo para transições)
  • Sistema de partículas
  • Servidor High Score (CocosLive) gratuito para você usar
  • Suporte para renderização de texto

E muito mais. Eu iria baixá-lo e jogar com alguns dos exemplos que eles incluem, que demonstram grande parte de sua funcionalidade.

David McGraw
fonte
11
+1 para cocos2d. É uma opção muito boa. Muitos jogos usam agora: cocos2d-iphone.org/games
Colin Gislason
1

Pela minha experiência, a maioria dos jogos 2D no iPhone são escritos em OpenGL ES. A demo do jogo em 2D também está escrita em OpenGL. Eu iria com o OpenGL, apenas porque é mais provável que você encontre muito mais recursos para problemas relacionados a jogos no OGL, em vez do CoreGraphics.

Existem também alguns recursos no nível do sistema operacional que tornam o trabalho no OpenGL menos doloroso do que em algumas outras plataformas. Por exemplo, você pode usar a classe NSString para renderizar em um contexto OpenGL e obter suporte completo e dinâmico a Unicode logo de cara.

Tetrad
fonte
1

Em poucas palavras, eles se concentram em propósitos diferentes.

CoreGraphics: Composição e gráficos vetoriais. Se você precisar apenas deles, o CoreGraphics é uma boa escolha.

CoreAnimation: animar camadas de objetos 2D.

O OpenGL fica abaixo desses dois (e CoreImage / CoreVideo também). Em virtude de ser de nível inferior, ele oferece um maior grau de controle. E exige que você faça mais trabalho ao implementar as coisas.

Realmente, depende do que você precisa fazer. E assim que você pensa em portar esse jogo para outras plataformas, o OpenGL parece muito mais atraente, já que é suportado praticamente em todos os lugares.

Rachel Blum
fonte