Tôi có thể phát triển trò chơi cho các nền tảng di động trong C ++ không?


16

Tôi có một nắm bắt tốt về C ++ và C và cũng đã có kinh nghiệm phát triển trò chơi AAA bằng C ++. Bây giờ, tôi đang xấu hổ nghĩ đến việc phát triển trò chơi di động trong iOS hoặc Android. Thật không may, tôi không biết mục tiêu-C và java và cũng không có can đảm để học nó. Vì vậy, như lý do đã đề cập ở trên, Có khả năng nào để phát triển di động trong C ++ mà không sử dụng bất kỳ tuyên bố nào của JAVA và Objective-C không?

Câu trả lời:


13

Một số mục tiêu C phải được viết cho các ứng dụng iPhone. Điều đó đang được nói, bạn có thể viết một lớp obj-c khá mỏng và sau đó thực hiện tất cả các mã trò chơi của bạn trong C hoặc C ++.

Trên Android tra cứu NDK. Tôi không có bất kỳ kinh nghiệm nào với nó, nhưng nó hứa hẹn là một sdk bản địa để bạn có thể viết hầu hết mọi thứ bằng C hoặc C ++.

Điều đó đang được nói, bạn đang giới hạn bản thân một cách giả tạo với rào cản ngôn ngữ. Trên iOS, nếu bạn muốn làm bất cứ điều gì với lớp HĐH (như GameCenter, nền tảng xã hội của họ) hoặc sử dụng bất kỳ loại phần mềm trung gian nào, bạn có thể phải đối mặt với API C khách quan.

Tôi có thể hiểu được tình cảm. C ++ nói riêng là một ngôn ngữ lớn. Nhưng obj-c không phải là lớn. Đó là một tia sáng đối với C (vì vậy các nguyên tắc cơ bản nên quen thuộc) với một vài điều bổ sung được thêm vào đầu. Nó không phức tạp hay sâu sắc như C ++.


2
Xin lưu ý rằng sử dụng Android NDK có nghĩa là để lại các lợi thế của "viết một lần triển khai ở mọi nơi" vì bạn phải biên dịch mã cho nhiều nền tảng có thể phát sinh trong nhiều vấn đề xây dựng. NDK có nghĩa là được sử dụng để gọi hàm C từ mã java, không phải để viết toàn bộ ứng dụng (trong khi vẫn có thể).
FxIII

1
Tôi cũng nghĩ rằng Google đã tuyên bố rõ ràng rằng NDK sẽ không được sử dụng để triển khai trò chơi đầy đủ. Bên cạnh đó, cú pháp java gần giống với C ++ và sẽ mất vài ngày để hiểu rõ. Nếu bạn muốn kiếm tiền, có lẽ bạn nên tập trung vào các trò chơi iOS.
Thợ làm móng

Bạn nói gì về Unity3D, nếu tôi học C #
James Bern

1
Bắt đầu với Android 2.3, Google đã thêm hoạt động gốc cho phép bạn viết một ứng dụng đầy đủ bằng 100% c ++ (chủ yếu dành cho trò chơi).
5 giờ

Tôi muốn giới thiệu Unity3D, đặc biệt nếu bạn muốn triển khai lên nhiều nền tảng. C # không khó học nếu bạn đã biết C ++ và nội dung diễn đàn của họ là đỉnh cao với hàng tấn mã mẫu (mặc dù hầu hết mã đều bằng JavaScript).
Doug.McFarlane

7

Tôi đã viết một game khá lâu trong c ++ cho Android. Tôi phải chạm vào mã java vài tuần một lần, nhưng phần lớn tôi đã sửa đổi một trong những ứng dụng mẫu đi kèm với NDK và đã viết c ++ theo cách khác. Tôi cũng đã phải làm một chút công việc của JNI, điều này không bao giờ vui. Tuy nhiên, tôi có nhiều năm kinh nghiệm về java, vì vậy việc phải viết java hoặc JNI không đặc biệt làm tôi chậm lại.

Trò chơi của tôi cũng chạy trên hộp linux của tôi như trên các thiết bị thử nghiệm của tôi. Phiên bản linux là C ++ thuần túy và những rắc rối tôi gặp phải để khiến công việc này tự trả tiền mỗi khi tôi thực hiện một thay đổi lặp lại cho trò chơi của mình.

Dự án của tôi có 836 dòng mã java, 331 dòng mã jni C gớm ghiếc và khoảng 40k dòng mã C ++.


Bạn có sử dụng hệ thống xây dựng có thể xây dựng cho từng mục tiêu theo cách tự động không? Tôi đã sử dụng CMake để cho phép các bản dựng đa nền tảng và tự hỏi liệu tôi có thể tích hợp nó với ndk-build không.
Martin Foot

Tôi đã thấy các dự án NDK khác sử dụng CMake.
thịt

4

Ngoài ra còn có Marmalade cho phép bạn sử dụng c ++ để tạo các ứng dụng di động cho nhiều loại thiết bị như iPhone, Android, Win Mobile, Bada, và một số thiết bị khác.


2

Tôi đang sử dụng cocos2d-x một thời gian, đây là một công cụ trò chơi dựa trên c ++. (nó thực sự là một cổng c ++ của cocos2d-iphone). sử dụng công cụ này, bạn có thể dễ dàng chạy và kiểm tra mã của mình trên windows và sau đó biên dịch cùng mã để xuất iphone / android.


bây giờ cũng bao gồm bada và một số người đã sử dụng nó trên đỉnh Marmalade
Andy Dent

1

Nếu bạn thực sự muốn chỉ C ++, Marmalade có thể tốt cho bạn

Nhưng để có đầy đủ khả năng, bạn phải sử dụng ít nhất một số object-C (hoặc java, nhưng tôi đang nói về "khả năng đầy đủ") . Nhưng với một lớp Object-C mỏng, bạn có thể làm được rất nhiều, vì vậy tôi khuyên bạn nên tìm hiểu về phát triển iOS bằng Xcode.


Nếu bạn có mac hãy xem Xcode , nếu không, hãy thử corona với lua thay thế .

Có nhiều cách để tối đa mã C ++ của bạn được chạy trên iPhone. Một chương trình miễn phí trên kho ứng dụng mac có thể giúp tăng sử dụng C ++ trong các sản phẩm dựa trên Objective-C:

Nó được gọi là tiêu đề tiền xử lý object-C ++

Điều này cho phép bạn làm nhiều hơn với C ++ thay vì Objective-C.

Lập trình iOS :


-3

Có, bạn có thể sử dụng ngôn ngữ lập trình C ++ để phát triển trò chơi di động. Ứng dụng chơi game C ++ luôn cảm thấy một chút snappier hơn Java trên cùng một phần cứng. Vì vậy, nếu bạn là chuyên gia về C ++ và quan tâm đến việc phát triển trò chơi Android thì giờ đây việc lập trình trong Java trở nên dễ dàng và không tốn kém.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.