Bisakah saya mengembangkan game untuk platform seluler di C ++?

16

Saya memiliki pemahaman yang baik dalam C ++ dan C dan juga memiliki pengalaman mengembangkan game AAA menggunakan C ++. Sekarang, saya tanpa malu berpikir untuk terjun ke dalam pengembangan game mobile baik di iOS atau Android. Sayangnya, saya tidak tahu tujuan-C dan java dan tidak punya keberanian untuk mempelajarinya. Jadi, Seperti alasan yang disebutkan di atas, Apakah ada kemungkinan untuk melakukan pengembangan ponsel di C ++ tanpa menggunakan pernyataan tunggal dari JAVA dan Objective-C?

James Bern
sumber

Jawaban:

13

Beberapa tujuan C harus ditulis untuk aplikasi iPhone. Yang sedang berkata, Anda dapat menulis lapisan cukup tipis dari obj-c dan kemudian melakukan semua kode permainan Anda dalam C atau C ++.

Di android mencari NDK. Saya tidak punya pengalaman dengan itu, tetapi berjanji untuk menjadi SDK asli sehingga Anda harus dapat menulis sebagian besar hal dalam C atau C ++.

Yang sedang berkata, Anda secara artifisial membatasi diri dengan kendala bahasa. Di iOS, jika Anda ingin melakukan apa pun dengan lapisan OS (seperti GameCenter, platform sosial mereka), atau menggunakan middleware apa pun, Anda mungkin akan dihadapkan dengan API C yang objektif.

Saya bisa mengerti sentimen. C ++ khususnya adalah bahasa yang sangat besar. Tapi obj-c tidak besar. Ini adalah baut ke C (jadi fundamentalnya harus akrab) dengan beberapa hal tambahan yang ditambahkan di atas. Itu tidak serumit atau sedalam C ++.

Tetrad
sumber
2
Harap diingat bahwa menggunakan Android NDK berarti meninggalkan keuntungan "tulis sekali pakai di mana-mana" karena Anda harus mengkompilasi kode Anda untuk beberapa platform yang mungkin menimbulkan masalah pembangunan banyak. NDK dimaksudkan untuk memanggil fungsi C dari kode java, bukan untuk menulis seluruh aplikasi (selagi itu masih mungkin).
FxIII
1
Saya juga berpikir Google secara eksplisit menyatakan bahwa NDK tidak akan digunakan untuk implementasi game penuh. Selain itu, sintaks java hampir identik dengan C ++ dan harus memakan waktu beberapa hari untuk memahami. Jika Anda ingin menghasilkan uang, Anda mungkin harus fokus pada game iOS.
Nailer
Apa yang Anda katakan tentang Unity3D, jika saya belajar C #
James Bern
1
Dimulai dengan Android 2.3, Google menambahkan aktivitas asli yang memungkinkan Anda menulis aplikasi lengkap dalam 100% c ++ (terutama untuk game).
5
Saya akan merekomendasikan Unity3D, terutama jika Anda ingin menggunakan berbagai platform. C # tidak terlalu sulit untuk dipelajari jika Anda sudah tahu C ++, dan konten forum mereka adalah yang terbaik dengan banyak kode sampel (walaupun sebagian besar kode ada dalam JavaScript).
Doug.McFarlane
7

Saya sudah menulis game cukup lama di c ++ untuk Android. Saya harus menyentuh kode java sekali setiap beberapa minggu, tetapi sebagian besar saya memodifikasi salah satu aplikasi sampel yang datang dengan NDK dan telah menulis c ++ sebaliknya. Saya harus melakukan sedikit pekerjaan JNI juga, yang tidak pernah menyenangkan. Namun, saya memiliki pengalaman java bertahun-tahun, jadi harus menulis java atau JNI tidak terlalu memperlambat saya.

Game saya berjalan dengan baik di kotak linux saya seperti halnya di perangkat pengujian saya. Versi linux adalah murni C ++ dan kesulitan yang saya alami untuk membuat pekerjaan ini membayar untuk dirinya sendiri setiap kali saya membuat perubahan berulang untuk permainan saya.

Proyek saya memiliki 836 baris kode java, 331 baris kode C jni mengerikan dan sekitar 40k baris kode C ++.

notlesh
sumber
Apakah Anda menggunakan sistem pembangunan yang dapat dibangun untuk setiap target secara otomatis? Saya telah menggunakan CMake untuk memungkinkan cross-platform build, dan bertanya-tanya apakah saya dapat mengintegrasikannya dengan ndk-build.
Martin Foot
Saya telah melihat proyek NDK lainnya menggunakan CMake.
notlesh
4

Ada juga Marmalade yang memungkinkan Anda menggunakan c ++ untuk membuat aplikasi seluler untuk beragam perangkat seperti iPhone, Android, Win Mobile, Bada, dan lainnya.

impmja
sumber
2

Saya menggunakan cocos2d-x untuk sementara waktu, ini adalah mesin game berbasis c ++. (sebenarnya port c ++ dari cocos2d-iphone). menggunakan mesin ini Anda dapat dengan mudah menjalankan dan menguji kode Anda di windows dan kemudian menyusun kode yang sama untuk ekspor iphone / android.

Ali1S232
sumber
juga sekarang termasuk bada dan beberapa orang telah menggunakannya di atas Marmalade
Andy Dent
1

Jika Anda benar-benar hanya menginginkan C ++, Marmalade mungkin baik untuk Anda

Tetapi untuk kemampuan penuh, Anda harus menggunakan setidaknya beberapa objektif-C (atau java, tapi saya sedang berbicara tentang "kemampuan penuh") . Tetapi dengan lapisan tipis objektif-C Anda bisa melakukan begitu banyak, jadi saya sarankan Anda melihat ke pengembangan iOS dengan Xcode.


Jika Anda memiliki tampilan mac di Xcode , jika tidak, coba corona dengan lua sebagai gantinya .

Ada banyak cara untuk memaksimalkan kode C ++ Anda agar dapat dijalankan di iPhone. Sebuah program bebas di toko app mac bisa membantu peningkatan C ++ digunakan dalam produk Objective-C berdasarkan:

Ini disebut header Preprocessor objektif-C ++

Ini memungkinkan Anda untuk melakukan lebih banyak lagi dengan C ++ daripada Objective-C.

pemrograman iOS :

Comradsky
sumber
-3

Ya, Anda dapat menggunakan bahasa pemrograman C ++ untuk mengembangkan game mobile. Aplikasi game C ++ selalu terasa sedikit lebih tajam dari Java pada perangkat keras yang sama. Jadi, jika Anda ahli dalam C ++ dan tertarik untuk mengembangkan game Android maka sekarang mudah dan tanpa biaya seperti pemrograman di Jawa.

Jacob Selvestar
sumber