Câu trả lời:
Nó phụ thuộc vào những gì bạn đang xây dựng. Bạn thậm chí có thể thoát khỏi việc chỉ sử dụng Core Animation nếu nó không chuyên sâu về đồ họa (hai trò chơi cuối cùng của tôi dựa trên việc tận dụng lợi thế của Core Animation).
Nếu bạn có kế hoạch đẩy nhiều đồ họa, tôi rất muốn giới thiệu Cocos2D cho trò chơi 2D của bạn. Nó dựa trên OpenGL ES và cho đến nay tôi thực sự thích nó. Các đường cong học tập đã tương đối trơn tru.
Và nhiều hơn nữa. Tôi sẽ tải xuống và chơi với một số mẫu mà họ đã đưa vào đó là phần lớn chức năng của nó.
Theo kinh nghiệm của tôi, hầu hết các trò chơi 2D trên iPhone đều được viết bằng OpenGL ES. Bản demo trò chơi 2D của họ cũng được viết bằng OpenGL. Tôi sẽ đi với OpenGL, nếu chỉ vì bạn có nhiều khả năng tìm thấy nhiều tài nguyên hơn cho các vấn đề liên quan đến trò chơi trong OGL thay vì CoreGraphics.
Ngoài ra còn có một số tính năng cấp hệ điều hành giúp làm việc trong OpenGL ít đau đớn hơn trên một số nền tảng khác. Ví dụ: bạn có thể sử dụng lớp NSString để kết xuất với bối cảnh OpenGL và nhận được hỗ trợ Unicode đầy đủ, năng động, ngay lập tức.
Tóm lại, họ tập trung vào các mục đích khác nhau.
CoreGraphics: Kết hợp và đồ họa vector. Nếu bạn chỉ cần những thứ đó, CoreGraphics là một lựa chọn tốt.
CoreAnimation: Animate các lớp của các đối tượng 2D.
OpenGL nằm dưới hai cái đó (và cả CoreImage / CoreVideo nữa). Nhờ có trình độ thấp hơn, nó mang lại cho bạn mức độ kiểm soát lớn hơn. Và đòi hỏi bạn phải làm nhiều việc hơn khi thực hiện mọi thứ.
Vì vậy, thực sự, nó phụ thuộc vào những gì bạn cần làm. Và ngay khi bạn đang xem xét chuyển trò chơi đó sang các nền tảng khác, OpenGL trông hấp dẫn hơn nhiều, vì nó được hỗ trợ khá nhiều ở mọi nơi.