Sebagai pengembang Android, apa yang harus saya ingat untuk porting ke iPhone?

9

Sebagai pengembang game Android, apa yang harus saya ingat ketika mengembangkan game saya jika saya ingin cross-platform game ke iPhone? Adakah strategi, kiat, dll. Tentang porting ke kedua platform seluler ini?

Bryan Denny
sumber
Bahasa apa yang paling banyak ditulis dalam kode Anda? Jawa? C / C ++?
Jason Kozak
Android (dan aplikasi saya) ditulis dalam Java. iPhone adalah Objective C
Bryan Denny

Jawaban:

12

Tulis dalam C / C ++ - ini adalah hal terbesar yang dapat Anda lakukan. Kedua platform mendukung C dan C ++, meskipun dengan cara yang berbeda. Di Android, Anda akan menggunakan NDK. Di iPhone, dapat dikompilasi bersama dengan kode Objective-C.

Anda harus menginvestasikan waktu untuk membangun perancah di sekitar kode C / C ++ untuk setiap platform. Anda harus bisa menjadi cukup generik di bidang ini, karena ini benar-benar hanya menghubungkan fungsi OS tertentu ke dalam kode gim Anda. Jangan berhemat dalam area ini kecuali Anda hanya berencana untuk melakukan satu proyek lintas platform atau bahwa Anda tidak keberatan menciptakan kembali roda untuk setiap proyek yang Anda lakukan.

Gunakan OpenGL ES - kedua platform memiliki dukungan OpenGL ES. Manfaatkan itu. Ini akan meminimalkan jumlah kode yang perlu Anda tulis ulang. Anda masih akan memiliki beberapa perbedaan pada setiap platform, tetapi secara keseluruhan sebagian besar kode Anda akan bekerja pada keduanya.

Hindari platform / bahasa tertentu API - ini harus dilakukan tanpa berkata, tapi mudah tersedot menggunakan kelas koleksi Java saat Anda bekerja di Jawa. Tentu saja, jika Anda mengikuti aturan pertama di atas, Anda tidak akan berbuat banyak di Jawa. Sama halnya dengan cara yang berlawanan - sebaik kelas Foundation di iOS, jika Anda ingin port ke platform lain, hindari.

Seperti yang Anda lihat, ada banyak hal yang perlu dikhawatirkan dengan menjadi cross-platform. Jika Anda adalah pengembang indie kecil, itu mungkin tidak sepadan dengan waktu Anda. Anda harus mengevaluasi jika Anda benar-benar ingin merintis jejak Anda sendiri sehingga Anda dapat menargetkan beberapa platform. Mungkin ada baiknya memanfaatkan apa yang ditawarkan oleh masing-masing platform untuk memiliki siklus pengembangan yang lebih cepat.

Semoga berhasil!

Dennis Munsie
sumber
1
Bisakah Anda menguraikan apa yang Anda maksud dengan perancah di sekitar kode c ++. Jika memungkinkan, Anda dapat menautkan tutorial yang menunjukkan apa yang diperlukan karena saya tidak begitu mengerti apa yang Anda maksud.
Skeith
5

Itu akan menjadi proses yang sangat menyakitkan dari Java> Objective-C.

Didorong Data
Bangun permainan yang sebagian besar didorong data. Saya pikir ini berbicara untuk dirinya sendiri, tetapi arah ini mengarah pada pekerjaan yang kurang Anda harus sepenuhnya menerapkan kembali.

Tinggi dan Ketat
Menjaga benda tetap sangat kecil dan termodulasi. Saya mengatakan ini karena akan lebih mudah untuk port jika Anda dapat dengan mudah mengambil komponen dan mengimplementasikannya saja, uji dan ulangi.

Pekerjaan Kontrak
Mainkan kartu Anda dengan benar dan Anda mungkin mengenal seseorang yang bisa mengurus ini untuk Anda. Jika Anda berteman baik dengan pengembang iPhone, Anda mungkin dapat membeli beberapa dr. pepper untuk membantu memigrasikan kode Anda.

Gunakan Mesin Multi-Platform
Jika Anda sudah memiliki proyek yang sedang berjalan maka itu tidak masuk akal. Tetapi jika Anda akan melakukan suatu proyek, yang Anda benar-benar tahu akan dipindahkan ke platform lain, maka mungkin ada manfaatnya memanfaatkan teknologi yang ada untuk membantu menyatukan dunia Anda. Unity3D akan mendapatkan dukungan Android dengan Unity 3.0.

Konversi / ngeri / Alat
Dan rekomendasi favorit saya adalah bahwa Anda dapat menggunakan semacam alat konversi untuk setidaknya mengubah model Anda dari Java> C ... Tapi ... Saya tidak mendukung itu.

David McGraw
sumber
3

Jika Anda berpikir untuk porting ke iPhone dan game Anda masih dalam pengembangan, maka beralihlah ke C ++ jika Anda belum melakukannya. Ini akan membuat kode Anda secara signifikan lebih portabel ketika saatnya tiba.

Casey Wagner
sumber
1

Akan menambahkan dua sen saya ke utas ini - pertimbangkan untuk menulis game Anda dalam bahasa lintas platform seperti yang banyak orang lain katakan di sini ... tetapi pertimbangkan C #! Ini adalah bahasa yang kuat yang dikelola dan menyediakan banyak fitur hebat yang C ++ tidak dapat membantu dalam pengembangan game - dan perpustakaan hebat yang dikenal sebagai MonoGame ada untuknya yang mirip dengan XNA yang berjalan pada semua jenis platform. Pada Versi 3.0, pada saat penulisan ini, dimungkinkan untuk menulis game lengkap dan port ke semua platform mobile dengan mudah.

Vaughan Hilts
sumber