Bir Android geliştiricisi olarak, iPhone'u taşımak için nelere dikkat etmeliyim?


9

Bir Android oyun geliştiricisi olarak, oyunu iPhone'a çapraz platformlamak istersem oyunumu geliştirirken nelere dikkat etmeliyim? Bu mobil platformların her ikisine taşıma konusunda herhangi bir strateji, ipucu vb. Var mı?


Kodunuzun çoğu hangi dilde yazılmıştır? Java? C / C ++?
Jason Kozak

Android (ve uygulamam) Java ile yazılmış. iPhone Objective C
Bryan Denny

Yanıtlar:


12

C / C ++ ile yazın - bu yapabileceğiniz en büyük şey. Her iki platform da farklı şekillerde olsa da C ve C ++ 'ı destekler. Android'de NDK'yı kullanacaksınız. İPhone'da Objective-C kodu ile birlikte derlenebilir.

Her platform için C / C ++ kodunuzun etrafındaki iskeleyi oluşturmak için biraz zaman harcamanız gerekir. İşletim sistemine özgü işlevselliği oyun kodunuza bağlayan bu alanda oldukça genel olabilmeniz gerekir. Yalnızca bir çapraz platform projesi yapmayı planlamıyorsanız veya yaptığınız her proje için tekerleği yeniden icat etmeyi düşünmüyorsanız bu alanda eksik olmayın.

OpenGL ES kullanın - her iki platformun da OpenGL ES desteği vardır. Bundan yararlanın. Bu, yeniden yazmanız gereken kod miktarını en aza indirir. Her platformda hala bazı farklılıklar olacak, ancak genel olarak kodunuzun çoğu her ikisinde de çalışacaktır.

Platforma / dile özgü API'lerden kaçının - bu söylemeden geçmelidir, ancak Java'da çalışırken Java toplama sınıflarını kullanmak çok kolaydır. Tabii ki, yukarıdaki ilk kuralı izlediyseniz, Java'da fazla bir şey yapmayacaksınız. Aynı şey tersi de geçerli - Foundation sınıfları iOS'ta olduğu kadar güzel, başka bir platforma taşımak istiyorsanız onlardan kaçının.

Gördüğünüz gibi, çapraz platforma geçerek endişelenecek çok şey var. Küçük bir indie geliştiriciyseniz, zaman ayırmaya bile değmeyebilir. Birden fazla platformu hedefleyebilmeniz için kendi izinizi gerçekten alevlendirmek isteyip istemediğinizi değerlendirmeniz gerekir. Daha hızlı bir geliştirme döngüsüne sahip olmak için her platformun neler sunduğundan faydalanmaya değer olabilir.

İyi şanslar!


1
C ++ kodu etrafında iskele yaparak ne demek istediğinizi biraz açıklayabilir misiniz? Mümkünse, gerçekten ne elde ettiğinizi anlamadığım için ne gerektireceğini gösteren bir öğreticiyi bağlayabilirsiniz.
Skeith

5

Bu, Java> Objective-C'den büyük ölçüde acı verici bir süreç olacaktır.

Veriye Dayalı
Büyük ölçüde veriye dayalı bir oyun oluşturun. Bunun kendisi için konuştuğunu düşünüyorum, ancak bu yön tamamen yeniden uygulamanız gereken daha az çalışmaya yol açıyor.

Yüksek ve Sıkı
İşleri çok küçük ve modüler hale getirin. Bunu söylüyorum, çünkü bir bileşeni kolayca alıp sadece uygulayabilir, test edip tekrarlayabilirseniz taşıması çok daha kolay olacaktır.

Sözleşmeli Çalışma
Kartlarınızı doğru oynayın ve bununla ilgilenebilecek birini tanıyor olabilirsiniz. Bir iPhone geliştiricisi ile en iyi arkadaşsanız, ona biraz dr satın alabilirsiniz. Biber kodunuzu geçirmenize yardımcı olur.

Çok Platformlu Motor Kullanın
Halihazırda hareketli bir projeniz varsa, o zaman pek mantıklı değildir. Ancak bir proje yapmak üzereyseniz, kesinlikle diğer platformlara taşınacağını bildiğinizde, dünyanızı bir araya getirmeye yardımcı olmak için mevcut teknolojiden yararlanmak faydalı olabilir. Unity3D , Unity 3.0 ile Android desteği alacak.

Dönüşüm / titreme / Araç
Ve benim en sevdiğim tavsiyem, en azından modellerinizi Java> C'den dönüştürmek için bir tür dönüştürme aracı kullanabilmenizdir ... Ama ... Bunu onaylamıyorum.


3

İPhone'a geçmeyi düşünüyorsanız ve oyununuz hala geliştiriliyorsa, henüz yapmadıysanız C ++ 'ya geçin. Zaman geldiğinde kodunuzu daha taşınabilir hale getirecektir.


1

İki sentimi bu konuya ekleyeceğim - oyununuzu birçoğunun burada söylediği gibi bir çapraz platform dilinde yazmayı düşünün ... ama C #! Yönetilen ve C ++ 'nın oyun geliştirmeye yardımcı olamadığı birçok harika özellik sağlayan güçlü bir dildir - ve MonoGame olarak bilinen harika bir kütüphane , her türlü platformda çalışan XNA'ya benzer. Sürüm 3.0'dan itibaren, bu yazı yazıldığı sırada, tüm mobil platformlara tam teşekküllü oyunlar ve bağlantı noktası kolayca yazmak mümkündür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.