Untuk gim 2D di iphone apakah saya lebih baik menggunakan OpenGL atau CoreGraphics?

8

Saya berencana mengembangkan game iPhone pertama saya, dan saya ingin tahu apakah saya harus menggunakan OpenGL atau CoreGraphics untuk game 2D. Garis besar manfaat juga akan membantu.

Sunting: Setel ini untuk komunitas wiki karena jawabannya akan terlalu subjektif

esde84
sumber

Jawaban:

5

Tergantung pada apa yang Anda bangun. Anda bahkan dapat melarikan diri dengan hanya menggunakan Core Animation jika tidak intensif secara grafis (dua game terakhir saya didasarkan pada mengambil keuntungan dari Core Animation).

Jika Anda berencana untuk mendorong banyak grafik, saya akan sangat merekomendasikan Cocos2D untuk game 2D Anda. Ini didasarkan dari OpenGL ES dan sejauh ini saya benar-benar menikmatinya. Kurva pembelajaran relatif lancar.

  • Box2D atau Chipmunk terintegrasi .
  • Manajemen Adegan
  • Sudah cukup banyak efek bawaan (bahkan untuk transisi)
  • Sistem Partikel
  • Server Skor Tinggi (CocosLive) yang gratis untuk Anda gunakan
  • Dukungan rendering teks

Dan banyak lagi. Saya akan mengunduhnya dan bermain dengan beberapa sampel yang mereka masukkan yang menunjukkan sebagian besar fungsinya.

David McGraw
sumber
1
+1 untuk cocos2d. Ini adalah pilihan yang sangat bagus. Banyak game yang menggunakannya sekarang: cocos2d-iphone.org/games
Colin Gislason
1

Dari pengalaman saya, sebagian besar game 2D di iPhone ditulis dalam OpenGL ES. Demo game 2D mereka juga ditulis dalam OpenGL. Saya akan menggunakan OpenGL, jika hanya karena Anda lebih mungkin menemukan lebih banyak sumber daya untuk masalah terkait game di OGL daripada CoreGraphics.

Ada juga beberapa fitur tingkat OS yang membuat bekerja di OpenGL lebih tidak menyakitkan daripada pada beberapa platform lainnya. Misalnya, Anda dapat menggunakan kelas NSString untuk merender ke konteks OpenGL, dan mendapatkan dukungan Unicode penuh, dinamis, langsung dari awal.

Tetrad
sumber
1

Singkatnya, mereka fokus pada tujuan yang berbeda.

CoreGraphics: Komposisi dan grafik vektor. Jika Anda hanya membutuhkannya, CoreGraphics adalah pilihan yang baik.

CoreAnimation: Menghidupkan lapisan objek 2D.

OpenGL berada di bawah keduanya (dan CoreImage / CoreVideo juga). Berdasarkan level yang lebih rendah, ini memberi Anda tingkat kontrol yang lebih besar. Dan mengharuskan Anda untuk melakukan lebih banyak pekerjaan saat mengimplementasikan sesuatu.

Jadi sungguh, itu tergantung pada apa yang perlu Anda lakukan. Dan segera setelah Anda mempertimbangkan untuk memindahkan game itu ke platform lain, OpenGL terlihat jauh lebih menarik, karena didukung cukup banyak di mana-mana.

Rachel Blum
sumber